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.

Read the API docs

RoutingIsochronePathOptimized path

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

Origin
Budget
travelMode

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 JSON
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}'

Call the same endpoints with your key

Full schemas and try-it live are under Routing API in the OpenAPI docs.