Open Places Get a key
Menu

Hand this to your agent.

Paste the setup prompt into Claude Code, Cursor or Codex. It asks you for a key, then connects over MCP or calls the REST API from your server code.

Get a key
MCP serverapp.openplacesapi.com/mcp
REST endpointapi.openplacesapi.com/v1/places
AuthOne server-side bearer key
Free plan10,000 searches a month, no card
ResultsYours to cache, store and keep
setup-prompt.md
Set up Open Places API in this project. It is place search
(businesses, landmarks, venues) near a point, on open
Overture data, over MCP or REST.

1. Ask me for an API key. I create one at
   https://app.openplacesapi.com (Google or GitHub sign-in,
   10,000 free searches a month). Don't sign up yourself.
2. Store it as OPA_KEY in server-side config only. Never put it
   in browser code, a public repo, logs or a prompt.
3. If you support MCP, add the hosted server:
   claude mcp add --transport http openplacesapi \
     https://app.openplacesapi.com/mcp \
     --header "Authorization: Bearer $OPA_KEY"
   Tools: search_places, list_categories.
4. Otherwise call REST from server code:
   GET https://api.openplacesapi.com/v1/places
       ?q=coffee&lat=40.7411&lon=-73.9897
   Authorization: Bearer $OPA_KEY
   Contract: https://openplacesapi.com/openapi.yaml
5. Find category slugs with list_categories (or
   GET /v1/categories) instead of guessing. It's free.
6. You may cache and store results, subject to the open-data
   licenses: https://openplacesapi.com/data-rights
7. On 402 quota_exhausted, stop and tell me. On 429 or 503,
   wait Retry-After seconds, then retry.

Everything else: https://openplacesapi.com/llms.txt

Every answer is a plain file.

Agents read these directly. They share the site's source data and documentation.

FileWhat it answers
/coverage.mdPlaces per country and per city, with density and confidence.
/coverage.jsonThe same coverage facts and per-category counts, as structured data.
/llms.txtWhat Open Places is, what it isn't, and where everything else lives.
/openapi.yamlThe REST contract: parameters, response fields, errors.
/pricing.mdPlans, limits and what happens at the cap, as a table.
/agents.mdThis guide, including tool arguments and responses.
/setup-prompt.mdThe setup prompt, ready to paste into a coding agent.
/docs.mdThe quickstart. Add .md to any docs page URL, for example /docs/reference.md.
/.well-known/agent-skills/open-places-search/SKILL.mdA skill file coding agents can load to search places well.
/auth.mdHow keys work, and why an agent can't sign up on its own.
/.well-known/mcp/server-card.jsonThe MCP server's address, transport and tools.

Two tools. Plain arguments.

search_places

Places near a point, by text, category or both. One search against your quota.

lat, lonRequired. The search center.
qFree text: "ramen", "Blue Bottle", "pharmacy". Required unless category is supplied. At least 3 searchable characters, or 2 contiguous CJK characters.
categoryAn exact slug, like coffee_shop or food_and_drink. Use list_categories to find it.
radius_miUp to 50. Default 25.
limitUp to 20 for text, 50 with a category. Default 10.
offsetCategory browse only. offset + limit ≤ 1000. Follow meta.next_offset.
min_confidenceSource confidence from 0 to 1; no default threshold.
sortrelevance (default) or distance.
modeall (default), name or address. Address mode needs at least 4 searchable characters.

list_categories

The right slug for "ev charging" or "hardware store". Free; no key, no quota.

qWords describing the kind of place. Omit to list every category.
limitUp to 100 matches. Default 20. Ignored without q.

Responses to handle

402quota_exhausted: stop and tell the user. Upgrade or buy a top-up; never retry in a loop.
429rate_limited: 120 a minute, 8 in flight per account. Wait Retry-After.
503coverage_not_ready: wait Retry-After, then retry.
WarningsRead meta.warnings for unknown_category suggestions, relaxed or inferred queries, nearby matches outside the radius and pagination limits. See /docs/errors.

Prices an agent can read.

So "which plan do I need for 50,000 searches a month?" gets a right answer without a screenshot.

# Open Places pricing
Checked 2026-11-10 · Currency: USD · Billing: monthly or yearly

| Plan | Searches/month | Monthly | Yearly | Layer entries |
|---|---:|---:|---:|---:|
| Free | 10,000 | $0 | — | 250 |
| Indie | 30,000 | $19 | $190 | 1,000 |
| Startup | 100,000 | $49 | $490 | 5,000 |
| Business | 1,000,000 | $249 | $2,490 | 50,000 |
| Scale | Over 1,000,000 | Custom | Custom | Custom |

## At the cap
No overages. Requests past the quota return HTTP 402 quota_exhausted.
Top-ups are one-time, current period only. Unused calls move with a mid-month upgrade.

| Top-up | Calls | Price | Plans |
|---|---:|---:|---|
| 30k | 30,000 | $29 | Free, Indie |
| 100k | 100,000 | $30 | Startup, Business |
| 1M | 1,000,000 | $150 | Startup, Business |

All plans include MCP and REST, global Overture coverage and results you may store under the source licenses.
Free needs no card. Sign up with Google or GitHub at https://app.openplacesapi.com/signup.
Full plan terms: https://openplacesapi.com/pricing
Data rights: https://openplacesapi.com/data-rights