Agent skill

Brave Local POI Details

by brave in 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.

MITAuto-check passedBackend & APIs

Install Brave Local POI Details

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

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

GitHub CLI
$ gh skill install brave/brave-search-skills local-pois --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-pois .claude/skills/local-pois && 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-pois
GitHub stars
183
Token cost
~1.9k tokens
SKILL.md length
506 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

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

  • Getting opening hours, ratings and phone numbers for restaurants or shops found in a search
  • SKILL.md covers Quick Start (cURL), Endpoint, Parameters and Response Fields, plus 3 more sections
  • Calls curl; reaches api.search.brave.com and yelp.com; needs BRAVE_SEARCH_API_KEY and API_KEY
  • Showing distance to several businesses from a known user location

What it does

This skill documents the Brave Search API's local POI endpoint, a GET request to /res/v1/local/pois. It is the second step of a two-step flow: you first obtain POI IDs from the local place search endpoint, or from a web search filtered to locations, then pass between one and twenty of those IDs here to get full business records. The IDs are opaque strings that expire after roughly eight hours, so fresh ones should be fetched each time, and they must be URL-encoded because they can contain equals signs.

Requests carry the API key in an X-Subscription-Token header, and the endpoint is part of the Search plan. Optional parameters set the search language, UI locale and metric or imperial units, and optional latitude and longitude headers let the API report distance from the user. The response is a local_pois object whose results are location records with title, URLs, ID, description and postal address, among other fields. The excerpt ends in the middle of the response field table.

When your agent uses it

  • Getting opening hours, ratings and phone numbers for restaurants or shops found in a search
  • Showing distance to several businesses from a known user location
  • Building a lookup that turns POI IDs from search results into full business details

Example prompts

  • “Take the location IDs from that web search and fetch the opening hours and phone numbers.”
  • “Get the full details and distances in miles for these five cafe IDs, using my coordinates.”
  • “Write a curl call to the Brave POI endpoint that returns metric units for two IDs.”

Requirements

  • A Brave Search API key on the Search plan
  • POI IDs from the local place search endpoint or a web search with the locations filter
  • curl or an HTTP client

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 POI Details loads about 1.9k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 506 words of instructions outside code blocks.

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

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). 506 words, ~1,916 tokens.

