Geospatial AI infrastructure

Give your LLM a
sense of place.

Footstep is the geospatial layer for the AI stack. Spatial probability, routing, geocoding, and terrain analytics, ready for the agents and apps you're shipping.

Connect over MCP for any agent runtime. Hit the REST API from everything else. Same shapes either way.

  • GeoJSON, H3, and polyline outputs.
  • Pay-as-you-go. £5 free credit on signup.
claude_desktop_config.json
{
  "mcpServers": {
    "footstep": {
      "url": "https://mcp.footstep.ai",
      "headers": {
        "x-api-key": "sk_live_your_key_here"
      }
    }
  }
}
Predict · spatial AIResearch Preview

Probability over space.
Where every other map API stops.

Routing returns lines. Geocoding returns points. predict returns probability density.

Pass a behavioural profile, an area, and current conditions. Get back a scored H3 hex grid you can render in deck.gl, kepler.gl, or QGIS without a transformation step.

The spatial AI for any shape where a probabilistic prior is worth more than a deterministic answer. Missing-person scenarios. Evacuation modelling. Asset recovery. Patrol prioritisation.

Restricted access. Decision support only, never a replacement for expert human judgment. Read the access terms.

H3 probability surface
POST /v1/predict
{
  "profile": "despondent",
  "area_type": "circle",
  "lat": 51.477,
  "lon": -0.001,
  "radius_m": 5000,
  "age_years": 32,
  "datetime": "2026-04-12T14:30:00Z"
}
200 OK
{
  "top_results": [
    { "hex": "8a194ad32757fff", "score": 0.84, "lat": 51.479, "lng": -0.012 },
    { "hex": "8a194ad32753fff", "score": 0.71, "lat": 51.481, "lng": -0.018 },
    { "hex": "8a194ad32747fff", "score": 0.62, "lat": 51.476, "lng":  0.008 }
  ],
  "summary": { "hex_count": 50, "processing_time_ms": 187 }
}
Show, don't tell

One agent run, four tools, zero glue.

A user asks for a walking route with constraints. The agent picks tools at runtime, chains them, and synthesises the answer. You wrote none of the orchestration.

User

“Plan a 30-minute walk from my hotel near Kings Cross that doesn't cross any motorways and ends somewhere interesting.”

Tool calls (chosen by the model)4 calls · 320ms
1.
search_places(
near: Kings Cross hotel
query: hotel
)
2.
geocode(
text: Premier Inn London Kings Cross
)
3.
get_isochrone(
from: { lat, lon }
contours: [{ time_minutes: 30 }]
travel: "pedestrian"
)
4.
get_directions(
locations: [hotel, scenic_point]
travel: "pedestrian"
)
Agent

I've planned a flat 28-minute walk from the Premier Inn through Granary Square to Coal Drops Yard. 12m total ascent, no motorways, finishes at the canal.

The agent picks tools. The agent chains them. The agent synthesises the answer. Your job is the system prompt and the API key.

Use cases

Reference builds you can lift.

Each card has the tools, the agent flow, and a worked response shape. Find the closest fit and ship from there.

Search, rescue, and crisis response

Research Preview

Score where a missing person is most likely to be found. Direct ground teams to the highest-density hexes first.

Tools: predict · get-isochrone · geocode +1

Read the use case

Logistics and autonomous fleets

Multi-stop optimisation, OD matrices, and corridor search for the agents and backends that move things.

Tools: optimize-stops · get-matrix · find-and-route +2

Read the use case

Environmental and field operations

Terrain profiles, reachability polygons, and GPS map matching for ESG reporting, conservation, and field research.

Tools: get-elevation · get-isochrone · snap-trace +1

Read the use case

Real estate and property

Geocode listings, model commute reach, score nearby amenities, and overlay terrain risk. The toolkit behind agent-led property search.

Tools: geocode · get-isochrone · search-places +2

Read the use case

Travel and itinerary planning

Find places, route between them, fit them into a time budget, and surface what's on the way. The geospatial layer behind agentic trip planners.

Tools: find-and-route · search-along-route · get-isochrone +3

Read the use case

Customer-input cleanup

Fix typos, expand abbreviations, validate before geocoding. The reliable pre-step for agents handling user-typed addresses.

Tools: parse-address · geocode · batch-geocode +1

Read the use case

Field service and dispatch

Optimise visit order, score reachable jobs from each tech, clean GPS into proof-of-visit records.

Tools: optimize-stops · get-matrix · snap-trace +2

Read the use case

Insurance and risk underwriting

Anchor addresses, layer terrain and elevation, assess access from emergency services. Bulk-process portfolios in one call.

Tools: batch-geocode · get-elevation · get-isochrone +2

Read the use case

Healthcare access and equity

Compute drive-time and walk-time access to facilities, model coverage gaps, place ambulances with travel-time matrices.

Tools: get-isochrone · get-matrix · geocode +2

Read the use case

Sales and territory planning

Build OD matrices between reps and accounts, draw catchments around offices, normalise lead addresses at scale.

Tools: get-matrix · get-isochrone · batch-geocode +2

Read the use case

Outdoor and fitness apps

Plan walking, hiking, and cycling routes with explicit difficulty. Snap noisy GPS into clean traces with surface and grade per edge.

Tools: get-directions · get-elevation · snap-trace +1

Read the use case

Public-sector planning

Model who can reach what, where the gaps are, how transit changes the answer. Reachability and matrix tools for civic planning.

Tools: get-isochrone · get-matrix · get-elevation +2

Read the use case
Why Footstep

Built for the way agents
actually consume APIs.

Most geospatial APIs were designed in the era of mobile SDKs and web maps. We design ours for tool-calling LLMs, then surface it as REST so your backend gets the same upgrades.

Token-lean by default

Geometry is opt-in. Set include_geometry: true only when you're rendering on a map. The rest of the time your context window is for reasoning, not encoded polylines.

Stateless

Plain HTTP, JSON in and out. Idempotent retries. Call it from a server, edge function, or lambda.

Units in the field name

Field names carry units. distance_meters, duration_seconds, grade_percent. Your model never has to guess.
response shape
{
  "distance_meters": 5765,
  "duration_seconds": 812,
  "terrain": {
    "total_ascent_meters": 12.4,
    "avg_grade_percent": 1.2,
    "difficulty": "flat"
  }
}

Every major runtime

Streamable HTTP MCP works with the major agent runtimes. Or call REST from anything that speaks HTTP. Same auth.
ClaudeCursorOpenAI AgentsVercel AI SDKGeminiLangChain
How it works

Signup to first call
in under a minute.

Step 01

Get a key from console.footstep.ai

Sign up at console.footstep.ai and create an API key. £5 of free credit is applied to your account. Keys are scoped per environment, so dev and prod stay separate from day one.

Step 02

Wire it into your agent or your app

Agents: point your MCP client at mcp.footstep.ai with the x-api-key header. Apps and backends: hit api.footstep.ai with the same key. Pick one or use both.

Step 03

Call tools, get structured spatial data

Every response carries explicit units, place types, and confidence scores. Shared admin fields are hoisted into a context block. Geometry is opt-in.

Step 04

Watch usage and cost from the console

Per-key request volume, success rate, and live cost. Drill into recent requests to inspect inputs, outputs, and latency. Bump rate limits as you scale.

Open formats

Your data, in formats
you already know how to render.

Outputs use open standards. If you ever need to migrate, your data shapes keep working. That's a deliberate design choice, not an accident.

Drop-in renderable

GeoJSON FeatureCollections, H3 cells, and encoded polylines work with the major mapping stacks (deck.gl, Mapbox GL, Leaflet, kepler.gl, QGIS, ArcGIS) with no transformation step.

Explicit-unit fields

distance_meters, duration_seconds, grade_percent. Field names carry their unit, so reasoning over outputs is unambiguous in code review and in LLM context.

Versioned data

Every response includes the underlying data version. Pin behaviour to a snapshot for reproducibility, or stay on rolling for fresh updates.

The docs are the product manual. Every endpoint, every parameter, every error code, with copy-pasteable examples.

Read the docs →
FAQ

Questions we hear most

If something here doesn't answer it, drop us a line at the contact form or open an issue on GitHub.

What's the difference between the MCP server and the REST API?
MCP is for AI agents. Your model picks tools at runtime over Streamable HTTP. REST is for everything else: backends, web apps, batch pipelines, plain HTTP. They share auth, response shapes, pricing, and data. Most teams use both, sometimes from the same product.
Which AI agent runtimes are supported?
Anything that speaks Streamable HTTP MCP. We've tested Claude Desktop, Claude Code, Cursor, Windsurf, Cline, Continue, OpenAI Agents SDK, Vercel AI SDK, LangChain (via the MCP adapter), and Google Gemini.
How does pricing work?
Pay-as-you-go per request, metered against the API key. Geocoding is £0.50 per 1,000. Routing (route, matrix, isochrone, snap, optimise, compare, find-and-route, search-along-route, batch geocode) is £2.00 per 1,000. Natural-language tools are £25.00 per 1,000. Predict is £1.00 per call. Failed requests aren't billed. Above 1M requests a month, talk to us.
Do you offer enterprise or on-prem deploys?
Yes, for teams with data-residency or air-gap requirements. Get in touch if your workload needs that.
What about rate limits, status, and SLAs?
Default rate limits are generous enough for typical agent workloads. SLAs scale with plan tier. Status updates and incident history live at status.footstep.ai (linked from the console). We aim for above 99.9% availability across both MCP and REST.
Where does the data come from? How fresh is it?
The road graph and POI index are refreshed weekly. Geocoding combines open address data, admin hierarchies, and place metadata. Elevation comes from open elevation datasets. Every response includes the underlying data version, so you can pin behaviour for reproducibility.

Ship spatial reasoning today.

Self-serve API key. £5 free credit. The same data over MCP for your agent and over REST for your app.

Volume pricing above 1M requests a month. On-prem and air-gapped deploys for regulated workloads.