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.
{
"mcpServers": {
"footstep": {
"url": "https://mcp.footstep.ai",
"headers": {
"x-api-key": "sk_live_your_key_here"
}
}
}
}curl -X POST https://api.footstep.ai/v1/routing/route \
-H "x-api-key: sk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"locations": [
{ "lat": 51.5322, "lon": -0.1240 },
{ "lat": 51.5055, "lon": -0.0754 }
],
"travel": "pedestrian"
}'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.
{
"profile": "despondent",
"area_type": "circle",
"lat": 51.477,
"lon": -0.001,
"radius_m": 5000,
"age_years": 32,
"datetime": "2026-04-12T14:30:00Z"
}{
"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 }
}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.
“Plan a 30-minute walk from my hotel near Kings Cross that doesn't cross any motorways and ends somewhere interesting.”
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.
Pick the transport that fits.
The same data is reachable two ways. Build an agent? Use MCP. Building a web app or backend? Use REST. Most teams use both.
MCP server
Streamable HTTP. Your model picks tools at runtime, no per-tool integration code in your application.
- Claude Desktop, Cursor, Windsurf, Continue
- OpenAI Agents SDK, Vercel AI SDK, LangChain
- Hosted at mcp.footstep.ai
mcp.footstep.aiSet up MCPREST API
Predictable HTTP. Use it from Python, Node, Go, Ruby, Rust, or curl. Same data, different transport.
- Standard POST and GET semantics
- JSON in, JSON out, opt-in GeoJSON
- Hosted at api.footstep.ai
api.footstep.aiSee the REST guideReference 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Units in the field name
distance_meters, duration_seconds, grade_percent. Your model never has to guess.{
"distance_meters": 5765,
"duration_seconds": 812,
"terrain": {
"total_ascent_meters": 12.4,
"avg_grade_percent": 1.2,
"difficulty": "flat"
}
}Every major runtime
Signup to first call
in under a minute.
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.
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.
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.
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.
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.
RFC 7946. Pass format: "geojson" and drop responses straight into deck.gl, Leaflet, Mapbox GL, or QGIS.
Uber's hierarchical hex index. Used by predict for probability surfaces. Renders in kepler.gl or deck.gl's H3HexagonLayer out of the box.
Google's compact polyline encoding. Default for routing geometry, swappable via format. Decoded easily with any open-source decoder.
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.
distance_meters, duration_seconds, grade_percent. Field names carry their unit, so reasoning over outputs is unambiguous in code review and in LLM context.
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 →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.