Retrieving tracking information for shipments
With the exporto API, technical integration partners can retrieve the processing status of individual shipments. This information provides details on:
- whether a shipment has already been processed by exporto,
- whether it has been successfully cleared through customs,
- and the current status of delivery by the last-mile carrier.
Recommended procedure for retrieving tracking data
There are two ways to retrieve tracking information:
- Direct retrieval of individual shipments by shipmentId by GET /shipment/{shipmentId}
- Retrieval of processed shipments GET /shipment/search
1. Direct retrieval of individual shipments
If the shipmentID is known, the current status can be queried directly via the following endpoint:
The API response contains, among other things, the following status information and timestamps that map the shipment's processing chain:
These values provide information about when a shipment was processed, cleared through customs, handed over to the carrier, or delivered.
2. Retrieving shipments via GET /shipment/search
The GET /shipment/search endpoint lets you find shipments and retrieve their current status and tracking information. It returns a paginated list, so it's well suited both for one-off lookups and for regularly polling for updates.
How to search
All filters are optional and can be combined. The most common ways to narrow down results are by shipment type (outbound, meaning on its way to the consumer, or inbound) and by tracking ID — you can look up a specific shipment via foreignOutboundTrackingId (carrier leg to the consumer) or foreignInboundTrackingId (carrier leg to the warehouse). Both tracking searches match exactly.
You can also filter by time using processedAt, which returns every shipment processed at or after a given timestamp, ordered from oldest to newest.
Results are paginated with page (zero-based) and pageSize (1–100, defaulting to 100).
Polling for updates
If you want to keep your own system in sync, use carrierReceivedAtUpdatedAt and carrierDeliveredAtUpdatedAt. These return shipments whose carrier-received or carrier-delivered information was updated after a given time. They deliberately track when the tracking data was imported rather than when the carrier event actually happened, so you won't miss shipments when tracking data arrives late. Since results come back ordered ascending by that update time, you can simply remember the last timestamp you saw and pass it back in on your next poll.
What you get back
Each shipment includes its shipmentId, the orderId you provided at order creation, its type and current status, and the available tracking IDs. The status values differ by type: outbound shipments move through new → processed → closed (or rejected), while inbound shipments use announced, processed, closed, rejected, toBeClarified, and disposed.
For delivery progress, carrierState reflects what the carrier currently reports — notAvailable, pending, inDelivery, delivered, or deliveryFailed — alongside timestamps for when the shipment was created, processed, declared at customs, received by the carrier, and delivered. Note that carrier states and timestamps aren't yet available for every carrier.
Each shipment also lists its lineItems (article, name, quantity, prices, barcode, country of origin) and a customs object with the import and export status.
For the full field-by-field reference and request testing, see the Swagger documentation.
https://api.exporto.de/v1/docs#/Shipment/ShipmentController_searchShipments
Contact
The exporto team is available to answer any technical questions or provide support with implementation.
Contact: product@exporto.de
Comments
0 comments
Please sign in to leave a comment.