Skip to main content
Request steps=true and every entry in legs[].steps[] is one maneuver plus a stretch of straight-line driving. Use them to build navigation lists, voice prompts, or per-segment highlighting.

Getting the steps

step-example.json

Step fields

Maneuver

maneuver.type values: Deprecated values: ramp (replaced by on ramp/off ramp) and use lane (replaced by lane data on intersection entries). maneuver.modifier values: The modifier’s meaning depends on maneuver.type: for turn it describes the direction change; for depart/arrive it describes the position of the departure/arrival point relative to the direction of travel. Only depart and arrive may omit the modifier (when the point lies straight ahead).

Intersections

intersections lists every cross-way the path passes until the next turn. The first entry corresponds to the maneuver location. Bearings are given relative to the intersection — rotate a bearing by 180° to get the direction of driving.

Lanes

Generating navigation instructions

New maneuver.type values may be added over time — treat unknown types as turn, the modifier is always valid. This is OSRM’s backward-compatibility contract.