Geospatial API for AI Agents

Give your AI agent a sense of place

Single-call geospatial context for LLMs, MCP tools, and agentic applications. POI search, neighbourhood profiles, weather and timezone — all in one request.

Cut LLM tool-calling token overhead by 80%

View API Docs
300–500ms
End-to-end latency
10
Ranked results
1
API call
Everything your agent needs to reason about place

One request returns a full geospatial context bundle — no round-trips, no glue code, no multiple API subscriptions.

🔍

Ranked Semantic POI Results

10 matched points of interest with distance, OSM tags, opening status, and agent-readable description. Understands natural language including accessibility attributes.

🏘

Neighbourhood Profile

POI category composition (restaurants, transit, parks, healthcare…) and walkability score for the surrounding area — no second request needed.

🌤

Weather & Forecast

Current conditions and 7-day forecast. Temperature, precipitation, wind, and condition descriptions agents can read directly.

🕐

Timezone & DST

IANA timezone identifier, UTC offset, and daylight saving status from in-process lookup — no external call, no latency.

The missing spatial layer for your LLM stack

Standard geocoding APIs were designed for human UIs — they return coordinates for map rendering, not machine-readable context for reasoning. When an AI agent asks "what's near Brandenburg Gate and is the restaurant wheelchair accessible?" — existing APIs require multiple round-trips, return minimal structured data, and have no awareness of OSM accessibility tags. This API answers it in one call.

Wrap /context as an MCP tool and give any LLM full environmental awareness before its first token — address, timezone, weather, and POI density — loaded into the system prompt with a single tool call.

Dramatically lower tool-calling costs at scale. With traditional geospatial APIs, loading full location context into an LLM requires 3–4 separate tool calls — one each for address, timezone, weather, and neighbourhood profile. Every tool call costs tokens: the tool definition, the call itself, and the result all count against your context window. /context collapses all of this into a single round-trip, cutting tool-calling token overhead by 80% and eliminating the latency of sequential calls. At thousands of requests per day, this compounds into significant cost savings.

  • Understands 100+ languages — query in any language, results in any language
  • OSM accessibility tags: wheelchair, kerb, tactile_paving, hearing_loop
  • Semantic search understands structured tag attributes — not keyword matching
  • Single API key, no per-component subscriptions
mcp_tool.py
# MCP tool — one call gives the LLM full context
tool = {
  "name": "get_location_context",
  "description": "Get geospatial context for a
    coordinate: address, timezone, weather,
    and POI neighbourhood profile.",
  "input_schema": {
    "type": "object",
    "properties": {
      "lat": {"type": "number"},
      "lon": {"type": "number"}
    },
    "required": ["lat", "lon"]
  }
}

async def handle_tool(lat, lon):
    # Submit job
    r = await client.post(
        "/context",
        json={"lat": lat, "lon": lon}
    )
    job_id = r.json()["job_id"]

    # Poll for result
    return await poll_job(job_id)
Built for every application that touches the physical world

From AI concierges to autonomous vehicles, any system that needs to reason about location benefits from rich, structured geospatial context.

✈️

AI Travel & Concierge Agents

Find wheelchair-accessible restaurants, check opening hours, get transit directions, and report weather — all in one call. No competitor can answer it in one request.

🚚

Autonomous Mobility & Delivery

POI density, transit options, street-level imagery for verification, and real-time departure data for last-mile delivery and fleet routing agents.

Accessibility-First Applications

OSM encodes hundreds of accessibility tags that our search engine understands semantically. Queries like "step-free route to conference centre" resolve correctly — no competitor exposes this at retrieval time.

🤖

LLM Context Injection

Pre-load LLM system prompts with full location context before the first user message — enabling spatial reasoning without any tool calls during inference.

Simple, transparent, agent-friendly

Straightforward usage-based pricing with a generous free tier. Start prototyping immediately — no credit card required.

Free
$0
3,000 requests / month

Perfect for prototypes
Growth
$299/mo
100,000 requests / month

$3.08 / 1,000 overage
Pro
$999/mo
600,000 requests / month

$1.67 / 1,000 overage
Enterprise
Custom
Custom volume + SLA

Self-hosted option available
Fire-and-forget, poll when ready

Requests return a job_id immediately. Poll /jobs/{id} for the result — no blocking, no timeouts, no lost requests.

1

Submit

POST your request. Receive job_id in 202 response instantly.

2

Poll

GET /jobs/{id} every second. Status moves from queuedprocessing.

3

Result

Status becomes complete. Full result in the same response body.

# Submit POST /forward → 202 { "job_id": "3f8e2a1b-...", "status": "queued" } # Poll (repeat until complete) GET /jobs/3f8e2a1b-... → { "status": "processing" } GET /jobs/3f8e2a1b-... → { "status": "complete", "result": { ... } }