Agent skill

Brave Local Place Search

by brave in brave/brave-search-skills

Looks up businesses, points of interest, addresses and streets through the Brave Search place endpoint, returning contact details, ratings and hours in one call.

MITAuto-check passedProductivity & Automation

Install Brave Local Place Search

skills CLI
$ npx skills add brave/brave-search-skills --skill local-place-search -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install brave/brave-search-skills local-place-search --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/brave/brave-search-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/local-place-search .claude/skills/local-place-search && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
local-place-search
GitHub stars
183
Token cost
~3.4k tokens
SKILL.md length
1,076 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

Looks up businesses, points of interest, addresses and streets through the Brave Search place endpoint, returning contact details, ratings and hours in one call.

  • Finding coffee shops, pharmacies or other businesses near a location
  • SKILL.md covers Quick Start (cURL), Endpoint, Parameters and Response Format, plus 3 more sections
  • Calls curl; reaches api.search.brave.com and yelp.com; needs BRAVE_SEARCH_API_KEY and API_KEY
  • Looking up the address, phone number and opening hours of a named business

What it does

The agent calls Brave's place search endpoint with a query, a pair of coordinates or a location string, or a mix of them, and gets back places with address, coordinates, rating, opening hours and phone number. Leaving out the query browses an area, and leaving out the location searches globally, although a geographic anchor gives more precise results. A request with no query, coordinates or location is rejected with HTTP 422.

Unlike the related local-pois and local-descriptions skills, this one needs no POI IDs from an earlier web search, and the IDs it returns can be passed on to those two. A request returns at most 100 results. You need a Brave Search API key, sent in the X-Subscription-Token header, on a plan that includes the locations option.

When your agent uses it

  • Finding coffee shops, pharmacies or other businesses near a location
  • Looking up the address, phone number and opening hours of a named business
  • Browsing points of interest in a city without a specific query
  • Collecting place IDs to follow up with detailed descriptions

Example prompts

  • “Find vegetarian restaurants in Lisbon and give me addresses and opening hours.”
  • “Which pharmacies are near the Brooklyn Bridge, and what are their phone numbers?”
  • “List points of interest in central Tokyo with their ratings.”

Requirements

  • A Brave Search API key on a plan with the locations option
  • Network access to api.search.brave.com

What it can do on your machine

Read from SKILL.md and the folder at commit 62793e0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.search.brave.com
    • yelp.com

    Also links to:

    • api-dashboard.search.brave.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • BRAVE_SEARCH_API_KEY
    • API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Brave Local Place Search loads about 3.4k tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 1,076 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~119
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from brave/brave-search-skills at commit 62793e0, republished under its MIT licence (© brave). 1,076 words, ~3,367 tokens.

