, `$`, `$ local-pois · Skills-SI 市场 , `$$`) |\n| `serves_cuisine` | string[]? | Cuisine types (restaurants) |\n| `thumbnail.src` | string? | Thumbnail image URL |\n| `thumbnail.original` | string? | Original image URL |\n| `profiles` | object[]? | External profiles (`name`, `url`, `long_name`, `img`) |\n| `reviews.reviews_in_foreign_language` | bool | Whether reviews in a foreign language are available |\n| `pictures.results` | object[]? | Photo thumbnails |\n| `action` | object? | Action to take — has `type` (string) and `url` (string) |\n| `results` | object[]? | Related web results (`LocationWebResult` with `meta_url`) |\n| `timezone` | string? | IANA timezone (e.g., `America/Los_Angeles`) |\n| `timezone_offset` | int? | UTC timezone offset |\n\n### Example Response\n\n```json\n{\n \"type\": \"local_pois\",\n \"results\": [\n {\n \"type\": \"location_result\",\n \"title\": \"Park Mediterranean Grill\",\n \"url\": \"https://yelp.com/biz/park-mediterranean-grill-sf\",\n \"provider_url\": \"https://yelp.com/biz/park-mediterranean-grill-sf\",\n \"id\": \"loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=\",\n \"postal_address\": {\n \"type\": \"PostalAddress\",\n \"displayAddress\": \"123 Main St, San Francisco, CA 94102\",\n \"streetAddress\": \"123 Main St\",\n \"addressLocality\": \"San Francisco\",\n \"addressRegion\": \"CA\",\n \"postalCode\": \"94102\",\n \"country\": \"US\"\n },\n \"contact\": { \"telephone\": \"+1 415-555-0123\" },\n \"thumbnail\": {\n \"src\": \"https://example.com/thumb.jpg\",\n \"original\": \"https://example.com/original.jpg\"\n },\n \"rating\": {\n \"ratingValue\": 4.5,\n \"bestRating\": 5.0,\n \"reviewCount\": 234,\n },\n \"opening_hours\": {\n \"current_day\": [\n { \"abbr_name\": \"Mon\", \"full_name\": \"Monday\", \"opens\": \"07:00\", \"closes\": \"21:00\" }\n ]\n },\n \"coordinates\": [37.7749, -122.4194],\n \"distance\": { \"value\": 0.3, \"units\": \"miles\" },\n \"categories\": [\"Mediterranean\", \"Greek\"],\n \"price_range\": \"$\",\n \"serves_cuisine\": [\"Mediterranean\", \"Greek\"],\n \"timezone\": \"America/Los_Angeles\"\n }\n ]\n}\n```\n\n## Getting POI IDs\n\n`local-place-search` returns POI IDs directly. They also come from the **Web Search API** (`web-search`) with `result_filter=locations`:\n\n```bash\n# 1. Search for local businesses\ncurl -s \"https://api.search.brave.com/res/v1/web/search?q=coffee+shops+near+me&result_filter=locations\" \\\n -H \"Accept: application/json\" \\\n -H \"X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}\" \\\n -H \"X-Loc-Lat: 37.7749\" \\\n -H \"X-Loc-Long: -122.4194\"\n\n# 2. Extract POI IDs from locations.results[].id\n# 3. Use those IDs with this endpoint\n```\n\n## Use Cases\n\n- **Local business lookup**: Retrieve full details (hours, contact, address) for POIs surfaced in web search\n- **Restaurant discovery pipeline**: Search for restaurants, fetch POI details, filter by cuisine/rating/price_range\n- **Business hours checker**: Get opening_hours for a business to determine if currently open\n- **Location-aware application**: Combine with location headers to get distance calculations for nearby POIs\n\n## Notes\n\n- **ID format**: Opaque strings (use `--data-urlencode` for cURL)\n- **Units**: `metric` or `imperial` for distance measurement preference\n- **Max IDs**: Up to 20 IDs per request\n","licenseDocuments":[]}}
界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

local-pois

local-pois

【开发与工程】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.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

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

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

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

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

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

Parameters

ParameterTypeRequiredDefaultDescription
idsstring[]Yes—POI IDs from web search results (1-20)
search_langstringNoenLanguage preference (2+ char language code)
ui_langstringNoen-USUI language (locale code, e.g., "en-US")
unitsstringNonullmetric (km) or imperial (miles)

Location Headers (Optional)

For distance calculation from user location:

HeaderTypeRangeDescription
X-Loc-Latfloat-90.0 to 90.0User latitude
X-Loc-Longfloat-180.0 to 180.0User longitude

Response Fields

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

FieldTypeDescription
titlestringBusiness/POI name
urlstringCanonical URL for the location
provider_urlstringProvider page URL
typestringAlways "location_result"
idstringPOI identifier (opaque string, valid ~8 hours)
descriptionstring?Short description
postal_address.typestringAlways "PostalAddress"
postal_address.displayAddressstringFormatted display address
postal_address.streetAddressstring?Street address
postal_address.addressLocalitystring?City
postal_address.addressRegionstring?State/region
postal_address.postalCodestring?Postal/ZIP code
postal_address.countrystring?Country code
contact.telephonestring?Phone number
contact.emailstring?Email address
rating.ratingValuefloat?Average rating (≥0)
rating.bestRatingfloat?Max possible rating
rating.reviewCountint?Number of reviews
rating.profile.namestring?Rating provider name
rating.profile.urlstring?Rating provider URL
opening_hours.current_dayobject[]?Today's hours (abbr_name, full_name, opens, closes)
opening_hours.daysobject[][]?Hours for each day of the week (same structure)
coordinates[float, float]?[latitude, longitude] tuple
distance.valuefloat?Distance from user location
distance.unitsstring?Distance unit (km or miles)
categoriesstring[]Business categories (default [])
price_rangestring?Price indicator ($, $, $$, $$)
serves_cuisinestring[]?Cuisine types (restaurants)
thumbnail.srcstring?Thumbnail image URL
thumbnail.originalstring?Original image URL
profilesobject[]?External profiles (name, url, long_name, img)
reviews.reviews_in_foreign_languageboolWhether reviews in a foreign language are available
pictures.resultsobject[]?Photo thumbnails
actionobject?Action to take — has type (string) and url (string)
resultsobject[]?Related web results (LocationWebResult with meta_url)
timezonestring?IANA timezone (e.g., America/Los_Angeles)
timezone_offsetint?UTC timezone offset

Example Response

{
  "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:

# 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
我的收藏