Skip to main content

📦 Trackers

Introduction to Tracker​

In order to have Ship24 track your shipments, you need to create a Tracker for each shipment on which you wish to receive tracking data. A Tracker is basically an instruction for Ship24 to track a shipment and is composed of a tracking number and a few shipment-related information such as courier information, origin country, destination country, etc.

Did you know?

Tracking numbers are not unique, you could have a shipment handled by FedEx in the US shipped in March and a shipment handled by GLS in Europe in March as well that both share the same tracking number.

That's why we recommend providing as much information as possible on top of the tracking number when creating a Tracker. Based on that, a unique trackerId is systematically generated by Ship24 for each Tracker created and shared in the API response. We recommend storing and using Ship24's trackerId on top of the tracking number to identify and match information to a specific shipment. This Ship24's trackerId is also present in our webhook messages.

Alternatively, you can also provide a unique shipmentReference when creating a Tracker, which will be present in our API response and webhook. However, we don't verify the unicity of this data so please make sure it's fully unique for each shipment on your side before using it as such.


Trackings endpoints overview​

A Tracker can be created using one of the following endpoints:

Create a new tracker, which means you are asking Ship24 to start tracking this shipment based on its tracking number.

Create a new tracker and get tracking results synchronously. As tracking results are fetched synchronously from couriers, the initial response time of the API may be up to one minute.

Once created, a Tracker will track the corresponding shipment by automatically and continuously gathering the tracking data from the different couriers and sources of data.

Tracker can be viewed and modified using the following endpoints:

Update an existing tracker by id. Data related to the shipment (i.e. destination country, shipping date) can't be modified if the Tracker already gathered shipment tracking information. Updating a Tracker is recommended in case you wish to provide additional courierCode afterward, however, it's best to provide all recommended information at the creation of a Tracker.

Get an existing tracker by id. Please note that this endpoint will only return the Tracker information and not the tracking result. See Get tracker results by id or Get tracker results by tracking number to get the tracking result.

Get the list of existing trackers, using page-based pagination.

Tracking results from a Tracker can be retrieved in different ways:

1- Automatically receive webhook notifications for new tracking updates. See webhooks.

This is the most efficient way to receive tracking updates as you don't need to call our system at regular intervals, and you get informed as soon as we discover new events.

2- Fetch instantly the latest tracking updates from our system for tracking data using one of the following endpoints:

If you store Ship24's trackerId in your system, this is the best way to fetch tracking results from an existing Tracker.

If you don't wish to store Ship24's trackerId in your system, you can use this endpoint to search a Tracker by tracking number. However, if you create two different Tracker for two different shipments going to two different destination countries with different couriers, that have the same tracking number, you will get an array of Tracker as a response. As tracking numbers are not unique, we always recommend using Get results for an existing tracker with Ship24's trackerId instead.

As this endpoint is idempotent, it can be used to create initially the Tracker and get tracking results, and also get subsequent results later on by calling it again. This is the simplest way if you wish to have just one unified endpoint that can be called again and again to get tracking results. However, make sure the payload sent is always the same, as a new Tracker will be created if any information in the payload change, and keep in mind that the initial call will be long, as explain in the endpoint definition.