Routing API Playground
Pan the map to search places in view, then pick a routing tool. The route updates as you change origin, stops, budget, or travel mode. Walk and bike isochrone, path, and optimized path on the OSM network.
Pan the map, places/search fills the dropdowns with POIs, and then pick a tool. The route request follows the form. You choose tags, a bbox, a budget, a travel mode, and which endpoint to call.
Places in view
Routing tool
Basemap
Results
Request and response
Request body
Same arguments as the HTTP POST.
{
"name": "routes_isochrone",
"arguments": {
"travelMode": "WALK",
"duration_s": 600
}
}Raw response
No routing response yet. Pick a place and a tool.
How it works
This is not a full-scale routing engine like Valhalla. Those engines keep a second, giant copy of the road network. This API reads walk and bike streets from the same database as the OSM Features API, so it is much cheaper to run and manage.
A route starts by snapping your point onto the nearest street, then running Dijkstra: try nearby streets, keep the cheapest so far, and stop when you reach the destination. Isochrone is the same idea, but it stops when you run out of time or distance. Path does that for each pair of stops in order. Optimized path first picks a good visit order, then finds each stretch.
The server still has to load streets for every request. To stay fast, this page only asks for the new last stretch when you add a stop, then glues it onto the route you already have. Change the order, delete a stop, or switch walk and bike, and the whole path is calculated again.
Inspect POIs in the Places API playground. Client-side Dijkstra over a downloaded footway graph lives in the Walking Route Planner. Fields and status codes live in the Routing API docs.
Live request matching the body preview above:
curl -X POST 'https://api.maplark.com/v1/routes/isochrone' \
-H 'Authorization: Bearer $MAPLARK_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"travelMode":"WALK","duration_s":600}'{
"travelMode": "WALK",
"duration_s": 600
}