RouteResponse
Advisory notes about the computed route. Currently emitted when
avoid_flood_zones is set but an endpoint lies inside a
flood-prone zone — that zone cannot be excluded (the route must
enter it), so it is skipped and named here instead.
["a route endpoint is inside the flood-prone zone \"Kaneshie First Light / Graphic Road\" — that zone cannot be avoided"]Total route distance in metres.
4250Raw Valhalla duration in seconds (no traffic adjustment).
780Traffic-adjusted ETA in seconds using Ghana time-of-day multipliers.
936Human-readable label for the traffic condition applied.
morning rushTrue if the route passes through any toll roads.
falseTrue if the route includes a ferry crossing (e.g. Volta Lake).
falseTrue if the route uses any motorway/highway segments.
trueRoute polyline as [lng, lat] pairs.
Possible values: >= 2, <= 2
[[-0.1867,5.604],[-0.185,5.605]]steps object[]
Standard turn instruction.
Turn right onto Ring Road Central.Early warning voice prompt (~500 m before the maneuver), suitable for TTS.
In 500 metres, turn right onto Ring Road Central.Pre-built voice prompt suitable for TTS, delivered before the maneuver.
In 300 metres, turn right onto Ring Road Central.Confirmation voice prompt after the maneuver, suitable for TTS.
Continue for 2 kilometres.Landmark-enriched instruction (present when narration=landmark or both).
Turn right at Accra Mall onto Ring Road Central.How well-documented the referenced landmark is — not how sure the narration match itself is. Only present alongside instruction_landmark. Don't present instruction_landmark as certain when this is low.
Possible values: >= 0 and <= 1
0.78Runner-up landmark names close enough to the chosen one to plausibly be confused with it. Empty/absent when there was no real ambiguity. Report a wrong match with POST /v2/landmarks/{slug}/report.
["TotalEnergies Station"]Street or road name for this step.
Ring Road CentralName of the nearest landmark to the maneuver point (within 150m).
Accra MallDistance of this step in metres.
320.5Estimated duration of this step in seconds.
45.2Effective traffic multiplier applied to this step's duration (learned from real trips where published, else the static Accra time-of-day table) for the active time bucket.
1.7Congestion label for UI route-line tinting.
Possible values: [free_flow, light, moderate, heavy, severe]
heavyHex color the client should tint this step's polyline.
#ef6c00Polyline of this step as [lng, lat] pairs.
Possible values: >= 2, <= 2
[[-0.1867,5.604],[-0.185,5.605]]Dominant road surface of this step ("paved" or "unpaved"); omitted when unknown.
Possible values: [paved, unpaved]
pavedHex color the client should tint this step's polyline based on surface.
#8d6e63Heading (degrees from true north) arriving into the maneuver.
35Heading (degrees from true north) leaving the maneuver.
125Signed heading change at the maneuver, in degrees within (-180, 180]; positive = right, negative = left.
-90Coarse sharpness of the maneuver.
Possible values: [straight, slight, turn, sharp, uturn]
turnlanes object[]
Lane-level guidance for this maneuver ("keep left of 3 lanes"). Only present when the road graph carries turn:lanes data at the junction; most Ghana roads don't yet, so it is usually omitted.
Movements this lane permits ("left", "straight", "right", "slight right", ...).
["left","straight"]True for the recommended lane to follow for this maneuver.
trueTrue for lanes usable at the start of the maneuver; may require a later lane change.
falselandmarks_passed object[]
Significant landmarks along the route (present when narration=landmark or both).
accra-mallAccra MallPossible values: [left, right]
rightStep index where this landmark is passed.
2centroid object
Landmark centroid for the POI detail card.
Wikimedia Commons photo thumbnail when resolved.
Contact phone number from OSM, when tagged.
Official website from OSM, when tagged.
Opening-hours string from OSM, when tagged.
alternatives object[]
Up to 2 alternative routes (no step details).
48009001080Possible values: >= 2, <= 2
True when this alternative is the recommended (safer) pick.
Why it is recommended, e.g. "avoids a flood-prone area".
Heavy-rain note for this alternative.
ETA seconds added for heavy rain on this alternative.
Number of flood-zone crossings on this alternative.
Number of active, crowdsourced hazard reports near this alternative.
True when the alternative includes unpaved segments.
Total unpaved distance in metres (0 when all paved).
True when the primary route is the recommended (safer) pick — a non-fastest option wins only when it avoids flood-prone areas or heavy rain. Absent when the fastest route is also the cleanest.
Plain-language reason, e.g. "avoids 2 flood-prone areas".
Heavy-rain advisory for the route.
ETA seconds added for heavy rain on the route.
Number of flood-zone crossings on the route.
Number of active, crowdsourced hazard reports (accident,
flooding, road_blocked, police) near the route — always
populated regardless of avoid_incidents, which only controls
whether the route is adjusted, not whether nearby reports are
surfaced. Details are in warnings.
True when avoid_flood_zones was requested but no route exists
that avoids the zones, so the route was computed WITHOUT them and
may pass through flooding. Common on cross-town Accra trips, where
the Odaw basin zones sit across most arteries. The route is still
returned (a warning beats no directions) — the matching text is in
warnings, but prefer this field over parsing warning strings.
Exception: if an official GMet flood warning is in effect over the
route, this degraded route is NOT returned. The request is refused
with 409 FLOOD_ALERT_ACTIVE instead. A route that successfully
avoids the zones is unaffected and is still served during an alert.
True when the route includes unpaved segments. Absent when the route is fully paved OR when surface enrichment did not run (best-effort) — treat absent as "unknown".
Total unpaved distance in metres. Absent when 0.
{
"warnings": [
"a route endpoint is inside the flood-prone zone \"Kaneshie First Light / Graphic Road\" — that zone cannot be avoided"
],
"distance_m": 4250,
"duration_s": 780,
"eta_s": 936,
"traffic_note": "morning rush",
"has_toll": false,
"has_ferry": false,
"has_highway": true,
"coordinates": [
[
-0.1867,
5.604
],
[
-0.185,
5.605
]
],
"steps": [
{
"instruction": "Turn right onto Ring Road Central.",
"verbal_alert": "In 500 metres, turn right onto Ring Road Central.",
"verbal_instruction": "In 300 metres, turn right onto Ring Road Central.",
"verbal_post": "Continue for 2 kilometres.",
"instruction_landmark": "Turn right at Accra Mall onto Ring Road Central.",
"landmark_confidence": 0.78,
"alternate_landmarks": [
"TotalEnergies Station"
],
"name": "Ring Road Central",
"near_landmark": "Accra Mall",
"distance_m": 320.5,
"duration_s": 45.2,
"traffic_factor": 1.7,
"traffic_severity": "heavy",
"traffic_color": "#ef6c00",
"coordinates": [
[
-0.1867,
5.604
],
[
-0.185,
5.605
]
],
"surface": "paved",
"surface_color": "#8d6e63",
"bearing_before": 35,
"bearing_after": 125,
"turn_angle": -90,
"turn_class": "turn",
"lanes": [
{
"indications": [
"straight"
],
"active": false,
"valid": false
},
{
"indications": [
"slight right"
],
"active": true,
"valid": false
}
]
}
],
"landmarks_passed": [
{
"slug": "accra-mall",
"name": "Accra Mall",
"side": "right",
"at_step": 2,
"centroid": {
"lat": 0,
"lng": 0
},
"photo_url": "string",
"phone": "string",
"website": "string",
"opening_hours": "string"
}
],
"alternatives": [
{
"distance_m": 4800,
"duration_s": 900,
"eta_s": 1080,
"coordinates": [
0
],
"recommended": true,
"recommend_reason": "string",
"rain_note": "string",
"rain_eta_penalty_s": 0,
"flood_crossings": 0,
"incident_count": 0,
"has_unpaved": true,
"unpaved_distance_m": 0
}
],
"recommended": true,
"recommend_reason": "string",
"rain_note": "string",
"rain_eta_penalty_s": 0,
"flood_crossings": 0,
"incident_count": 0,
"flood_avoidance_failed": true,
"has_unpaved": true,
"unpaved_distance_m": 0
}