Download SKILL.mdSave it as .claude/skills/local-place-search/SKILL.md (or your agent's skills folder).
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.

Place Search (Search API)

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.

Quick Start (cURL)

Search by Query + Coordinates
bash
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"
Search by Query + Location String
bash
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"
Browse General POIs (No Query)
bash
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"

Endpoint

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

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

Parameters

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.

ParameterTypeRequiredDefaultDescription
latitudefloatConditional—Latitude (-90.0 to 90.0). Required together with longitude
longitudefloatConditional—Longitude (-180.0 to 180.0). Required together with latitude
locationstringNo—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
ParameterTypeRequiredDefaultDescription
qstringNo—Free-text query (e.g., coffee shops, pizza). Fully optional — if omitted, returns general POIs in the given area
Additional Options
ParameterTypeRequiredDefaultDescription
radiusfloatNo—Search radius bias around the provided coordinates, in meters. Not a hard cutoff — results may extend beyond it. No upper limit
countintNo20Total items returned across all buckets (1–100), not just results — an address query can spend the whole budget on addresses/streets
geolocstringNo—User geolocation as <latitude>x<longitude> (e.g., 40.7128x-74.0060), used to compute distance
countrystringNoUSSearch country (2-letter country code or ALL)
search_langstringNoenLanguage for search results (2+ char language code)
ui_langstringNoen-USUI language (locale code, e.g., en-US)
unitsstringNometricMeasurement units: metric or imperial
safesearchstringNostrictSafe search level: off, moderate, or strict
spellcheckboolNotrueWhether to apply spellcheck to the query

Response Format

Top-Level Fields
FieldTypeDescription
typestringAlways "locations"
resultsarrayList of LocationResult objects (individual POIs)
citiesarrayMatched cities, type: "city" — see Geographic Place Fields
countriesarrayMatched countries, type: "country"
regionsarrayMatched regions, type: "region"
neighborhoodsarrayMatched neighborhoods, type: "neighborhood"
addressesarrayList of AddressResult objects with type: "address" — specific street + number locations
streetsarrayList of AddressResult objects with type: "street" — entire streets
mixedarrayResultReference ordering hints describing how to interleave the buckets on a SERP
locationobject?Resolved location info
location.coordinates[float, float][latitude, longitude] of the resolved center
location.namestringResolved location name (e.g., "Helsinki")
location.countrystringTwo-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.

LocationResult Fields

Each item in results is a LocationResult:

FieldTypeDescription
typestringAlways "location_result"
titlestringBusiness/POI name
urlstringCanonical URL
descriptionstring?Short description or category label (e.g., "Coffee Shop")
provider_urlstringProvider page URL
idstring?Opaque POI identifier (valid ~8 hours, usable with local-pois and local-descriptions)
coordinates[float, float]?[latitude, longitude]
postal_addressobjectdisplayAddress, plus optional streetAddress, addressLocality, addressRegion, postalCode, country
contact.telephonestring?Phone number
contact.emailstring?Email address
rating.ratingValuefloat?Average rating
rating.bestRatingfloat?Max possible rating
rating.reviewCountint?Number of reviews
rating.is_tripadvisorboolWhether the rating comes from Tripadvisor
opening_hours.current_dayobject[]?Today's hours (abbr_name, full_name, opens, closes)
opening_hours.daysobject[][]?Hours for each day of the week
categoriesstring[]Business categories (default [])
price_rangestring?Price indicator, e.g. $, $$, $$ - $$$
serves_cuisinestring[]?Cuisine types (restaurants)
distance.valuefloat?Distance from the search location
distance.unitsstring?Distance unit
icon_categorystring?Icon category slug (e.g., cafe)
thumbnail.srcstring?Thumbnail image URL
thumbnail.originalstring?Original image URL
pictures.resultsobject[]?Additional images (src, original)
profilesobject[]?External profiles (name, url, long_name, img)
timezonestring?IANA timezone (e.g., America/Los_Angeles)
zoom_levelintSuggested map zoom level (default 7)
Show full SKILL.md (394 more words)Show less
Geographic Place Fields (cities, countries, regions, neighborhoods)

All four buckets share one shape, differing only by the type identifier. The published spec names them CityResult / CountryResult / RegionResult / NeighborhoodResult.

FieldTypeDescription
typestringBucket identifier: city, country, region, or neighborhood
namestringPlace name
countrystringCountry code of the place
coordinates[float, float][latitude, longitude]
thumbnail.srcstringPrimary image URL
AddressResult Fields (addresses and streets)

Same model is used for both buckets. Items in addresses have type: "address" (street + number); items in streets have type: "street" (entire street).

FieldTypeDescription
typestring"address" (in addresses) or "street" (in streets)
namestringDisplay name of the address or street
coordinates[float, float][latitude, longitude]
poisobject[]LocationResult objects located at this address/street
pois_nearbyobject[]LocationResult objects located nearby
zoom_levelintSuggested map zoom level (default 15)
distance.valuefloat?Distance from the search location
distance.unitsstring?Distance unit
postal_addressobject?displayAddress, streetAddress, addressLocality, addressRegion, country
Mixed Ordering (mixed)

mixed is an ordered list of ResultReference objects telling clients how to interleave items from the different buckets on a single SERP.

FieldTypeDescription
typestringBucket to draw from: results, cities, countries, regions, neighborhoods, addresses, or streets
indexint?0-based index of the item within that bucket. May be null when all is true
allboolWhen true, all remaining items from the named bucket should be placed at this position

Clients that only render POIs can ignore mixed entirely and read results directly.

Example Response
json
{
  "type": "locations",
  "results": [
    {
      "type": "location_result",
      "title": "Blue Bottle Coffee",
      "url": "https://yelp.com/biz/blue-bottle-coffee-sf",
      "provider_url": "",
      "id": "loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=",
      "description": "Coffee Shop",
      "postal_address": {
        "type": "PostalAddress",
        "displayAddress": "315 Linden St, San Francisco, CA 94102"
      },
      "contact": { "telephone": "+15106533394" },
      "rating": {
        "ratingValue": 4.3,
        "bestRating": 5.0,
        "reviewCount": 1024,
        "is_tripadvisor": true
      },
      "opening_hours": {
        "current_day": [
          { "abbr_name": "Tue", "full_name": "Tuesday", "opens": "07:00", "closes": "18:00" }
        ],
        "days": [
          [{ "abbr_name": "Mon", "full_name": "Monday", "opens": "07:00", "closes": "18:00" }]
        ]
      },
      "coordinates": [37.7763, -122.4215],
      "categories": [],
      "serves_cuisine": ["Cafe", "Coffee Shop"],
      "price_range": "$$",
      "icon_category": "cafe",
      "thumbnail": {
        "src": "https://example.com/thumb.jpg",
        "original": "https://example.com/original.jpg"
      },
      "zoom_level": 7
    }
  ],
  "cities": [],
  "countries": [],
  "regions": [],
  "neighborhoods": [],
  "addresses": [],
  "streets": [],
  "mixed": [
    { "type": "results", "index": 0, "all": false }
  ],
  "location": {
    "coordinates": [37.7749, -122.4194],
    "name": "San Francisco",
    "country": "US"
  }
}

For a query that matches a city name, the response additionally surfaces a city entry in cities:

json
{
  "cities": [
    {
      "type": "city",
      "name": "San Francisco",
      "country": "US",
      "coordinates": [37.7749, -122.4194],
      "thumbnail": { "src": "https://example.com/sf.jpg" }
    }
  ],
  "mixed": [
    { "type": "cities", "index": 0, "all": false }
  ]
}

Enriching Results with POI Details and Descriptions

POI id values from results can be passed to sibling endpoints for richer data:

bash
# Get full POI details (hours, reviews, photos, web result mentions)
curl -s "https://api.search.brave.com/res/v1/local/pois" -G \
  --data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"

# Get AI-generated descriptions
curl -s "https://api.search.brave.com/res/v1/local/descriptions" -G \
  --data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"

Use Cases

  • Map-based exploration: Search for POIs within a visible map viewport using coordinates + radius. No prior query needed.
  • Location-aware apps: Build "nearby" features — pass device GPS coordinates and a query to find relevant businesses.
  • Travel planning: Search for attractions, restaurants, and hotels by location string (e.g., paris france) without needing exact coordinates.

Notes

  • Finds places, not pages: This endpoint searches a geographic index of physical places. Use web search for general information retrieval.
  • Choosing a radius: A tighter radius (below ~20 km) gives more focused results. Raise it to reach specific or well-known places further afield; for common category searches (e.g., restaurants), the default bias or tighter works best.

© brave, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/local-place-search of brave/brave-search-skills.

Open the folder on GitHubat commit 62793e0

Compare with similar skills

Brave Local Place Search next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Brave Local Place Search compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Brave Local Place Search this skillbrave/brave-search-skills183—~3.4kAutomated safety check: PassMIT
9Router Web Searchdecolua/9router31k—~1kAutomated safety check: PassMIT
Brave SearchLeoYeAI/openclaw-master-skills2.2k—~4.6kAutomated safety check: PassMIT
Brave Searchbadlogic/pi-skills2.6k5 repos~592Automated safety check: PassMIT
Read The Damn DocsBuilderIO/skills4.6k—~1.8kAutomated safety check: PassMIT
YouTube Channel ToolsZeroPointRepo/youtube-skills1k1 repos~3.3kAutomated safety check: PassMIT

Similar skills

  • 9Router Web Search

    decolua/9router

    Runs web, news and public X searches through a 9Router gateway's search endpoint, choosing among providers such as Tavily, Exa, Brave and Perplexity.

    31k GitHub stars~1k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed
  • Brave Search

    LeoYeAI/openclaw-master-skills

    Brave Search API integration with managed authentication. An agent skill from LeoYeAI/openclaw-master-skills.

    2.2k GitHub stars~4.6k tokensUpdated 2 mo ago
    Productivity & AutomationAuto-check passed
  • Brave Search

    badlogic/pi-skills

    Web search and content extraction via Brave Search API. An agent skill from badlogic/pi-skills.

    2.6k GitHub starsUsed in 5 repos~592 tokens
    Productivity & AutomationAuto-check passed
  • Read The Damn Docs

    BuilderIO/skills

    A skill your agent uses when implementing, integrating, upgrading, debugging, or answering anything involving third-party APIs, libraries, frameworks, CLIs, cloud services, model/provider SDKs…

    4.6k GitHub stars~1.8k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • YouTube Channel Tools

    ZeroPointRepo/youtube-skills

    Browses YouTube channels through TranscriptAPI: resolves handles to channel IDs, lists recent uploads and pages through a channel's videos.

    1k GitHub starsUsed in 1 repo~3.3k tokens
    Productivity & AutomationAuto-check passed
  • Hacker News Search

    dylanfeltus/skills

    Searches and monitors Hacker News stories, comments and users through the free Algolia HN Search API, with tag, points and date filters.

    179 GitHub stars~1.7k tokensUpdated 23 days ago
    Productivity & AutomationAuto-check passed

More from brave/brave-search-skills

All 11 skills in this repo
  • Brave Answers API

    brave/brave-search-skills

    Calls the Brave Search Answers endpoint for AI-grounded, cited answers, either a fast single-search reply or a slower multi-search deep research run.

    183 GitHub stars~2.3k tokensUpdated 18 days ago
    Auto-check passed
  • Brave Image Search

    brave/brave-search-skills

    Searches images through the Brave Search API and returns titles, source pages, thumbnails and original image URLs, with a SafeSearch filter and up to 200 results.

    183 GitHub stars~1.4k tokensUpdated 18 days ago
    Auto-check passed
  • Brave LLM Context API

    brave/brave-search-skills

    Documents Brave's LLM Context API, which returns pre-extracted, ranked web page content for grounding agent and RAG answers, with GET and POST calls and Goggles filters.

    183 GitHub stars~3.3k tokensUpdated 18 days ago
    Auto-check passed
  • Brave Local Place Descriptions

    brave/brave-search-skills

    Fetches AI-written text descriptions for local places from the Brave Search API, using place IDs returned by an earlier local search.

    183 GitHub stars~1k tokensUpdated 18 days ago
    Auto-check passed
  • Brave Local POI Details

    brave/brave-search-skills

    Looks up full details for local businesses and places, including ratings, hours and contact information, from Brave Search API point-of-interest IDs.

    183 GitHub stars~1.9k tokensUpdated 18 days ago
    Auto-check passed
  • News Search

    brave/brave-search-skills

    A skill your agent uses FOR news search. An agent skill from brave/brave-search-skills.

    183 GitHub stars~2k tokensUpdated 18 days ago
    Auto-check passed

Questions about Brave Local Place Search

What does Brave Local Place Search do?

Looks up businesses, points of interest, addresses and streets through the Brave Search place endpoint, returning contact details, ratings and hours in one call. The agent calls Brave's place search endpoint with a query, a pair of coordinates or a location string, or a mix of them, and gets back places with address, coordinates, rating, opening hours and phone number. Leaving out the query browses an area, and leaving out the location searches globally, although a geographic anchor gives more precise results.

When should I use Brave Local Place Search?

Brave Local Place Search fits situations like: finding coffee shops, pharmacies or other businesses near a location; looking up the address, phone number and opening hours of a named business; browsing points of interest in a city without a specific query; collecting place IDs to follow up with detailed descriptions.

How do I install Brave Local Place Search in Claude Code?

Run `npx skills add brave/brave-search-skills --skill local-place-search -a claude-code`. Or copy the skill folder (skills/local-place-search in brave/brave-search-skills) into .claude/skills/local-place-search in your project. Claude Code loads it when a task matches its description.

How do I install Brave Local Place Search in Codex?

Run `npx skills add brave/brave-search-skills --skill local-place-search -a codex`. Or copy the skill folder (skills/local-place-search in brave/brave-search-skills) into .agents/skills/local-place-search in your project. Codex loads it when a task matches its description.

Can I use Brave Local Place Search in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add brave/brave-search-skills --skill local-place-search -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/local-place-search, .gemini/skills/local-place-search, .github/skills/local-place-search and .opencode/skills/local-place-search in your project.

What does Brave Local Place Search need to run?

Going by SKILL.md and its folder, Brave Local Place Search needs the command-line tools its instructions call (curl) and credentials named BRAVE_SEARCH_API_KEY and API_KEY. Our summary lists: A Brave Search API key on a plan with the locations option; Network access to api.search.brave.com.

Does Brave Local Place Search access the network?

SKILL.md names 3 domains. In commands or code: api.search.brave.com and yelp.com; the agent is likely to contact these when it follows the instructions. As links in the text: api-dashboard.search.brave.com. This is read from the text; nothing was executed.

Is Brave Local Place Search safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Brave Local Place Search use?

Brave Local Place Search is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Brave Local Place Search use?

About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Brave Local Place Search?

Skills that share tags, products or a category with Brave Local Place Search: 9Router Web Search (decolua/9router, 31k stars), Brave Search (LeoYeAI/openclaw-master-skills, 2.2k stars), Brave Search (badlogic/pi-skills, 2.6k stars) and Read The Damn Docs (BuilderIO/skills, 4.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Brave Local Place Search?

brave (a GitHub organization) maintains it in brave/brave-search-skills, which has 183 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on September 23, 2026.

Source: brave/brave-search-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.