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 getShipmentTracking operation 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 parameterDescriptionExample
    idUnique tracking shipment identifier generated by Amazon.546e1ddb-dae0-4f76-84fd-ab4998ad00dd
    acsinAir Cargo Shipment Identification Number.75726371365
    aftnAmazon Fulfillment Tracking Number. Must start with AFTN followed by digits.AFTN987654321
    containerNumberContainer number provided by the Logistics Service Provider.MSKU4538324
    houseBillOfLadingNumberHouse Bill of Lading number.AMZDCN203A900BD3
    carrierTracking.trackingNumber + carrierTracking.carrierCodeCarrier-assigned tracking number and, optionally, the carrier code.1Z999AA1234567890 / UPS

Step 1: Call the getShipmentTracking operation

  1. Request an LWA access token with scope sellingpartnerapi::shipments:track. Refer to Grantless Operations for more information.

  2. Call the getShipmentTracking operation 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 codeHTTP statusCauseResolution
BAD_REQUEST400The 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_ALLOWED400More 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_FORMAT400The aftn value does not match the required pattern.Ensure the value starts with AFTN followed by digits only (for example, AFTN987654321).
INVALID_ACSIN_FORMAT400The format of the acsin is invalid.Verify the format of your acsin (for example, 75726371365).
INVALID_HBL_NUMBER_FORMAT400The format of the houseBillOfLadingNumber is invalid.Verify the format of your House Bill of Lading number.
INVALID_CONTAINER_NUMBER_FORMAT400The format of the containerNumber is invalid.Verify the format of your container number.
INVALID_CARRIER_TRACKING_NUMBER_FORMAT400The format of the carrierTracking.trackingNumber is invalid.Verify the format of your carrier tracking number.
INVALID_TRACKING_ID_FORMAT400The format of the id is invalid.Verify the format of your tracking ID.
REQUEST_SIZE_EXCEEDED413The request payload exceeds the maximum allowed size.Reduce the payload size and retry.
INVALID_AUTHENTICATION_TOKEN401The 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_DENIED403The 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_FOUND404The 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.


Did this page help you?