🏆 Beats Google Places on real agent queries

The places API built for AI agents

Semantic search over 49 million places at 1% of Google's price — licensed to cache, store, and train on. Your agent can finally afford to think.

10,000 free calls/mo No card required Hard spend caps
Live demo agent → topoloop · POST /places/search
// your agent, mid-loop:

200 OK · 236 ms · top of 5
© Mapbox © OSM
Yari-ga-take
槍ヶ岳 · Hida Mountains, JP
49M
places indexed, planet-wide
100+
languages understood
300ms
typical p50, warm
30d
full-planet refresh from OSM
Platform

Every geo capability an agent needs.
Nothing a human search box wants.

Purpose-built for the two things agents actually do with geography: find the place a human meant, and resolve the places a document mentions.

Semantic place search

Agents don't typo — they approximate. "The golden temple in Kyoto," a stripped romanization, an epithet from a blog post — an embedding model fine-tuned on real agent traces resolves the place the model means, not the string it sent.

Built for loops

Responses are candidate pools with scores, not a single take-it-or-leave-it answer. Your LLM disambiguates; you validate its pick by reference. The pattern behind pipelines that resolved 150k+ places from photos.

MCP-native

One line adds topoloop to Claude, Cursor, or any MCP client. Tool schemas designed for function-calling — with OpenAI, LangChain, and Vercel AI SDK bindings that behave identically.

Fame-aware nearby

"What's around here?" shouldn't return forty lampposts. Prominence signals mined from the open web surface the temple over the vending machine — world landmarks are guaranteed a seat within radius.

The enrichment layer

Verified official websites, live hours, services, and one-line descriptions — independently sourced, keyed to every place, licensable as a clean sidecar. The columns Google won't sell you.

Open data, no lock-in

Built on OpenStreetMap, re-ingested from the raw planet file monthly. Stable tl_ IDs with OSM crosswalk. Self-host bundles when you need the index inside your own perimeter.

How it works

Anatomy of a resolution loop

The route your agent walks — four steps, sub-second round trip. Works identically for a chat agent geocoding "that ramen place near the station" and a batch pipeline resolving a million blog posts.

1
Search

Ask in any words

Your agent calls search or nearest with whatever it has — a name, a phrase, a coordinate, another language.

2
Candidates

Get a ranked pool

Scored candidates with names, coords, fame, and context — sized for a model to read, not a human to scroll.

3
Disambiguate

Your LLM picks

The model chooses with full context of its task. Ambiguity is resolved where the intelligence is — in your loop.

4
Validate

Lock the reference

The pick is validated against the pool and returned as a stable tl_ ID. Hallucinated places can't survive this step.

Quickstart

Five minutes to first fix

From zero to a production tool-call before your coffee cools. Pick your trailhead:

MCP server for Claude, Cursor, Windsurf
REST — two endpoints, obvious JSON
Python & TypeScript SDKs, typed
LangChain tool & Vercel AI SDK bindings
# add topoloop to Claude Code
$ claude mcp add topoloop \
    --url https://api.topoloop.com/mcp \
    --header "Authorization: Bearer $TOPOLOOP_KEY"

# your agent now has:
search_places  — semantic search, any language
nearby_places  — fame-aware "what's around here"
place_details  — hours, website, enrichment
Benchmark

Surveyed against real agent queries

Our eval set is 1,000+ tool-calls made by production LLM agents — cross-language, misspelled, half-remembered. Not benchmark-friendly strings. The full public harness (vs. Google, Foursquare, Mapbox, LocationIQ) ships as a repo you can re-run.

System Recall@1 Recall@5 Recall@10
topoloop (retrieval + reranker) 0.6660.8600.908
topoloop (semantic only) 0.5820.8140.865
Google · Foursquare · Mapbox · LocationIQ public benchmark repo — in the field, publishing soon
1,037 held-out (query, place) pairs from live agent traces · measured June 2026 · methodology & harness will be open source
Actually buildable

Location data you can build a business on

Affordable on day one. A real path to production. And no rug-pull priced into the terms — cache it, store it, train on it, render it on any map you like. If you outgrow the API, the self-host bundle means you can never be stranded.

What you can do with results
topoloop
Google
Cache responses indefinitely
Store place IDs in your DB
30 days
Display on any map (MapLibre, Mapbox…)
Use in training & evals
Bulk export your resolved data
Self-host the full stack
Pricing

Priced for loops, not sessions

Agents are chatty. Google charges $32 per thousand searches and Mapbox bills "sessions" at up to $11.50 — pricing built for humans typing in boxes. Agents run loops, so we price for loops. Hard caps on every tier — a runaway loop hits a wall, never your card. Volume pricing published all the way up: no "contact sales" cliff between you and scale.

Coming soon
Trailhead
$29 /mo
  • 75,000 calls / month
  • Enrichment fields included
  • Batch endpoints
  • Email support
Coming soon
Coming soon
Expedition
$199 /mo
  • 600,000 calls / month
  • Entity-resolution pipelines
  • 99.9% uptime SLA
  • Priority support
Coming soon
Summit / Self-host
Custom
  • Run the full stack inside your perimeter
  • Regional or planet bundles
  • Monthly index + model refresh
  • Data licensing available
Talk to us

The free tier is live today — paid tiers are coming soon, and the prices above are what they'll launch at. Past 600k calls: published volume rates from $0.30 / 1k, down to $0.25 / 1k above 5M — your bill grows smoothly from $0 to scale without a single sales call. True pay-per-call: no reserved capacity, no per-second throttles.

Your agent already knows what.
Give it where.

10,000 free calls a month. One line of MCP. The planet, refreshed monthly. Bring the loop — we'll bring the map.

Get your API key
36°20′31″N 137°38′51″E · CONTOURS: HIDA MOUNTAINS · INTERVAL 200 m