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 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

Origin
Budget
travelMode

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

FieldRole
bboxViewport as min_lon,min_lat,max_lon,max_lat. Zoomed-out views 400 on max_bbox_area_tagged.
orTagsWalkable POIs in this playground: cafe, restaurant, bar, pub, fast_food. Chips swap the set.
limitCapped at 50 here so the dropdown stays usable.

POST /v1/routes/isochrone

FieldRole
origin{ lon, lat } from a map click or picked place, not map center.
max_distance_m or duration_sExactly one. Duration converts with Walk 1.4 m/s or Bicycle 4.2 m/s.
travelModeWALK (undirected) or BICYCLE (honors OSM oneway). Defaults to Walk.

POST /v1/routes/path

FieldRole
stops2 to 250 points in visit order. Given-order Dijkstra per consecutive pair. No TSP.
travelModeWalk or Bicycle. DRIVE is not implemented.

POST /v1/routes/optimized_path

FieldRole
startRequired. Do not repeat this point in stops.
stopsUnordered visit points, 1 to 249. Nearest-neighbour plus 2-opt, start frozen.
loopDefault 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:

JSON curl
{
  "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.