
Footstep Routing API
The Routing API provides terrain-intelligent routing, elevation queries, and spatial analysis. Every routing response includes terrain analytics by default: ascent, descent, grade profiles, and difficulty classification, without any extra configuration.Design philosophy
Every endpoint works with just coordinates. Send locations, get a route with full terrain intelligence:travel to change how you travel, travel_options for fine-tuning preferences (hill avoidance, walking speed, vehicle dimensions), elevation_interval to control elevation sampling density, and language for localised navigation instructions.
Units
Numeric fields are always in SI base units regardless of theunits request parameter — distances in meters, durations in seconds, elevations in meters, grades as a percentage, speeds in km/h. The units request parameter only affects the natural-language narrative summary; the response echoes that value back in narrative_units for reference.
Endpoints
All endpoints arePOST requests under /v1/routing/:
Authentication
All endpoints require an API key passed via thex-api-key header. See the authentication guide for details on key format, states, and security practices.
Travel types
All routing endpoints accept atravel parameter:
Each travel type has its own
travel_options for fine-tuning. For example, pedestrian supports use_hills (0 = avoid hills, 1 = prefer hills), walking_speed (0.5-25 km/h), and max_hiking_difficulty (0-6, SAC hiking scale). See the route endpoint for the full schema.
Multi-format support
Every endpoint accepts aformat parameter:
GeoJSON responses work directly with Leaflet, Mapbox GL, deck.gl, and QGIS with no transformation needed.
Terrain analytics
Routing responses include aterrain object at both the route and per-leg level:
elevation_profile is an array of distance/elevation points sampled along the route. Control the sampling interval with the elevation_interval parameter (10-200 meters, default 30).
The difficulty classification is based on average and maximum grade:
Route flags
Every route and leg includes aflags object indicating infrastructure used:
Route narratives
Passnarrative: true to get an AI-generated natural language summary of the route. Useful for accessibility descriptions, trip previews, and chatbot integrations.
narrative field on the route object: