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 or zoom to search places/search in the viewport bbox. For isochrone, click the map to set origin. For path tools, click a candidate to fill the next empty slot. Routing uses the coordinates you picked, not map center. Place search is not nearby.
Places in view
Routing tool
Basemap
Results
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
Pan the map, search fills the dropdowns, pick a tool. The route request follows the form. You choose tags, a bbox, a budget, a travel mode, and which endpoint to call. Code computes every metre.
Viewport bbox is "here" for places/search. Routing uses the coordinates you picked. Photon search on this page only moves the map.
Inspect POIs in the Places API playground. Client-side Dijkstra over a downloaded footway graph lives in the Walking Route Planner.
POST /v1/places/search
| Field | Role |
|---|---|
bbox | Viewport as min_lon,min_lat,max_lon,max_lat. Zoomed-out views 400 on max_bbox_area_tagged. |
orTags | Walkable POIs in this playground: cafe, restaurant, bar, pub, fast_food. Chips swap the set. |
limit | Capped at 50 here so the dropdown stays usable. |
POST /v1/routes/isochrone
| Field | Role |
|---|---|
origin | { lon, lat } from a map click or picked place, not map center. |
max_distance_m or duration_s | Exactly one. Duration converts with Walk 1.4 m/s or Bicycle 4.2 m/s. |
travelMode | WALK (undirected) or BICYCLE (honors OSM oneway). Defaults to Walk. |
POST /v1/routes/path
| Field | Role |
|---|---|
stops | 2 to 250 points in visit order. Given-order Dijkstra per consecutive pair. No TSP. |
travelMode | Walk or Bicycle. DRIVE is not implemented. |
POST /v1/routes/optimized_path
| Field | Role |
|---|---|
start | Required. Do not repeat this point in stops. |
stops | Unordered visit points, 1 to 249. Nearest-neighbour plus 2-opt, start frozen. |
loop | Default true: score a cycle and Dijkstra includes the return to start. |
Snap is 75 m onto the nearest edge, then Dijkstra starts at that edge's nearer endpoint. Soft failures return HTTP 200 with status such as area_too_large_for_tier, tile_too_dense, start_unreachable, end_unreachable, or no_path_within_area. This page does not clone those rules.
Live request matching the body preview above:
{
"travelMode": "WALK",
"duration_s": 600
}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}'