
local-descriptions
โ Officialโ 159by brave ยท part of brave/brave-search-skills
USE FOR getting AI-generated POI text descriptions. Requires POI IDs obtained from web-search (with result_filter=locations). Returns markdown descriptions grounded in web search context. Max 20 IDs per request.
This is the playbook your agent receives when the skill activates โ you don't need to read it to use the skill, but it's here to audit before installing.
Local Descriptions (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.
- Get POI IDs from
local-place-search, or fromweb-searchwithresult_filter=locations(locations.results[].id)- Pass those IDs to this endpoint to get AI-generated descriptions
Endpoint
GET https://api.search.brave.com/res/v1/local/descriptionsAuthentication: X-Subscription-Token: <API_KEY> header
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
ids | string[] | Yes | โ | POI IDs from web search locations.results[].id (1-20, repeated: ?ids=a&ids=b) |
Response Format
Response Fields
| Field | Type | Description |
|---|---|---|
type | string | Always "local_descriptions" |
results | array | List of description objects (entries may be null) |
results[].type | string | Always "local_description" |
results[].id | string | POI identifier matching the request |
results[].description | string? | AI-generated markdown description, or null if unavailable |
Example Response
{
"type": "local_descriptions",
"results": [
{
"type": "local_description",
"id": "loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=",
"description": "### Overview\nA cozy neighborhood cafe known for its **artisanal coffee**..."
}
]
}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=restaurants+san+francisco&result_filter=locations" \
-H "Accept: application/json" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"
# 2. Extract POI IDs from locations.results[].id
# 3. Use those IDs with local/pois and local/descriptionsUse Cases
- Local business overview: Pair with
local-poisto get both structured data (hours, ratings) and narrative descriptions - Travel/tourism enrichment: Add descriptive context to POIs for travel planning or destination guides
- Search results augmentation: Supplement web search results with AI-generated summaries of local businesses
Notes
- Always markdown: Descriptions use
###headings, bullet lists, bold/italics โ always formatted as markdown - Travel-guide tone: Typically 200-400 words covering what makes the POI notable
- AI-generated: Descriptions are AI-generated based on web search context, not sourced from business profiles
- Availability: Not all POIs have descriptions โ
descriptionmay benull - Max IDs: Up to 20 IDs per request
npx skills add brave/brave-search-skills --skill "local-descriptions" --full-depthRun this in your project โ your agent picks the skill up automatically.
Quick Start (cURL)
Get POI Description
curl -s "https://api.search.brave.com/res/v1/local/descriptions?ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA%3D" \
-H "Accept: application/json" \
-H "Accept-Encoding: gzip" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"Multiple POIs
curl -s "https://api.search.brave.com/res/v1/local/descriptions" \
-H "Accept: application/json" \
-H "Accept-Encoding: gzip" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-G \
--data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=" \
--data-urlencode "ids=loc4HTAVTJKP4RBEBZCEMBI3NG26YD4II4PATIHPDYI="Note: POI IDs are opaque strings returned in web search locations.results[].id. They are valid for approximately 8 hours. The example IDs above are for illustration โ fetch fresh IDs via web-search with result_filter=locations.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under MITโ you can use, modify, and redistribute it under that license's terms.
View the full license file on GitHub โ