With ShipStation V2 API, you can retrieve tracking details for a specific label you’ve created in ShipStation using the GET method and the /v2/labels/{label_id}/track endpoint.
- You must have the
label_idof the label you wish to track.
GET /v2/labels/:label_id/track
GET /v2/labels/se-324658/track HTTP/1.1
Host: api.shipstation.com
API-Key: __YOUR_API_KEY_HERE__
Cache-Control: no-cacheSample Response
{
"tracking_number": "1Z932R800390810600",
"status_code": "DE",
"status_description": "Delivered",
"carrier_status_code": "D",
"carrier_status_description": "DELIVERED",
"shipped_date": "2024-10-25T11:59:03.289Z",
"estimated_delivery_date": "2024-10-27T11:59:03.289Z",
"actual_delivery_date": "2024-10-27T11:59:03.289Z",
"exception_description": null,
"events": [
{
"occurred_at": "2024-10-25T12:32:00Z",
"carrier_occurred_at": "2024-10-25T05:32:00",
"description": "Arrived at UPS Facility",
"city_locality": "OCEANSIDE",
"state_province": "CA",
"postal_code": "92056",
"country_code": "",
"company_name": "",
"signer": "",
"event_code": "U1"
}
]
}Event Timestamps:
carrier_occurred_atis the timestamp of the event received from the carrier. It is assumed to be the local time of where the event occurred. This event property is not yet fully supported across all carriers.occurred_atis our best effort at converting thecarrier_occurred_atfield to UTC, based on the time of the event's occurrence.
Here's how the status_code and status_description fields correspond to each other and how they correspond to the tracking_status field of a label:
| Status Code | Status Description | Tracking Status |
|---|---|---|
AC | Accepted | N/A |
IT | In Transit | in_transit |
DE | Delivered | delivered |
EX | Exception | error |
UN | Unknown | unknown |
AT | Delivery Attempt | N/A |
NY | Not Yet in System | in_transit |
SP | Delivered to the Collection Location | delivered_to_service_point |
Your integration should expect any of the above tracking events for any of the carriers you use.