Skip to content
Navo24 Navo24
GETAPI key

Road trip and ETA

GETroad.navo24.com/v1/road/route

Road route on the Navo road graph (Distance & Time), driving hours and an ETA with EU driver rules (45 min break every 4.5 h, 11 h rest after 9 h). Send the truck position from a shared Google Maps, Apple Maps or OpenStreetMap link, or as lat,lng, and now{} says what is driven, what is left and the new ETA. coords trimmed in the example.

Query parameters

fromstringrequired

City, address, UN/LOCODE or lat,lng.

tostringrequired

Same formats as from.

qstring

Instead of from/to: "Warsaw to Berlin".

departstring

Departure, ISO 8601. Default: now.

atstring

Truck position: a map share link or lat,lng.

Response schema

35 fields

Derived from the example response, nested as the JSON is.

dataobject

The payload. Everything an endpoint returns sits under this key.

fromobject
namestring

Human-readable name.

ccstring
countrystring

Country name.

latnumber

Latitude.

lngnumber

Longitude.

locodestring

UN/LOCODE of the place.

kindstring

carrier_event when a carrier filed it, trackingmcp_inference when we derived the step from surrounding events.

tzstring
qstring
toobject
namestring

Human-readable name.

ccstring
countrystring

Country name.

latnumber

Latitude.

lngnumber

Longitude.

locodestring

UN/LOCODE of the place.

kindstring

carrier_event when a carrier filed it, trackingmcp_inference when we derived the step from surrounding events.

tzstring
qstring
kmnumber
driving_hoursnumber
departstring
etastring

Arrival time (ISO 8601) of the vessel (the ARRI event) at the port in destination_unlocode: planned until it arrives, actual after (see eta_is_estimated). It is not the discharge (DISC) and not the moment the cargo is ready for pickup. When a line files no arrival event, its discharge at that port stands in. Null when the carrier publishes none and we cannot predict one.

coordsnumber[][]
nowobject
latnumber

Latitude.

lngnumber

Longitude.

indexnumber
off_route_kmnumber
done_kmnumber
left_kmnumber
left_hoursnumber
etastring

Arrival time (ISO 8601). Null when the carrier publishes none and we cannot predict one.

Errors

A failure carries { "ok": false, "error": { "code", "message", "severity" } }. Branch on the code, and log the message.

missing_key401

No key in Authorization or x-api-key.

invalid_key401

The key is unknown or revoked.

invalid_route400

Neither from/to nor a q with "to".

place_not_found404

A place could not be found.

no_route404

No road route between the places.

rate_limited429

More than 40 requests in one minute from one client.

upstream_error502

A source did not answer. Retry in a minute.

curl 'https://road.navo24.com/v1/road/route?from=Warsaw&to=Berlin&q=Warsaw%20to%20Berlin&depart=2026-10-30T06%3A00%3A00Z&at=52.3%2C19.0' \
  -H "Authorization: Bearer tmcp_YOUR_API_KEY"
Response
{
  "data": {
    "from": {
      "name": "Warsaw",
      "cc": "PL",
      "country": "Poland",
      "lat": 52.22977,
      "lng": 21.01178,
      "locode": "PLWAW",
      "kind": "city",
      "tz": "Europe/Warsaw",
      "q": "52.22977,21.01178"
    },
    "to": {
      "name": "Berlin",
      "cc": "DE",
      "country": "Germany",
      "lat": 52.52437,
      "lng": 13.41053,
      "locode": "DEBER",
      "kind": "city",
      "tz": "Europe/Berlin",
      "q": "52.52437,13.41053"
    },
    "km": 573.9,
    "driving_hours": 7.3,
    "depart": "2026-10-29T21:24:00+00:00",
    "eta": "2026-10-30T05:27:00+00:00",
    "coords": [
      [
        21.01195,
        52.22957
      ],
      [
        21.0122,
        52.22991
      ]
    ],
    "now": {
      "lat": 52.3,
      "lng": 19.0,
      "index": 298,
      "off_route_km": 27.3,
      "done_km": 190.0,
      "left_km": 383.9,
      "left_hours": 4.9,
      "eta": "2026-10-30T03:01:58+00:00"
    }
  }
}