Skip to content
Navo24 Navo24
GETAPI keyCounts as a call

Port congestion

GETapi.schedulesmcp.com/public/port-congestion

Congestion and dwell for a port, or the congestion leaderboard.

Counted: 1 call for each answer that carries data. Free: an answer with nothing in it (no reading for the port, or an empty leaderboard), and any refusal or error. See how calls are counted.

Query parameters

portstring

Port UN/LOCODE. Omit for the leaderboard.

levelstring

Leaderboard only: mild, moderate or severe. Ignored when port is set, and an unrecognised value returns the unfiltered leaderboard rather than an error.

limitinteger

Leaderboard only: rows to return. Default 100, maximum 500.

Response schema

6 fields

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

okboolean

Whether the request succeeded.

dataobject

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

portstring

Port UN/LOCODE.

wait_hoursnumber

Average wait at the port, in hours.

at_anchornumber

Vessels currently at anchor.

levelstring

On a port, the congestion level. On a sailing card confidence block, high when at least two carriers agree within a day, then medium, low, or single_source when only one published it.

Errors

Every refusal is { "ok": false, "error": { "code", "message" } }. Branch on the code, and log the message. No refusal or error is counted as a call.

UNAUTHORIZED401

The key is missing, unknown, revoked or past its own expiry date. Not counted.

FORBIDDEN403

Your account has no Schedules API access, or the key is not enabled for it. Not counted.

ACCESS_EXPIRED403

The access of your account, or of the key, has ended. Not counted.

QUOTA_EXCEEDED429

The monthly call limit of your account or of the key, or the key's daily limit, is spent. Retry-After gives the seconds until it resets. A refused call is not counted.

RATE_LIMITED429

Too many requests in a short window. Wait Retry-After seconds. A refused call is not counted.

DB_ERROR500

Our database did not answer. Free; retry. A failed read is never answered as congested: false.

SERVICE_UNAVAILABLE503

Access could not be checked just now, so the request was not run. Retry after Retry-After. Not counted.

curl 'https://api.schedulesmcp.com/public/port-congestion?port=USLAX&level=severe' \
  -H "Authorization: Bearer smcp_YOUR_API_KEY"
Response
{
  "ok": true,
  "data": {
    "port": "USLAX",
    "wait_hours": 38,
    "at_anchor": 11,
    "level": "elevated"
  }
}