Free time and charges for one line
Demurrage, detention, combined D&D and storage free time of one container line at one port, with the daily charge tiers after free time. source is exact when the line published a tariff for this port or country, none when it did not.
Query parameters
Line SCAC, like MAEU. List: /carriers.
Port UN/LOCODE, like NLRTM. Find it with /ports.
Container type: 20GP, 40GP, 40HC, 20RF, 40RF, 40RH, 20OT, 40OT, 20FR, 40FR, 20TK, 45HC. Default 40GP.
import (default) or export.
Response schema
40 fields
Derived from the example response, nested as the JSON is.
data
The payload. Everything an endpoint returns sits under this key.
carrier
Carrier name, falling back to the SCAC when we hold no name.
Human-readable name.
port
Port UN/LOCODE.
Event or status code.
Human-readable name.
Latitude.
Longitude.
Container ISO size-type, for example 40HC.
import or export.
charges
One block per charge: demurrage, detention, combined_dd and free_time_storage.
demurrage
exact when the line published a tariff for this port or country; none when it did not; estimate on a market average.
Days free of charge before the first tier starts.
Daily charge after free time: from and to are day numbers, rate is per container per day. to null means every day after.
tiers[]
ISO currency code.
port when the tariff names this port, country when it applies country-wide.
detention
exact when the line published a tariff for this port or country; none when it did not; estimate on a market average.
Days free of charge before the first tier starts.
Daily charge after free time: from and to are day numbers, rate is per container per day. to null means every day after.
tiers[]
ISO currency code.
port when the tariff names this port, country when it applies country-wide.
combined_dd
exact when the line published a tariff for this port or country; none when it did not; estimate on a market average.
free_time_storage
exact when the line published a tariff for this port or country; none when it did not; estimate on a market average.
exact when the line published a tariff for this port or country; none when it did not; estimate on a market average.
Date the tariff data was read, YYYY-MM-DD.
Errors
A failure carries { "error": { "code", "message" } } with the HTTP status. Branch on the code, and log the message.
The key is unknown or revoked.
carrier is not a 4-letter SCAC.
port is not a UN/LOCODE.
More than 60 requests in one minute from one key.
Published tariffs
Figures come from tariffs the lines publish, matched on port, then country (matched_on). A contract or a local agent can give other terms. Check the line's tariff before you dispute an invoice.
Tiers
tiers[].from and .to are days counted from discharge (import) or gate out (export). rate is per container per day in currency. to null means every day after from.
curl 'https://api.navo24.com/v1/dd/lookup?carrier=MAEU&port=NLRTM&type=40HC&dir=import' \
-H "Authorization: Bearer tmcp_YOUR_API_KEY"const res = await fetch("https://api.navo24.com/v1/dd/lookup?carrier=MAEU&port=NLRTM&type=40HC&dir=import", {
headers: {
"Authorization": "Bearer tmcp_YOUR_API_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://api.navo24.com/v1/dd/lookup?carrier=MAEU&port=NLRTM&type=40HC&dir=import",
headers={"Authorization": "Bearer tmcp_YOUR_API_KEY"},
)
data = res.json(){
"data": {
"carrier": {
"scac": "MAEU",
"name": "Maersk",
"slug": "maersk",
"logo": "/carriers/logos/maersk.png"
},
"port": {
"code": "NLRTM",
"name": "Rotterdam",
"cc": "NL",
"lat": 51.9225,
"lng": 4.47917,
"tz": "Europe/Amsterdam"
},
"type": "40HC",
"direction": "import",
"charges": {
"demurrage": {
"source": "exact",
"free_days": 4,
"tiers": [
{
"from": 5,
"to": 8,
"rate": 110.0
},
{
"from": 9,
"to": 13,
"rate": 180.0
},
{
"from": 14,
"to": null,
"rate": 230.0
}
],
"currency": "EUR",
"matched_on": "country"
},
"detention": {
"source": "exact",
"free_days": 4,
"tiers": [
{
"from": 5,
"to": 8,
"rate": 100.0
},
{
"from": 9,
"to": 13,
"rate": 170.0
},
{
"from": 14,
"to": null,
"rate": 220.0
}
],
"currency": "EUR",
"matched_on": "country"
},
"combined_dd": {
"source": "none"
},
"free_time_storage": {
"source": "none"
}
},
"source": "TrackingMCP published tariff data",
"as_of": "2026-11-01"
}
}