Query
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’.
Send a natural language query and get back structured geospatial results. The endpoint figures out what you’re asking for (directions, a location, reachability, etc.), resolves any text locations to coordinates, calls the appropriate backend, and returns the full result.Documentation Index
Fetch the complete documentation index at: https://docs.footstep.ai/llms.txt
Use this file to discover all available pages before exploring further.
How intent is classified
The endpoint maps queries to the backend that best fits:| 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 |
Using context
Passcontext.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".
Response structure
The response always includes:| 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.
Error handling
If the query is ambiguous or can’t be resolved:Authorizations
Your Footstep API key
Body
Response
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