Skip to content
Navo24Navo24
GETAPI keyFree

Usage and limits

GETapi.navo24.com/v1/tracking/usage

The counters and limits of your account for the current UTC month, per product: calls made, unique references used, what is left, and overage. Send key_ids or key_status to add the figures of selected API keys under data.key_usage.

Not counted: reading your own usage is an account path and spends no call quota. See what counts as a successful request.

Query parameters

key_idsstring

Comma-separated ids of your own API keys. Adds data.key_usage with the figures of those keys.

key_statusstring

Comma-separated key categories: active, expired, revoked. Combines with key_ids. A selection that matches no key answers zeros.

Response schema

145 fields

Generated from the OpenAPI spec. Nested exactly as the JSON is. Open a branch to read its fields; hover a name for the full dot-path.

okboolean

Whether the request succeeded.

dataobject

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

periodstring

UTC calendar month these counters cover.

next_expirystring | null

Earliest valid_until across enabled products; access ends after this date.

invalid_references_this_monthinteger

Requests refused because YOUR reference was malformed or its carrier is unsupported.

productsarray
products[]object
productstring
channelstring
plan"free" | "paid"
billing_mode"monthly" | "per_shipment"
valid_untilstring | null
start_datestring | null
refused_this_monthinteger

Requests we turned away this month (over the unique allowance, expired access, or a per-key rate cap).

last_refused_atstring | null
callsobject

API-call traffic against your plan's call allowance.

usedinteger
limitinteger | null

Calls allowed this period (your plan allowance, lowered by any per-key rate cap).

remaininginteger | null
test_usedinteger

Of used, the calls made on a test key.

allowanceobject

What you can consume, in the unit you are billed: one unique reference per period.

basis"unique_reference"
limitinteger | null

Maximum unique references this period; null means no ceiling is set.

usedinteger

Unique references charged this period.

remaininginteger | null
periodstring

The month these figures cover, YYYY-MM.

overageobject

What happens when the allowance runs out.

availableboolean

Whether overage terms have been agreed for this account.

enabledboolean

Whether you switched overage on.

pctnumber

How far past the limit service continues, as a percentage of the limit.

unit_pricenumber | null

Price per unit of overage.

currencystring

Currency of unit_price, EUR by default.

ceilingnumber | null

The number that actually refuses: limit plus grace when armed, else the limit.

usednumber

Units consumed beyond the limit.

estimated_costnumber | null

Estimated overage charge so far.

at_limit"bills_overage" | "stops"

What happens at the limit.

forecastobject | null

Straight line projection of this month.

run_rate_per_daynumber

Average units consumed per elapsed day.

projectednumber

Where the month ends at the current rate.

days_leftnumber

Calendar days left in the month, including the rest of today.

days_to_capnumber | null

Days until the limit is reached at the current rate, null when it is not reached.

will_exhaustboolean

True when the projection passes the limit before the month ends.

key_usageobject

Present only when key_ids or key_status was sent.

periodstring
selectionobject
statuses("active" | "expired" | "revoked")[]
keysarray
keys[]object
idstring
namestring | null
key_prefixstring
status"active" | "expired" | "revoked"
summedstring
calls_basisstring
unique_basisstring
productsarray
products[]object
productstring

One of: container, aircargo, schedules, freightrates.

callsinteger
refusedinteger
unique_shipmentsinteger | null

Null for a calls-only product.

idstring

Existing record id. Only on status 400, 401, 403, 404, 429, 500 and 504.

archived_atstring | null

When tracking stopped. Only on status 400, 401, 403, 404, 429, 500 and 504.

archived_reasonstring | null

Null when your account archived it, otherwise the reason our archiver closed it. Only on status 400, 401, 403, 404, 429, 500 and 504.

resumeobject

Only on status 400, 401, 403, 404, 429, 500 and 504.

methodstring
pathstring
bodyobject
identifierstring

The reference to add again.

api_versionstring

The response contract this build answers, as a date (YYYY-MM-DD).

errorobject

Only on status 400, 401, 403, 404, 429, 500 and 504.

codestring

Machine readable error code.

messagestring

Human readable explanation.

severity"info" | "warning" | "error"

How serious the error is.

retryableboolean

True.

referencestring

The reference.

retry_after_secondsinteger

Seconds to wait.

fieldsstring[]

Offending fields.

user_messagestring

CONTAINER_QUOTA_EXCEEDED only.

credits_requiredinteger | null

Tokens this request needs.

credits_balanceinteger | null

Tokens the wallet holds.

top_up_urlstring

Where to top up.

packagesarray

