# Tracking With ShipStation’s v2 REST 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. Upcoming Tracking Methods - ShipStation does not yet support webhook listeners for tracking events, but this capability is coming soon. - ShipStation has not yet implemented a dedicated tracking endpoint. However, this endpoint is coming in 2025. We will update this documentation with the details for the tracking endpoint when available. ## Requirements - You must have the `label_id` of the label you wish to track. ## Sample Request & Response **GET /v2/labels/:label_id/track** ```http GET /v2/labels/se-324658/track HTTP/1.1 Host: api.shipstation.com API-Key: __YOUR_API_KEY_HERE__ Cache-Control: no-cache ``` **Sample Response** ```json { "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" } ] } ``` ## About the Tracking Response **Event Timestamps:** - `carrier_occurred_at` is 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_at` is our best effort at converting the `carrier_occurred_at` field to UTC, based on the time of the event's occurrence. ### Tracking Status Codes 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.