- A Bill of Lading (BOL), booking number, or container number from the carrier.
- The carrier Standard Carrier Alpha Code (SCAC). You can see a complete list of supported SCACs in the carrier coverage matrix.
Choose a tracking number
Supported numbers- Master Bill of Lading number from the carrier (recommended)
- Booking number from the carrier
- Container number
Container number tracking support varies by ocean carrier. Check the carrier
coverage
matrix
to see which carriers support container number tracking.
- House Bill of Lading (HBOL) numbers
- Customs entry numbers
- Seal numbers
- Internally generated numbers, such as purchase order numbers or customer reference numbers
Authentication
Every request in this tutorial sends your API key in theAuthorization header:
Create a tracking request
ReplaceYOUR_API_KEY, REQUEST_NUMBER, and SCAC before running this example. The request number must be a master bill of lading, booking, or container number from the carrier.
Rate limiting: You can create up to 100 tracking requests per minute.
Anatomy of a tracking request response
The response confirms that Terminal49 accepted the request. A new request usually starts withstatus: "pending" while Terminal49 checks the carrier.
Why so much JSON? (A note on JSON:API)The Terminal49 API is JSON:API compliant. JSON:API libraries can translate the response into a full object model compatible with an ORM, which is powerful but produces larger, more structured payloads. If you parse JSON directly, this can feel verbose. For production use, consider adopting a JSON:API client library to get the most out of the format. For this tutorial, you will work with the data directly.
What happens after you create a tracking request
Terminal49 works asynchronously:- You send a tracking request with a shipment identifier and SCAC.
- Terminal49 accepts the request and returns a
tracking_requestwithstatus: "pending". - Terminal49 monitors the carrier and creates shipment and container records as data becomes available.
- You list shipments and containers at any time, or receive updates through a webhook.
POST requests to whenever tracking data changes: you receive tracking_request.succeeded when the shipment is created, or tracking_request.failed if there is a problem. You will register a webhook in step 4 of this path. Until then, you can poll the tracking request as shown below.

Check your tracking request status
If you have not set up a webhook yet, poll the Tracking Requests endpoint to check whether your request succeeded or failed. ReplaceYOUR_API_KEY with your API key.
id from the create response: GET /v2/tracking_requests/{id}.
Troubleshooting
You can always email us at support@terminal49.com if you have persistent
issues.
Next up: get your shipments
Now that you’ve made a tracking request, the next step is to list your shipments and retrieve the tracking data.List shipments and containers
Retrieve the shipment and container records Terminal49 created for you.
See How to initiate shipment tracking on
Terminal49
for other ways of initiating shipment tracking.