Plans on offer.

packages[]object
planstring

Plan key.

creditsinteger

Tokens per month.

usdnumber

Monthly price in USD.

reasonstring

CARRIER_NOT_IDENTIFIED only.

waited_secondsinteger

CARRIER_NOT_IDENTIFIED, timed out only.

retry_withstring
member_limitinteger | null

The member cycle limit.

member_spentinteger | null

Tokens the member has used this cycle.

member_remaininginteger | null

Tokens left for the member.

retry_afterinteger

Seconds until the next refresh is allowed.

request_idstring
requestedstring | null
supported_versionsstring[]
oldest_supportedstring
lateststring
docsstring
progressobject
carrier_codestring
carrier_namestring | null
carrier_identifiedtrue
registered_atstring | null
last_checked_atstring | null
next_check_after_seconds60
unresolved_reasonstring
outcomestring

One of: SEALINE_HASNT_PROVIDE_INFO, NO_EVENTS, WRONG_NUMBER, REFERENCE_REQUIRED, LINE_NOT_SUPPORTED, PENDING, UNRESOLVED.

outcome_classstring
sealine_statusstring | null
previous_tripobject | null

The trip before yours for this box, when the line still reports it.

linestring | null

The line that answered, as its SCAC.

last_eventobject
codestring | null
descriptionstring | null
locationstring | null
unlocodestring | null
datetimestring | null
eventsarray
events[]object
codestring | null
descriptionstring | null
locationstring | null
unlocodestring | null
datetimestring | null
ended_atstring | null
lessor_notestring | null

A note for leasing-company accounts when no line holds the box yet.

identified_linestring | null
identified_partystring | null
identified_party_role"current_lessee" | null
required_reference_types("bill_of_lading" | "booking")[] | null
connector_statusstring | null

One of: in_progress, not_supported, connected, reference_required.

notification_interest_availableboolean
carrier_noticeobject | null

Latest reference-specific reply from the named carrier. Only on status 400, 401, 403, 404, 429, 500 and 504.

carrier_code"ZIMU" | "MAEU" | "CHVW"
referencestring
reference_type"container" | "bl" | "booking"
statusstring

One of: other_carrier, temporarily_unavailable, not_found, invalid_reference, SHIPMENT_CANCELLED, no_longer_available.

messagestring
checked_atstring
suggested_carrierstring | null
suggested_urlstring | null
carrier_hint_appliedboolean

Present when the line named was not used. Only on status 400, 401, 403, 404, 429, 500 and 504.

carrier_hint_codestring

Known line that cannot be asked. Only on status 400, 401, 403, 404, 429, 500 and 504.

upgradeobject | null

CONTAINER_QUOTA_EXCEEDED only. Only on status 400, 401, 403, 404, 429, 500 and 504.

planstring

Next plan.

monthly_eurnumber | null

Monthly price.

annual_eurnumber | null

Annual price.

warningstring

Why the line named was not used. Only on status 400, 401, 403, 404, 429, 500 and 504.

Errors

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

VALIDATION_ERROR400

key_status is not active, expired or revoked, or key_ids carries a value that is not a key id.

UNAUTHORIZED401

The key is missing, malformed or revoked.

NOT_FOUND404

A key id in key_ids is not a key of your account.

INTERNAL_ERROR500

We could not read the counters. Retry.

curl 'https://api.navo24.com/v1/tracking/usage' \
  -H "Authorization: Bearer tmcp_YOUR_API_KEY"
Response
{
  "api_version": "2026-08-04",
  "ok": true,
  "data": {
    "period": "2026-11",
    "products": [
      {
        "product": "container",
        "channel": "api",
        "plan": "paid",
        "billing_mode": "monthly",
        "period": "2026-11",
        "calls": { "used": 310, "test_used": 0, "limit": 5000, "remaining": 4690 },
        "allowance": { "basis": "unique_reference", "limit": 100, "used": 42, "remaining": 58 },
        "overage": {
          "available": true,
          "enabled": true,
          "pct": 20,
          "unit_price": 0.5,
          "currency": "EUR",
          "ceiling": 120,
          "used": 0,
          "estimated_cost": 0,
          "at_limit": "bills_overage"
        },
        "forecast": { "run_rate_per_day": 4.2, "projected": 126, "days_left": 20, "days_to_cap": 13, "will_exhaust": true },
        "valid_until": "2026-12-20",
        "start_date": "2026-09-01",
        "refused_this_month": 0,
        "last_refused_at": null
      }
    ],
    "invalid_references_this_month": 0,
    "next_expiry": "2026-12-20"
  }
}