All skills
brave avatar

/local-descriptions

@62793e0 official

USE FOR getting AI-generated POI text descriptions. Requires POI IDs from local-place-search, or from web-search with result_filter=locations. Returns markdown descriptions grounded in web search context. Max 20 IDs per request.

Use this Skill: https://skilld.dev/gh/brave/brave-search-skills/local-descriptions

This session only. Nothing lands on disk.

SKILL.md

≈62 tokens always: the name and description. ≈953 when used: this file.

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.

  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 AI-generated descriptions

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.

Endpoint

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

Authentication: 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/descriptions

Use Cases

  • Local business overview: Pair with local-pois to 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 — description may be null
  • Max IDs: Up to 20 IDs per request

Source: SKILL.md on GitHub

2 warnings16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill provides a standard technical documentation reference for integrating Brave's local descriptions API endpoint. It contains safe configuration guidelines, parameter usage examples, and typical application patterns with no malicious capabilities or vulnerabilities identified.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: MEDIUM · 1 issue

  • Runlayer7mo

    1/1 file flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 62793e0. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Activeupdated 2 months ago
  • API
  • brave-search
  • local-search
  • poi
  • locations
  • descriptions
  • travel
  • business

README badge

README badge for brave/brave-search-skills/local-descriptions

Generates AI-written markdown descriptions of points of interest (restaurants, shops, landmarks) using POI IDs from Brave's web search API. Requires a prior `web-search` call with `result_filter=locations` to extract POI IDs, then returns narrative summaries up to 20 locations per request.

Generated from the current SKILL.md.

Do I need a Brave Search API key to use this skill?
Yes. The skill requires an API key from https://api.search.brave.com and works with the Search plan.
How do I get POI IDs to pass to this skill?
Call the web-search endpoint with `result_filter=locations` to extract POI IDs from `locations.results[].id`. Those IDs are valid for approximately 8 hours.
What's the maximum number of POIs I can request descriptions for at once?
Up to 20 POI IDs per request.
Will every POI return a description?
No. Not all POIs have descriptions available — the `description` field may be `null` for some results.
What format are the descriptions in?
Descriptions are always returned as markdown with headings, bullet lists, bold, and italics, typically 200-400 words covering what makes the POI notable.

Generated from the current SKILL.md. These answers refresh after source changes.