К основному содержанию
скилл CX Codex

local-pois — скилл для Claude Code: что делает и как установить

Получает подробные сведения об организациях по их идентификаторам через Brave Search API. Помогает извлечь контакты, рейтинги и часы работы.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add brave/brave-search-skills --skill local-pois -a claude-code
Открыть на GitHub

Что делает local-pois

Скилл запрашивает карточки заведений через Brave Search API. На вход он принимает от 1 до 20 идентификаторов мест. Их нужно заранее получить через local-place-search или веб-поиск с фильтром локаций. В ответ возвращаются адрес, телефон, часы работы, координаты, диапазон цен и средний рейтинг.

Для работы нужен ключ BRAVE_SEARCH_API_KEY с активным тарифом поиска. Идентификаторы точек живут около восьми часов. Кэшировать их впрок бессмысленно, потому что старые ключи перестают действовать. Для расчёта расстояния в метрической или имперской системе агент может передать широту и долготу пользователя.

Какие задачи решает

  • получить телефон и точный адрес компании по её идентификатору
  • узнать график работы заведения на сегодня и неделю вперёд
  • рассчитать расстояние от пользователя до выбранных точек
  • запросить рейтинг и ценовую категорию ресторана

Примеры запросов агенту

  • Запроси контакты и часы работы для точки loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=
  • Найди подробную информацию по ресторанам с этими идентификаторами и покажи расстояние в километрах

Как установить local-pois

1Через Skills CLI (Vercel)

npx skills add brave/brave-search-skills --skill local-pois -a claude-code

2Вручную: положить файлы

~/.claude/skills/local-pois/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/local-pois/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора7

images-search Скилл находит картинки через API поиска Brave с миниатюрами и прямыми ссылками. Пригодится агенту для подбора иллюстраций и фактчекинга визуала. CX Codex +1 1 700установок news-search Ищет свежие статьи через новостной индекс Brave с фильтрацией по датам и правилам Goggles. Помогает следить за событиями за последние 24 часа. CX Codex +1 1 600установок llm-context Извлекает готовый контекст веб-страниц через API Brave Search для заземления ответов ИИ. Пригодится при настройке RAG и автономных агентов. CX Codex +1 1 300установок videos-search Ищет видео через Brave Search API с метаданными о длительности, просмотрах и авторах. Пригодится для мониторинга свежих роликов и сбора обучающих материалов. CX Codex +1 1 200установок suggest Скилл для автодополнения поисковых запросов через Brave Search API с исправлением опечаток и быстрым ответом до 100 мс. CX Codex +1 1 100установок local-place-search Скилл ищет заведения, адреса и улицы через Brave Search API и отдаёт координаты, рейтинг, часы работы и телефон. CX Codex +1 395установок

Похожие

skills-search daymade Ищет скиллы сначала в настроенных локальных репозиториях, затем в CCPM. Помогает найти, проверить, установить или обновить нужный скилл. CX Codex +1 1 400установок local-ai-app-integration amd Переводит клиентские запросы из облачных API в локальный процесс Embeddable Lemonade. Пригодится, когда нужно встроить автономные модели в готовое приложение на Windows или Linux. CX Codex +1 895установок fastapi-local-dev Claude MPM Team Скилл-справочник по запуску FastAPI: Uvicorn с автоперезагрузкой для разработки, Gunicorn с UvicornWorker для продакшена. CX Codex +1 347установок huggingface-local-models huggingface Находит на Hugging Face GGUF-репозиторий, подбирает квант под вашу память и поднимает модель через llama.cpp — с OpenAI-совместимым эндпоинтом, если нужен сервер. CX Codex +1 1 900установок review-local-changes NeoLabHQ Проверяет незакоммиченные изменения в рабочем дереве и выдаёт список замечаний с предложениями по улучшению. Пригодится перед коммитом. CX Codex +1 1 200установок local-ai-use amd Мета-скилл перенастраивает агента так, чтобы генерация изображений, озвучка и расшифровка аудио шли через локальный Lemonade Server, а не через платный API. CX Codex +1 1 100установок

Рядом в теме «Настройка агента: память, контекст, субагенты»

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →

