List tracked containers
Every container on your account, most recently updated first.
Query parameters
Filter to one status, for example in_transit, discharged, customs_hold, delivered.
Page size. Default 50, capped at 500.
Pass the next_cursor from the previous page.
Comma-separated tags. A row must carry all of them.
Set true to list archived boxes instead of the active fleet. Default false.
Response fields
Derived from the example response.
Whether the request succeeded.
The payload. Everything an endpoint returns sits under this key.
The list of results.
Stable identifier for the record. On the tracking endpoints this is the container UUID, except on a portfolio summary row, where it is the container number.
The container number, bill of lading or booking this record tracks.
What the identifier is. The keyed surface uses container_id, bill_of_lading or booking; the public tracker returns booking_number for the third.
Carrier SCAC.
Carrier name.
Your own labels on this box. Filter the list endpoint with them.
Current normalised status of the shipment. Ocean lifecycle order: discharged, available, delivered, returned_empty. Two values end a shipment, delivered and returned_empty, and returned_empty outranks delivered.
Arrival time (ISO 8601). Null when the carrier publishes none and we cannot predict one.
True when the ETA is still a forecast, false when it is the actual arrival, null when there is no ETA at all. Never read a date alone as a promise.
Origin port UN/LOCODE, or null when the carrier named no origin we could resolve.
Destination port UN/LOCODE, or null when unresolved.
Destination port name, falling back to its UN/LOCODE.
Equipment size, for example 40HC. Null when the carrier did not state it.
True when the free-time clock on this box is a concern.
The last day before demurrage accrues, or null when no terms are on file.
When we last asked the carrier (ISO 8601).
When you started tracking this box (ISO 8601).
When tracking stopped, or null while the box is still active.
True on a sample reference. Sample boxes return typical data and have no live carrier feed.
The ports on the route, in order.
Days late at each of the five voyage stages. Positive is late, negative is early, null means we cannot tell.
Live AIS position of the carrying vessel. Null when we hold no IMO or no fix yet.
IMO number of the vessel.
Human-readable name.
Latitude.
Longitude.
Speed over ground, in knots.
Heading in degrees.
Navigational status as reported by AIS, for example "Under way using engine" or "Moored". We drop a moored or anchored claim that the position contradicts.
When we last wrote the position row.
When the hull was actually observed. This, not position_updated_at, is the age that matters.
How old the fix is, in hours.
live, recent, stale, outdated, or unknown when we hold no usable fix.
True when another page is waiting behind next_cursor.
Cursor for the next page, or null when there are no more.
Errors
A failure carries { "ok": false, "error": { "code", "message", "severity" } }. Branch on the code, and log the message.
The key is missing, malformed or revoked.
The query failed or timed out. Retry with a smaller limit.
curl 'https://api.trackingmcp.com/v1/containers' \
-H "Authorization: Bearer tmcp_YOUR_API_KEY"const res = await fetch("https://api.trackingmcp.com/v1/containers", {
headers: {
"Authorization": "Bearer tmcp_YOUR_API_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://api.trackingmcp.com/v1/containers",
headers={"Authorization": "Bearer tmcp_YOUR_API_KEY"},
)
data = res.json() {
"ok": true,
"data": {
"items": [
{
"id": "8f1c2d4e-6a3b-4f52-9c70-11ab22cd33ef",
"identifier": "MEDU1234562",
"identifier_type": "container_id",
"carrier_code": "MSCU",
"carrier_name": "MSC",
"tags": [],
"status": "in_transit",
"eta": "2026-07-03T06:00:00Z",
"eta_is_estimated": true,
"origin_unlocode": "CNNGB",
"destination_unlocode": "NLRTM",
"destination_name": "Rotterdam",
"container_size": "40HC",
"demurrage_at_risk": false,
"demurrage_last_free_day": null,
"last_polled_at": "2026-08-07T08:40:00Z",
"added_at": "2026-07-29T11:02:00Z",
"archived_at": null,
"is_demo": false,
"route_ports": ["CNNGB", "NLRTM"],
"delay_bars": [null, 0, null, 2, null],
"vessel_position": {
"imo": "9754105",
"name": "MSC TERESA",
"lat": 36.12,
"lng": 14.55,
"speed_knots": 17.4,
"heading_deg": 291,
"nav_status": "Under way using engine",
"position_updated_at": "2026-08-07T08:15:00Z",
"position_fix_at": "2026-08-07T08:12:00Z",
"position_age_hours": 0.6,
"position_freshness": "live"
}
}
],
"has_more": false,
"next_cursor": null
}
}