Docs/API Reference

API Reference

RESTful JSON API for container tracking, BL lookup, vessel positions, and sailing schedules. Authenticate with a Bearer token — no SDK required.

Base URLhttps://traqocontainer.com/api/v1
AuthAuthorization: Bearer <key>
FormatJSON

Authentication

All API requests must include your API key as a Bearer token in the Authorization header. You can generate and manage API keys from the Developer section of your dashboard.

Example
Authorization: Bearer sk_live_YOUR_API_KEY
Keep your API key secret. Do not expose it in client-side JavaScript or commit it to version control. If a key is compromised, delete it from your dashboard and generate a new one.

Base URL

All endpoints are relative to the following base URL:

https://traqocontainer.com/api/v1

Errors

All error responses return JSON with a consistent structure:

{
  "statusCode": 401,
  "statusMessage": "Invalid or missing API key"
}
StatusMeaning
200Success
400Bad request — check required parameters
401Invalid or missing API key
402Shipment limit reached — upgrade your plan
403Developer mode not enabled — enable it from your dashboard settings
404Resource not found
429Rate limit exceeded
502Upstream tracking API error — retry after a moment

Shipment limits

There are no API call limits. The only constraint is how many shipments your account can track simultaneously — this is your shipment slot limit, set by your plan.

Each call to /api/v1/container/:number, /api/v1/bl/:number checks whether the shipment is already in your account. If it is, the call succeeds without consuming a slot. If it's new and you have remaining slots, it's added. If you've reached your limit, the API returns 402.

Deleting a shipment from your dashboard frees up that slot immediately. Your current usage and slot limit are visible on the Developer tab in your dashboard.

The /api/v1/vessel/track and /api/v1/voyage/schedules endpoints do not consume shipment slots — they are purely lookup calls.
GET/api/v1/container/:number

Track a container

Returns full tracking data for a container number — status, route, ETA, port events, and vessel info. Pass the container number directly in the URL. The shipment is automatically saved to your account in the background.

Requires developer mode to be enabled on your account. Toggle it from the Developer tab in your dashboard. Requests without it enabled return 403.

Path parameters

ParameterTypeRequiredDescription
numberstringYesContainer number (e.g. MSCU1234567)

Query parameters

ParameterTypeRequiredDescription
sealinestringNoSCAC code of the shipping line (e.g. MSCU) — improves accuracy
curl -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  "https://traqocontainer.com/api/v1/container/MRSU6859427?sealine=MAEU"

Response

{
"success": true,
"data": {
"reference_number": "MRSU6859427",
"origin": "Ahmedgarh, ",
"sealine": "MAEU",
"number_of_containers": 1,
"eta": "2026-05-17 00:00:00",
"last_updated_at": "2026-03-26 13:08:44.789895",
"is_active": 1,
"closed_at": null,
"shipment_type": "Container",
"destination": "Caucedo, Dominican Republic",
"sealine_name": "Maersk",
"total_days": 86,
"remaining_days": 51,
"created_at": "2026-03-26 13:08:44.411404",
"last_synced_at": "2026-03-26 13:08:44.411404",
"is_delayed": 0,
"latitude": "-35",
"longitude": "18",
"status": "IN_TRANSIT",
"route_json": "[[22.84,69.72],[22.80,69.75],[22.54,68.72],[20.81,69.59],...150 coordinate pairs]",
"is_failed_shipment": 0,
"shipment_uid": "ef67bb8b4c1f8564282c88efb2fbffbe",
"shipment_public_url": "https://traqo.io/ocean/share-shipment?shipment_uid=ef67bb8b4c1f8564282c88efb2fbffbe",
"voyage_plan_table": [
{9 fields},
{9 fields},
{9 fields},
{9 fields}
]
,
"containers_table": [
{6 fields}
]
,
"locations_table": [
{11 fields},
{11 fields},
{11 fields},
{11 fields},
{11 fields}
]
,
"facilities_table": [
{7 fields},
{7 fields},
{7 fields},
{7 fields},
{7 fields}
]
,
"eta_history_table": [
{6 fields}
]
,
"events_table": [
{20 fields},
{20 fields},
{20 fields},
{23 fields},
{24 fields},
{24 fields},
{24 fields},
{24 fields},
{24 fields},
{24 fields},
{24 fields}
]
,
"vessels_table": [
{11 fields},
{11 fields},
{11 fields}
]
}
}
GET/api/v1/bl/:number

Track a bill of lading

Returns full tracking data for a Bill of Lading number. Identical response structure to the container endpoint. The shipment is automatically saved to your account in the background.

Requires developer mode to be enabled on your account. Toggle it from the Developer tab in your dashboard. Requests without it enabled return 403.

Path parameters

ParameterTypeRequiredDescription
numberstringYesBill of Lading number

Query parameters

ParameterTypeRequiredDescription
sealinestringNoSCAC code of the shipping line — improves accuracy
curl -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  "https://traqocontainer.com/api/v1/bl/SHZ8037930?sealine=CMDU"

Response