Download SKILL.mdSave it as .claude/skills/local-pois/SKILL.md (or your agent's skills folder).
name
local-pois
description
USE FOR getting local business/POI details. Requires POI IDs from local-place-search, or from web-search with result_filter=locations. Returns full business information including ratings, hours, contact info. Max 20 IDs.

Local POIs (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 full business details

Quick Start (cURL)

Get POI Details
bash
curl -s "https://api.search.brave.com/res/v1/local/pois" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA="
Multiple POIs with Location Headers
bash
curl -s "https://api.search.brave.com/res/v1/local/pois" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "X-Loc-Lat: 37.7749" \
  -H "X-Loc-Long: -122.4194" \
  -G \
  --data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=" \
  --data-urlencode "ids=loc4HTAVTJKP4RBEBZCEMBI3NG26YD4II4PATIHPDYI=" \
  --data-urlencode "units=imperial"

Note: POI IDs are opaque strings returned in web search locations.results[].id. IDs are ephemeral and expire after ~8 hours. The example IDs above are for illustration — fetch fresh IDs via web-search with result_filter=locations. Use --data-urlencode since IDs may contain =.

Endpoint

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

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

Parameters

ParameterTypeRequiredDefaultDescription
idsstring[]Yes—POI IDs from web search results (1-20)
search_langstringNoenLanguage preference (2+ char language code)
ui_langstringNoen-USUI language (locale code, e.g., "en-US")
unitsstringNonullmetric (km) or imperial (miles)
Location Headers (Optional)

For distance calculation from user location:

HeaderTypeRangeDescription
X-Loc-Latfloat-90.0 to 90.0User latitude
X-Loc-Longfloat-180.0 to 180.0User longitude

Response Fields

The response has type: "local_pois" and a results array of LocationResult objects:

FieldTypeDescription
titlestringBusiness/POI name
urlstringCanonical URL for the location
provider_urlstringProvider page URL
typestringAlways "location_result"
idstringPOI identifier (opaque string, valid ~8 hours)
descriptionstring?Short description
postal_address.typestringAlways "PostalAddress"
postal_address.displayAddressstringFormatted display address
postal_address.streetAddressstring?Street address
postal_address.addressLocalitystring?City
postal_address.addressRegionstring?State/region
postal_address.postalCodestring?Postal/ZIP code
postal_address.countrystring?Country code
contact.telephonestring?Phone number
contact.emailstring?Email address
rating.ratingValuefloat?Average rating (≥0)
rating.bestRatingfloat?Max possible rating
rating.reviewCountint?Number of reviews
rating.profile.namestring?Rating provider name
rating.profile.urlstring?Rating provider URL
opening_hours.current_dayobject[]?Today's hours (abbr_name, full_name, opens, closes)
opening_hours.daysobject[][]?Hours for each day of the week (same structure)
coordinates[float, float]?[latitude, longitude] tuple
distance.valuefloat?Distance from user location
distance.unitsstring?Distance unit (km or miles)
categoriesstring[]Business categories (default [])
price_rangestring?Price indicator ($, $$, $$$, $$$$)
serves_cuisinestring[]?Cuisine types (restaurants)
thumbnail.srcstring?Thumbnail image URL
thumbnail.originalstring?Original image URL
profilesobject[]?External profiles (name, url, long_name, img)
reviews.reviews_in_foreign_languageboolWhether reviews in a foreign language are available
pictures.resultsobject[]?Photo thumbnails
actionobject?Action to take — has type (string) and url (string)
resultsobject[]?Related web results (LocationWebResult with meta_url)
timezonestring?IANA timezone (e.g., America/Los_Angeles)
timezone_offsetint?UTC timezone offset
Show full SKILL.md (101 more words)Show less
Example Response
json
{
  "type": "local_pois",
  "results": [
    {
      "type": "location_result",
      "title": "Park Mediterranean Grill",
      "url": "https://yelp.com/biz/park-mediterranean-grill-sf",
      "provider_url": "https://yelp.com/biz/park-mediterranean-grill-sf",
      "id": "loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=",
      "postal_address": {
        "type": "PostalAddress",
        "displayAddress": "123 Main St, San Francisco, CA 94102",
        "streetAddress": "123 Main St",
        "addressLocality": "San Francisco",
        "addressRegion": "CA",
        "postalCode": "94102",
        "country": "US"
      },
      "contact": { "telephone": "+1 415-555-0123" },
      "thumbnail": {
        "src": "https://example.com/thumb.jpg",
        "original": "https://example.com/original.jpg"
      },
      "rating": {
        "ratingValue": 4.5,
        "bestRating": 5.0,
        "reviewCount": 234,
      },
      "opening_hours": {
        "current_day": [
          { "abbr_name": "Mon", "full_name": "Monday", "opens": "07:00", "closes": "21:00" }
        ]
      },
      "coordinates": [37.7749, -122.4194],
      "distance": { "value": 0.3, "units": "miles" },
      "categories": ["Mediterranean", "Greek"],
      "price_range": "$$",
      "serves_cuisine": ["Mediterranean", "Greek"],
      "timezone": "America/Los_Angeles"
    }
  ]
}

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=coffee+shops+near+me&result_filter=locations" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "X-Loc-Lat: 37.7749" \
  -H "X-Loc-Long: -122.4194"

# 2. Extract POI IDs from locations.results[].id
# 3. Use those IDs with this endpoint

Use Cases

  • Local business lookup: Retrieve full details (hours, contact, address) for POIs surfaced in web search
  • Restaurant discovery pipeline: Search for restaurants, fetch POI details, filter by cuisine/rating/price_range
  • Business hours checker: Get opening_hours for a business to determine if currently open
  • Location-aware application: Combine with location headers to get distance calculations for nearby POIs

Notes

  • ID format: Opaque strings (use --data-urlencode for cURL)
  • Units: metric or imperial for distance measurement preference
  • Max IDs: Up to 20 IDs per request

© 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-pois of brave/brave-search-skills.

Open the folder on GitHubat commit 62793e0

Compare with similar skills

Brave Local POI Details 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 POI Details compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Brave Local POI Details this skillbrave/brave-search-skills183—~1.9kAutomated safety check: PassMIT
9Router Web Searchdecolua/9router31k—~1kAutomated safety check: PassMIT
Read The Damn DocsBuilderIO/skills4.6k—~1.8kAutomated safety check: PassMIT
OmniRoute Provider Managementdiegosouzapw/OmniRoute75k—~2.4kAutomated safety check: PassMIT
SublinkPro ManagerZeroDeng01/sublinkPro1.7k—~7.2kAutomated safety check: PassMIT
OpenAPI CLI CallerEvilFreelancer/openapi-to-cli265—~879Automated 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
  • 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
  • OmniRoute Provider Management

    diegosouzapw/OmniRoute

    Manages AI provider connections, API keys, OAuth flows and connection tests through OmniRoute's REST API across its 327-provider catalog.

    75k GitHub stars~2.4k tokensUpdated today
    Backend & APIsAuto-check passed
  • SublinkPro Manager

    ZeroDeng01/sublinkPro

    Manages a SublinkPro proxy subscription server through natural language, adding nodes, building subscriptions and share links, and editing templates and tags.

    1.7k GitHub stars~7.2k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • OpenAPI CLI Caller

    EvilFreelancer/openapi-to-cli

    Turns an OpenAPI, Swagger or OpenRPC spec into CLI commands the agent can search and call, with no MCP server or code generation.

    265 GitHub stars~879 tokensUpdated 19 days ago
    Backend & APIsAuto-check passed
  • Fivetran

    rocky-data/rocky

    Fivetran REST API reference for Rocky's source adapter. An agent skill from rocky-data/rocky.

    304 GitHub stars~914 tokensUpdated yesterday
    Backend & APIsAuto-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 Place Search

    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.

    183 GitHub stars~3.4k 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 POI Details

What does Brave Local POI Details do?

Looks up full details for local businesses and places, including ratings, hours and contact information, from Brave Search API point-of-interest IDs. This skill documents the Brave Search API's local POI endpoint, a GET request to /res/v1/local/pois. It is the second step of a two-step flow: you first obtain POI IDs from the local place search endpoint, or from a web search filtered to locations, then pass between one and twenty of those IDs here to get full business records.

When should I use Brave Local POI Details?

Brave Local POI Details fits situations like: getting opening hours, ratings and phone numbers for restaurants or shops found in a search; showing distance to several businesses from a known user location; building a lookup that turns POI IDs from search results into full business details.

How do I install Brave Local POI Details in Claude Code?

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

How do I install Brave Local POI Details in Codex?

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

Can I use Brave Local POI Details 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-pois -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-pois, .gemini/skills/local-pois, .github/skills/local-pois and .opencode/skills/local-pois in your project.

What does Brave Local POI Details need to run?

Going by SKILL.md and its folder, Brave Local POI Details 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 the Search plan; POI IDs from the local place search endpoint or a web search with the locations filter; curl or an HTTP client.

Does Brave Local POI Details 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 POI Details 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 POI Details use?

Brave Local POI Details 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 POI Details use?

About 1.9k tokens (SKILL.md is roughly 7.7k 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 POI Details?

Skills that share tags, products or a category with Brave Local POI Details: 9Router Web Search (decolua/9router, 31k stars), Read The Damn Docs (BuilderIO/skills, 4.6k stars), OmniRoute Provider Management (diegosouzapw/OmniRoute, 75k stars) and SublinkPro Manager (ZeroDeng01/sublinkPro, 1.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Brave Local POI Details?

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.