Skip to content
Back to skills

Local Descriptions

ASecurity

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.

  • 194 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
developmentbashapi

Works with

  • api

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add brave/brave-search-skills --skill local-descriptions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Local Descriptions?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Local Descriptions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/brave-local-descriptions/badge)](https://www.skillsdirectory.com/skills/brave-local-descriptions)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: local-descriptions
description: 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.
---

# 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
```bash
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
```bash
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

```http
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

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

```bash
# 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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.