Portfolio summary
One roll-up of your whole book: how many are active, how many in exception, how many arrive this week, and the money at risk. The container list beside the counts is the filtered slice, so a filter narrows the list without changing the counts. One quirk worth knowing: the id on a summary row is the container number, not the UUID the other endpoints use.
Query parameters
Which slice the containers array carries: all (default), exceptions, arriving_soon or demurrage_risk. The four counts always describe the whole book.
Response fields
Derived from the example response.
Whether the request succeeded.
The payload. Everything an endpoint returns sits under this key.
Containers you are tracking, excluding archived ones.
Count of shipments in an exception state: customs hold, rolled, delayed or at transshipment.
Count with an ETA in the next seven days.
Demurrage already accrued across the book, in USD.
Tracked containers on the account.
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.
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.
Name of the carrying vessel, or null when the carrier named none.
IMO number of the carrying vessel, or null when unknown.
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.
We could not read your book. Retry.
curl 'https://api.trackingmcp.com/v1/containers/summary' \
-H "Authorization: Bearer tmcp_YOUR_API_KEY"const res = await fetch("https://api.trackingmcp.com/v1/containers/summary", {
headers: {
"Authorization": "Bearer tmcp_YOUR_API_KEY"
}
});
const data = await res.json();import requests
res = requests.get(
"https://api.trackingmcp.com/v1/containers/summary",
headers={"Authorization": "Bearer tmcp_YOUR_API_KEY"},
)
data = res.json() {
"ok": true,
"data": {
"total_active": 128,
"exceptions": 6,
"arriving_this_week": 14,
"demurrage_risk_usd": 4820.5,
"containers": [
{
"id": "MEDU1234562",
"status": "in_transit",
"eta": "2026-07-03T06:00:00Z",
"vessel_name": "MSC TERESA",
"vessel_imo": "9754105"
}
]
}
}