Вопросы о local-pois

Как установить local-pois в Claude Code?

Выполните команду npx skills add brave/brave-search-skills --skill local-pois -a claude-code. Для выполнения запросов также нужно задать переменную BRAVE_SEARCH_API_KEY.

Что делает скилл local-pois?

Он принимает до 20 идентификаторов заведений и возвращает структурированные данные: телефоны, часы работы, адрес, рейтинги и координаты.

Откуда брать идентификаторы для запроса?

Скилл работает по двухэтапной схеме. Сначала нужно выполнить поиск через local-place-search или web-search с параметром result_filter=locations, извлечь полученные ID и передать их в этот скилл.

Исходный текст

SKILL.md · MIT
---
name: local-pois
description: USE FOR getting local business/POI details. Requires POI IDs from local-place-search, or from web-search with result_filter=locations. Returns full business information including ratings, hours, contact info. Max 20 IDs.
---

# Local POIs (Search API)

> **Requires API Key**: Get one at https://api.search.brave.com
>
> **Plan**: Included in the **Search** plan. See https://api-dashboard.search.brave.com/app/subscriptions/subscribe
>
> **Two-step flow**: This endpoint requires POI IDs from a prior search.
>
> 1. Get POI IDs from `local-place-search`, or from `web-search` with `result_filter=locations` (`locations.results[].id`)
> 2. Pass those IDs to this endpoint to get full business details

## Quick Start (cURL)

### Get POI Details
```bash
curl -s "https://api.search.brave.com/res/v1/local/pois" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA="
```

### Multiple POIs with Location Headers
```bash
curl -s "https://api.search.brave.com/res/v1/local/pois" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "X-Loc-Lat: 37.7749" \
  -H "X-Loc-Long: -122.4194" \
  -G \
  --data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=" \
  --data-urlencode "ids=loc4HTAVTJKP4RBEBZCEMBI3NG26YD4II4PATIHPDYI=" \
  --data-urlencode "units=imperial"
```

**Note**: POI IDs are opaque strings returned in web search `locations.results[].id`. IDs are ephemeral and expire after ~8 hours. The example IDs above are for illustration — fetch fresh IDs via `web-search` with `result_filter=locations`. Use `--data-urlencode` since IDs may contain `=`.

## Endpoint

```http
GET https://api.search.brave.com/res/v1/local/pois
```

**Authentication**: `X-Subscription-Token: <API_KEY>` header

## Parameters

| Parameter | Type | Required | Default | Description |
|--|--|--|--|--|
| `ids` | string[] | **Yes** | — | POI IDs from web search results (1-20) |
| `search_lang` | string | No | `en` | Language preference (2+ char language code) |
| `ui_lang` | string | No | `en-US` | UI language (locale code, e.g., "en-US") |
| `units` | string | No | null | `metric` (km) or `imperial` (miles) |

### Location Headers (Optional)

For distance calculation from user location:

| Header | Type | Range | Description |
|--|--|--|--|
| `X-Loc-Lat` | float | -90.0 to 90.0 | User latitude |
| `X-Loc-Long` | float | -180.0 to 180.0 | User longitude |

## Response Fields

The response has `type: "local_pois"` and a `results` array of `LocationResult` objects:

| Field | Type | Description |
|--|--|--|
| `title` | string | Business/POI name |
| `url` | string | Canonical URL for the location |
| `provider_url` | string | Provider page URL |
| `type` | string | Always `"location_result"` |
| `id` | string | POI identifier (opaque string, valid ~8 hours) |
| `description` | string? | Short description |
| `postal_address.type` | string | Always `"PostalAddress"` |
| `postal_address.displayAddress` | string | Formatted display address |
| `postal_address.streetAddress` | string? | Street address |
| `postal_address.addressLocality` | string? | City |
| `postal_address.addressRegion` | string? | State/region |
| `postal_address.postalCode` | string? | Postal/ZIP code |
| `postal_address.country` | string? | Country code |
| `contact.telephone` | string? | Phone number |
| `contact.email` | string? | Email address |
| `rating.ratingValue` | float? | Average rating (≥0) |
| `rating.bestRating` | float? | Max possible rating |
| `rating.reviewCount` | int? | Number of reviews |
| `rating.profile.name` | string? | Rating provider name |
| `rating.profile.url` | string? | Rating provider URL |
| `opening_hours.current_day` | object[]? | Today's hours (`abbr_name`, `full_name`, `opens`, `closes`) |
| `opening_hours.days` | object[][]? | Hours for each day of the week (same structure) |
| `coordinates` | [float, float]? | `[latitude, longitude]` tuple |
| `distance.value` | float? | Distance from user location |
| `distance.units` | string? | Distance unit (`km` or `miles`) |
| `categories` | string[] | Business categories (default `[]`) |
| `price_range` | string? | Price indicator (`$`, `$$`, `$$$`, `$$$$`) |
| `serves_cuisine` | string[]? | Cuisine types (restaurants) |
| `thumbnail.src` | string? | Thumbnail image URL |
| `thumbnail.original` | string? | Original image URL |
| `profiles` | object[]? | External profiles (`name`, `url`, `long_name`, `img`) |
| `reviews.reviews_in_foreign_language` | bool | Whether reviews in a foreign language are available |
| `pictures.results` | object[]? | Photo thumbnails |
| `action` | object? | Action to take — has `type` (string) and `url` (string) |
| `results` | object[]? | Related web results (`LocationWebResult` with `meta_url`) |
| `timezone` | string? | IANA timezone (e.g., `America/Los_Angeles`) |
| `timezone_offset` | int? | UTC timezone offset |

### Example Response

```json
{
  "type": "local_pois",
  "results": [
    {
      "type": "location_result",
      "title": "Park Mediterranean Grill",
      "url": "https://yelp.com/biz/park-mediterranean-grill-sf",
      "provider_url": "https://yelp.com/biz/park-mediterranean-grill-sf",
      "id": "loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=",
      "postal_address": {
        "type": "PostalAddress",
        "displayAddress": "123 Main St, San Francisco, CA 94102",
        "streetAddress": "123 Main St",
        "addressLocality": "San Francisco",
        "addressRegion": "CA",
        "postalCode": "94102",
        "country": "US"
      },
      "contact": { "telephone": "+1 415-555-0123" },
      "thumbnail": {
        "src": "https://example.com/thumb.jpg",
        "original": "https://example.com/original.jpg"
      },
      "rating": {
        "ratingValue": 4.5,
        "bestRating": 5.0,
        "reviewCount": 234,
      },
      "opening_hours": {
        "current_day": [
          { "abbr_name": "Mon", "full_name": "Monday", "opens": "07:00", "closes": "21:00" }
        ]
      },
      "coordinates": [37.7749, -122.4194],
      "distance": { "value": 0.3, "units": "miles" },
      "categories": ["Mediterranean", "Greek"],
      "price_range": "$$",
      "serves_cuisine": ["Mediterranean", "Greek"],
      "timezone": "America/Los_Angeles"
    }
  ]
}
```

## Getting POI IDs

`local-place-search` returns POI IDs directly. They also come from the **Web Search API** (`web-search`) with `result_filter=locations`:

```bash
# 1. Search for local businesses
curl -s "https://api.search.brave.com/res/v1/web/search?q=coffee+shops+near+me&result_filter=locations" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "X-Loc-Lat: 37.7749" \
  -H "X-Loc-Long: -122.4194"

# 2. Extract POI IDs from locations.results[].id
# 3. Use those IDs with this endpoint
```

## Use Cases

- **Local business lookup**: Retrieve full details (hours, contact, address) for POIs surfaced in web search
- **Restaurant discovery pipeline**: Search for restaurants, fetch POI details, filter by cuisine/rating/price_range
- **Business hours checker**: Get opening_hours for a business to determine if currently open
- **Location-aware application**: Combine with location headers to get distance calculations for nearby POIs

## Notes

- **ID format**: Opaque strings (use `--data-urlencode` for cURL)
- **Units**: `metric` or `imperial` for distance measurement preference
- **Max IDs**: Up to 20 IDs per request

© brave · MIT · brave/brave-search-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой