Accept a natural language query and return structured geospatial results. The endpoint classifies intent (route, geocode, isochrone, etc.), extracts locations and parameters, calls the appropriate backend, and returns the full result with a natural language summary. Use context.location to help resolve relative references like ‘nearest’ or ‘nearby’.
| Your query sounds like… | Intent | Backend called |
|---|---|---|
| ”Directions from A to B” | route | /v1/routing/route |
| ”Best order to visit these stops” | optimize | /v1/routing/optimize |
| ”How far can I walk in 30 minutes” | isochrone | /v1/routing/isochrone |
| ”What’s the elevation at…” | elevation | /v1/routing/elevation |
| ”Distance between A, B, and C” | matrix | /v1/routing/matrix |
| ”Where is…” / “Find…” | geocode | /v1/geocoding/search |
| ”What’s at these coordinates” | reverse_geocode | /v1/geocoding/reverse |
context.location when your query uses relative terms like “nearest”, “nearby”, or “from here”. Without it, the endpoint can’t resolve those references.
Pass context.country to disambiguate place names. “Springfield” with country: "GBR" resolves differently than with country: "USA".
| Field | What it contains |
|---|---|
intent | What the query was classified as (route, geocode, isochrone, etc.) |
parameters | The parameters inferred from the query and passed to the backend |
result | The full backend response (same schema as calling the endpoint directly) |
summary | A natural language summary of the result |
result field contains the exact same response you’d get calling the backend endpoint directly. If the intent is route, result contains a RouteResponse. If geocode, it contains a GeocodingSearchResponse. No new schemas to learn.
Your Footstep API key
Structured result from the resolved query
Classified intent of the query
route, optimize, isochrone, elevation, matrix, geocode, reverse_geocode Parameters inferred from the query and passed to the backend endpoint
Full response from the backend endpoint (RouteResponse, GeocodingSearchResponse, IsochroneResponse, etc.)
Natural language summary of the result