answers
USE FOR AI-grounded answers via OpenAI-compatible /chat/completions. Two modes: single-search (fast) or deep research…
USE FOR finding places in the physical world - businesses, POIs, street addresses, cities and streets. Results carry address, coordinates, rating, opening hours and phone, so basic details need no follow-up call. Standalone - no POI IDs or prior web search required; the IDs it
Claude Code
$ npx -y skills add brave/brave-search-skills --skill local-place-search --agent claude-code
Codex
$ npx skills add brave/brave-search-skills --skill local-place-search -a codex -y
Cursor
$ npx skills add brave/brave-search-skills --skill local-place-search -a cursor -y
Gemini CLI
$ npx skills add brave/brave-search-skills --skill local-place-search -a gemini-cli -y
GitHub Copilot
$ npx skills add brave/brave-search-skills --skill local-place-search -a github-copilot -y
OpenCode
$ npx skills add brave/brave-search-skills --skill local-place-search -a opencode -y
Windsurf
$ npx skills add brave/brave-search-skills --skill local-place-search -a windsurf -y
name: local-place-search description: USE FOR finding places in the physical world - businesses, POIs, street addresses, cities and streets. Results carry address, coordinates, rating, opening hours and phone, so basic details need no follow-up call. Standalone - no POI IDs or prior web search required; the IDs it returns work with local-pois and local-descriptions. Locate by coordinates or a location string, or omit both to search globally. Omit the query to browse an area. Max 100 results.
> **Requires API Key**: Get one at https://api.search.brave.com > > **Plan**: Included in the **Search** plan (with `locations` option). See https://api-dashboard.search.brave.com/app/subscriptions/subscribe > > **Standalone**: Unlike `local-pois` and `local-descriptions`, this endpoint does **not** require POI IDs from a prior web search. You provide a location and an optional query directly.
curl -s "https://api.search.brave.com/res/v1/local/place_search" \
-H "Accept: application/json" \
-H "Accept-Encoding: gzip" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-G \
--data-urlencode "q=coffee shops" \
--data-urlencode "latitude=37.7749" \
--data-urlencode "longitude=-122.4194" \
--data-urlencode "radius=5000"curl -s "https://api.search.brave.com/res/v1/local/place_search" \
-H "Accept: application/json" \
-H "Accept-Encoding: gzip" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-G \
--data-urlencode "q=sushi restaurants" \
--data-urlencode "location=tokyo japan" \
--data-urlencode "country=JP" \
--data-urlencode "search_lang=en"curl -s "https://api.search.brave.com/res/v1/local/place_search" \
-H "Accept: application/json" \
-H "Accept-Encoding: gzip" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-G \
--data-urlencode "latitude=48.8566" \
--data-urlencode "longitude=2.3522" \
--data-urlencode "radius=3000" \
--data-urlencode "country=FR"GET https://api.search.brave.com/res/v1/local/place_search
**Authentication**: `X-Subscription-Token: <API_KEY>` header
Providing a geographic anchor improves precision. You can use coordinates (`latitude` + `longitude`) or a `location` string. Omitting both is allowed when a `q` is given — results are sourced globally and may be less precise. Omitting all three (`q`, `latitude`/`longitude`, and `location`) returns HTTP 422.
| Parameter | Type | Required | Default | Description | |--|--|--|--|--| | `latitude` | float | Conditional | — | Latitude (-90.0 to 90.0). Required together with `longitude` | | `longitude` | float | Conditional | — | Longitude (-180.0 to 180.0). Required together with `latitude` | | `location` | string | No | — | Location string, alternative to coordinates. US: `<city> <state> <country>` (e.g., `san francisco ca united states`). Non-US: `<city> <country>` (e.g., `tokyo japan`). Case-insensitive, no commas needed. English or the most popular local language works best |
| Parameter | Type | Required | Default | Description | |--|--|--|--|--| | `q` | string | No | — | Free-text query (e.g., `coffee shops`, `pizza`). Fully optional — if omitted, returns general POIs in the given area |
| Parameter | Type | Required | Default | Description | |--|--|--|--|--| | `radius` | float | No | — | Search radius **bias** around the provided coordinates, in meters. Not a hard cutoff — results may extend beyond it. No upper limit | | `count` | int | No | `20` | Total items returned across **all** buckets (1–100), not just `results` — an address query can spend the whole budget on `addresses`/`streets` | | `geoloc` | string | No | — | User geolocation as `<latitude>x<longitude>` (e.g., `40.7128x-74.0060`), used to compute `distance` | | `country` | string | No | `US` | Search country (2-letter country code or `ALL`) | | `search_lang` | string | No | `en` | Language for search results (2+ char language code) | | `ui_lang` | string | No | `en-US` | UI language (locale code, e.g., `en-US`) | | `units` | string | No | `metric` | Measurement units: `metric` or `imperial` | | `safesearch` | string | No | `strict` | Safe search level: `off`, `moderate`, or `strict` | | `spellcheck` | bool | No | `true` | Whether to apply spellcheck to the query |
| Field | Type | Description | |--|--|--| | `type` | string | Always `"locations"` | | `results` | array | List of `LocationResult` objects (individual POIs) | | `cities` | array | Matched cities, `type: "city"` — see Geographic Place Fields | | `countries` | array | Matched countries, `type: "country"` | | `regions` | array | Matched regions, `type: "region"` | | `neighborhoods` | array | Matched neighborhoods, `type: "neighborhood"` | | `addresses` | array | List of `AddressResult` objects with `type: "address"` — specific street + number locations | | `streets` | array | List of `AddressResult` objects with `type: "street"` — entire streets | | `mixed` | array | `ResultReference` ordering hints describing how to interleave the buckets on a SERP | | `location` | object? | Resolved location info | | `location.coordinates` | [float, float] | `[latitude, longitude]` of the resolved center | | `location.name` | string | Resolved location name (e.g., `"Helsinki"`) | | `location.country` | string | Two-letter country code (e.g., `"FI"`) |
Treat a missing bucket as empty. For typical POI-style queries only `results` is populated, so clients that don't render rich SERPs can ignore the rest — except for address- or street-shaped queries, which can return an empty `results` and put every match in `addresses`/`streets`.
Each item in `results` is a `LocationResult`
Official skills for using Brave Search API with AI coding agents. Works with Claude Code, Cursor, GitHub Copilot, Codex, Gemini CLI, VS Code, Windsurf, OpenClaw, Cline, Goose, Amp, Roo Code, and many other agents that support the Agent Skills standard.
USE FOR AI-grounded answers via OpenAI-compatible /chat/completions. Two modes: single-search (fast) or deep research…
USE FOR web search, research, RAG, grounding, browse, find, lookups, fact-checking, documentation, agentic AI. All-in-one,…
USE FOR image search. Returns images with title, source URL, thumbnail. Supports SafeSearch filter. Up to 200 results.
USE FOR RAG/LLM grounding. Returns pre-extracted web content (text, tables, code) optimized for LLMs. GET + POST. Adjust…
USE FOR getting AI-generated POI text descriptions. Requires POI IDs from local-place-search, or from web-search with…
USE FOR getting local business/POI details. Requires POI IDs from local-place-search, or from web-search with…
Use this skill when the user requests to review, analyze, critique, or summarize academic papers, research articles, preprints,…
Research what people actually say about any topic in the last 30 days. Pulls posts and engagement from Reddit, X, YouTube,…
Estimates intracellular metabolic fluxes from steady-state carbon-13 isotope-tracing measurements using validated atom maps,…
Search literature across sources, verify or manage citations, and build MeSH strategies or citation-impact audits. Use for…