Skip to content
Navo24Navo24
GETAPI key

Compare every line at a port

GETapi.navo24.com/v1/dd/compare

Free days and tiers of every line that published a tariff for the port and container type, longest free time first, plus the average of the market.

Query parameters

portstringrequired

Port UN/LOCODE, like NLRTM. Find it with /ports.

typestring

Container type: 20GP, 40GP, 40HC, 20RF, 40RF, 40RH, 20OT, 40OT, 20FR, 40FR, 20TK, 45HC. Default 40GP.

dirstring

import (default) or export.

Response schema

50 fields

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

dataobject

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

portobject

Port UN/LOCODE.

codestring

Event or status code.

namestring

Human-readable name.

ccstring
latnumber

Latitude.

lngnumber

Longitude.

tzstring
typestring

Container ISO size-type, for example 40HC.

directionstring

import or export.

rowsobject[]
rows[]object
carrierobject

Carrier name, falling back to the SCAC when we hold no name.

scacstring
namestring

Human-readable name.

slugstring
logostring
demurrageany | null
detentionany | null
combined_ddobject
sourcestring

exact when the line published a tariff for this port or country; none when it did not; estimate on a market average.

free_daysnumber

Days free of charge before the first tier starts.

tiersobject[]

Daily charge after free time: from and to are day numbers, rate is per container per day. to null means every day after.

tiers[]object
fromnumber
tonumber
ratenumber
currencystring

ISO currency code.

matched_onstring

port when the tariff names this port, country when it applies country-wide.

averageobject
demurrageobject
sourcestring

exact when the line published a tariff for this port or country; none when it did not; estimate on a market average.

free_daysnumber

Days free of charge before the first tier starts.

avgnumber
minnumber
maxnumber
carriersstring[]

Carriers, ranked.

carrier_countnumber
grainstring
notestring

One sentence of provenance in plain language.

detentionobject
sourcestring

exact when the line published a tariff for this port or country; none when it did not; estimate on a market average.

free_daysnumber

Days free of charge before the first tier starts.

avgnumber
minnumber
maxnumber
carriersstring[]

Carriers, ranked.

carrier_countnumber
grainstring
notestring

One sentence of provenance in plain language.

askednumber
as_ofstring

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.

invalid_key401

The key is unknown or revoked.

invalid_port400

port is not a UN/LOCODE.

rate_limited429

More than 8 comparisons in one minute.

curl 'https://api.navo24.com/v1/dd/compare?port=NLRTM&type=40HC&dir=import' \
  -H "Authorization: Bearer tmcp_YOUR_API_KEY"
Response
{
  "data": {
    "port": {
      "code": "NLRTM",
      "name": "Rotterdam",
      "cc": "NL",
      "lat": 51.9225,
      "lng": 4.47917,
      "tz": "Europe/Amsterdam"
    },
    "type": "40HC",
    "direction": "import",
    "rows": [
      {
        "carrier": {
          "scac": "COSU",
          "name": "COSCO",
          "slug": "cosco",
          "logo": "/carriers/logos/cosco.png"
        },
        "demurrage": null,
        "detention": null,
        "combined_dd": {
          "source": "exact",
          "free_days": 8,
          "tiers": [
            {
              "from": 1,
              "to": 8,
              "rate": 0.0
            },
            {
              "from": 9,
              "to": 13,
              "rate": 55.0
            },
            {
              "from": 14,
              "to": null,
              "rate": 86.0
            }
          ],
          "currency": "EUR",
          "matched_on": "country"
        }
      }
    ],
    "average": {
      "demurrage": {
        "source": "estimate",
        "free_days": 3.75,
        "avg": 3.88,
        "min": 3,
        "max": 5,
        "carriers": [
          "HLXU",
          "MAEU",
          "ONEY",
          "YMLU"
        ],
        "carrier_count": 4,
        "grain": "country",
        "note": "Indicative average of other lines, not this line's published tariff."
      },
      "detention": {
        "source": "estimate",
        "free_days": 4,
        "avg": 4,
        "min": 3,
        "max": 5,
        "carriers": [
          "HLXU",
          "MAEU",
          "ONEY",
          "YMLU"
        ],
        "carrier_count": 4,
        "grain": "country",
        "note": "Indicative average of other lines, not this line's published tariff."
      }
    },
    "asked": 26,
    "as_of": "2026-11-01"
  }
}