{
"success": true,
"data": {
"reference_number": "SHZ8037930",
"origin": "Nansha, China",
"sealine": "CMDU",
"number_of_containers": 1,
"eta": "2026-07-28 00:00:00",
"last_updated_at": "2026-05-25 15:42:18.850704",
"is_active": 1,
"closed_at": null,
"shipment_type": "Bill of Lading",
"destination": "Skikda, Algeria",
"sealine_name": "CMA CGM",
"total_days": 83,
"remaining_days": 63,
"created_at": "2026-05-25 15:42:13.528031",
"last_synced_at": "2026-05-25 15:42:13.528031",
"is_delayed": 0,
"latitude": 22.661,
"longitude": 113.6668,
"status": "IN_TRANSIT",
"route_json": "[[22.661,113.6668],[22.743,113.576],[22.704,113.685],[22.531,113.752],...coordinate pairs]",
"is_failed_shipment": 0,
"shipment_uid": "c7ac8ef4cae8955224714fb33770927a",
"shipment_public_url": "https://traqo.io/ocean/share-shipment?shipment_uid=c7ac8ef4cae8955224714fb33770927a",
"voyage_plan_table": [
{9 fields},
{9 fields},
{9 fields},
{9 fields}
]
,
"containers_table": [
{6 fields}
]
,
"locations_table": [
{11 fields},
{11 fields},
{11 fields}
]
,
"facilities_table": [
]
,
"eta_history_table": [
{6 fields}
]
,
"events_table": [
{22 fields},
{22 fields},
{23 fields},
{23 fields},
{23 fields},
{23 fields}
]
,
"vessels_table": [
{11 fields},
{11 fields}
]
}
}
GET/api/v1/shipments

List tracked shipments

Returns a paginated list of all shipments saved to your account — containers and bills of lading — with their current status, route, and ETA. Useful for building dashboards and monitoring multiple shipments at once.

Requires developer mode to be enabled on your account. Toggle it from the Developer tab in your dashboard. Requests without it enabled return 403.

Query parameters

ParameterTypeRequiredDescription
pageintegerNoPage number, default 1
pageSizeintegerNoResults per page, default 20, max 100
curl -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  "https://traqocontainer.com/api/v1/shipments?page=1&pageSize=20"

Response

Showing 2 of 4 items for brevity. Flat objects — no nested arrays.

{
"success": true,
"total": 2,
"page": 1,
"pageSize": 20,
"data": [
{
"name": "SHP-00294",
"number_of_containers": 1,
"shipment_type": "Bill of Lading",
"reference_number": "SHZ8037930",
"sealine_name": "CMA CGM",
"sealine": "CMDU",
"status": "IN_TRANSIT",
"origin": "Nansha, China",
"destination": "Skikda, Algeria",
"total_days": 83,
"remaining_days": 63,
"eta": "2026-07-28 00:00:00",
"created_at": "2026-05-25 10:12:19.166049",
"is_active": 1,
"is_delayed": 0,
"shipment_public_url": "https://traqo.io/ocean/share-shipment?shipment_uid=c7ac8ef4cae8955224714fb33770927a"
}
,
{
"name": "SHP-00265",
"number_of_containers": 1,
"shipment_type": "Container",
"reference_number": "TRHU8051322",
"sealine_name": "Maersk",
"sealine": "MAEU",
"status": "IN_TRANSIT",
"origin": "Pithampur, India",
"destination": "Mombasa, Kenya",
"total_days": 27,
"remaining_days": 25,
"eta": "2026-05-11 00:00:00",
"created_at": "2026-04-15 11:45:01.712436",
"is_active": 1,
"is_delayed": 0,
"shipment_public_url": "https://traqo.io/ocean/share-shipment?shipment_uid=925b8cc44d9692fb29cbe64d86fe6fd8"
}
]
}
GET/api/v1/vessel/track

Track a vessel

Returns real-time AIS position, speed, heading, and voyage information for a vessel. Both imo (7 digits) and mmsi (9 digits) are required.

Requires developer mode to be enabled on your account. Toggle it from the Developer tab in your dashboard. Requests without it enabled return 403.

Query parameters

ParameterTypeRequiredDescription
imostringYes7-digit IMO number
mmsistringYes9-digit MMSI number
curl -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  "https://traqocontainer.com/api/v1/vessel/track?imo=9811000&mmsi=636022327"

Response

{
"success": true,
"data": {
"lat": 18.416247,
"lon": -17.618743,
"speed": 16.5,
"draught": 9.4,
"navigation_status": "Underway using engine",
"course_over_ground": 3.4,
"true_heading": 5,
"timestamp": "2026-05-25T10:45:20",
"origin_port": "Dakar, Senegal",
"origin_locode": "SNDKR",
"atd": "2026-05-20T08:00:00",
"destination_port": "TANGER-MEDITERRANEAN, MA",
"destination_locode": "MATAN",
"eta": "2026-05-30T00:01:00"
}
}
GET/api/v1/voyage/schedules

Voyage schedules

Returns sailing schedules between two ports for a given date, across available carriers.

Query parameters

ParameterTypeRequiredDescription
originstringYesOrigin port UN/LOCODE (e.g. CNSHA)
destinationstringYesDestination port UN/LOCODE (e.g. NLRTM)
datestringYesDate in YYYY-MM-DD format
week_rangeintegerNoNumber of weeks to search, default 1
date_typestringNo"departure" (default) or "arrival"
curl -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  "https://traqocontainer.com/api/v1/voyage/schedules?origin=INMUN&destination=AEJEA&date=2026-06-01&week_range=2&date_type=departure"

Response

Showing 2 of many results for brevity.

{
"success": true,
"data": [
{
"sealine": "MSCU",
"sealine_name": "MSC",
"service_name": "EAST AFRICA EXPRESS",
"voyage": "OM622A",
"vessel": {2 fields},
"origin": {5 fields},
"destination": {5 fields},
"departure_date": "2026-06-01 10:00:00",
"arrival_date": "2026-06-06 19:00:00",
"duration": 6,
"transit_type": "unspecified"
}
,
{
"sealine": "MSCU",
"sealine_name": "MSC",
"service_name": "ARABIAN SEA SHUTTLE",
"voyage": "JR622A",
"vessel": {2 fields},
"origin": {5 fields},
"destination": {5 fields},
"departure_date": "2026-06-02 06:00:00",
"arrival_date": "2026-06-09 08:00:00",
"duration": 8,
"transit_type": "transshipment"
}
]
}