Track an external channel shipment
Learn how to retrieve tracking details for an external channel shipment as it moves through Amazon's supply chain.
Use the getShipmentTracking operation to retrieve tracking details for shipments in Amazon's supply chain for external channels.
Important
The
getShipmentTrackingoperation is only available in the United States (US) Amazon store.
Prerequisites
To complete this tutorial, you need:
-
One of the following identifiers for the shipment that you want to track:
Identifier parameter Description Example idUnique tracking shipment identifier generated by Amazon. 546e1ddb-dae0-4f76-84fd-ab4998ad00ddacsinAir Cargo Shipment Identification Number. 75726371365aftnAmazon Fulfillment Tracking Number. Must start with AFTNfollowed by digits.AFTN987654321containerNumberContainer number provided by the Logistics Service Provider. MSKU4538324houseBillOfLadingNumberHouse Bill of Lading number. AMZDCN203A900BD3carrierTracking.trackingNumber+carrierTracking.carrierCodeCarrier-assigned tracking number and, optionally, the carrier code. 1Z999AA1234567890/UPS
Step 1: Call the getShipmentTracking operation
getShipmentTracking operation-
Request an LWA access token with scope
sellingpartnerapi::shipments:track. Refer to Grantless Operations for more information. -
Call the
getShipmentTrackingoperation using one tracking identifier. For example:
GET https://sellingpartnerapi-na.amazon.com/tracking/2026-01-30/shipments/track?id=546e1ddb-dae0-4f76-84fd-ab4998ad00dd
Step 2: Parse the response
On a successful 200 response, review the trackingDetail object to determine the shipment's current status, milestone history, and tracking estimates such as estimated delivery date. Open the tracking URL in a browser to visualize this data.
Example
This example shows a 200 response for a shipment tracked by aftn.
{
"trackingDetail": {
"identifier": {
"aftn": "AFTN987654321"
},
"latestMilestone": {
"status": {
"code": "DELIVERED",
"subCode": "PORCH",
"description": "Shipment delivered to porch"
},
"location": {
"address": {
"city": "Austin",
"region": "Texas",
"countryCode": "US"
}
},
"occurredAt": "2026-06-14T01:26:56Z"
},
"milestoneHistory": [
{
"status": {
"code": "DELIVERED",
"subCode": "PORCH",
"description": "Shipment delivered to porch"
},
"location": {
"address": {
"city": "Austin",
"region": "Texas",
"countryCode": "US"
}
},
"occurredAt": "2026-06-14T01:26:56Z"
},
{
"status": {
"code": "OUT_FOR_DELIVERY",
"description": "Shipment is out for delivery"
},
"location": {
"address": {
"city": "Buda",
"region": "Texas",
"countryCode": "US"
}
},
"occurredAt": "2026-06-13T16:20:51Z"
},
{
"status": {
"code": "SHIPPED",
"description": "Shipment has departed origin"
},
"occurredAt": "2026-06-13T05:21:43Z"
},
{
"status": {
"code": "CARRIER_ASSIGNED",
"description": "Carrier was assigned"
},
"occurredAt": "2026-06-13T04:41:37Z"
},
{
"status": {
"code": "ORDER_PREPARING",
"description": "Order is preparing to ship"
},
"occurredAt": "2026-06-12T19:43:40Z"
}
],
"trackingEstimates": [
{
"type": "ESTIMATED_DELIVERY_DATE",
"estimatedInterval": {
"startTime": "2026-06-14T03:00:00Z",
"endTime": "2026-06-14T03:00:00Z"
},
"lastUpdatedTime": "2026-06-13T05:21:43Z"
}
],
"trackingUrl": "https://www.swiship.com/track?id=AFTN987654321"
}
}
Error resolution
If you receive an error response, refer to the following table to resolve the issue:
| Error code | HTTP status | Cause | Resolution |
|---|---|---|---|
BAD_REQUEST | 400 | The request is missing required parameters or contains invalid values. | Review the request parameters and ensure exactly one valid identifier type is provided. |
MULTIPLE_TRACKING_IDS_NOT_ALLOWED | 400 | More than one identifier type was provided in a single request. | Provide exactly one identifier type per request. Remove all but one identifier field. |
INVALID_AFTN_FORMAT | 400 | The aftn value does not match the required pattern. | Ensure the value starts with AFTN followed by digits only (for example, AFTN987654321). |
INVALID_ACSIN_FORMAT | 400 | The format of the acsin is invalid. | Verify the format of your acsin (for example, 75726371365). |
INVALID_HBL_NUMBER_FORMAT | 400 | The format of the houseBillOfLadingNumber is invalid. | Verify the format of your House Bill of Lading number. |
INVALID_CONTAINER_NUMBER_FORMAT | 400 | The format of the containerNumber is invalid. | Verify the format of your container number. |
INVALID_CARRIER_TRACKING_NUMBER_FORMAT | 400 | The format of the carrierTracking.trackingNumber is invalid. | Verify the format of your carrier tracking number. |
INVALID_TRACKING_ID_FORMAT | 400 | The format of the id is invalid. | Verify the format of your tracking ID. |
REQUEST_SIZE_EXCEEDED | 413 | The request payload exceeds the maximum allowed size. | Reduce the payload size and retry. |
INVALID_AUTHENTICATION_TOKEN | 401 | The Authorization header is missing, malformed, or the token has expired. | Regenerate your LWA access token and retry the request. Refer to Rotate your Application's LWA Credentials. |
ACCESS_DENIED | 403 | The caller does not have permission to access this resource. | Verify that the required role is assigned to your developer profile and selected in your application registration. |
RESOURCE_NOT_FOUND | 404 | The requested shipment tracking identifier does not exist. | Verify the identifier value is correct and corresponds to an existing shipment. |
Note
For general SP-API troubleshooting guidance, refer to Troubleshoot SP-API Errors and Resolve Common HTTP and Authorization Error Codes.
Updated about 2 hours ago

