Track a Package

Learn how to use ShipEngine® to track any package with a carrier and a tracking number.

With ShipEngine, you can subscribe to real-time tracking events for any package – regardless of whether you created the label via ShipEngine.

For labels that were created via ShipEngine, we recommend that you track by Label ID. For other packages, follow the instructions below to track via the tracking number instead.

Supported Carriers

Package tracking is supported for the following carriers:

Carrier
Carrier Code

U.S. Postal Service

usps

Stamps.com

stamps_com

FedEx

fedex

UPS

ups

DHL Express

dhl_express

Canada Post

canada_post

Australia Post

australia_post

First Mile

firstmile

Asendia

asendia

OnTrac

ontrac

APC

apc

Newgistics

newgistics

Globegistics

globegistics

RR Donnelley

rr_donnelley

IMEX

imex

Access Worldwide

access_worldwide

Purolator Canada

purolator_ca

Sendle

sendle

Example

The following example demonstrates how to get tracking information. You need to specify the carrier_code (see the table above) and the tracking_number of the package.

GET /v1/tracking?carrier_code=stamps_com&tracking_number=9405511899223197428490 HTTP/1.1
host: $apiHost$
api-key: $apiAuthKey$
cache-control: no-cache
curl '$apiUrl$/v1/tracking?carrier_code=stamps_com&tracking_number=9405511899223197428490' \
  -X GET \
  -H "api-key: #apiAuthKey#"
{
  "tracking_number": "9405511899223197428490",
  "status_code": "DE",
  "status_description": "Delivered",
  "carrier_status_code": "01",
  "carrier_status_description": "Your item was delivered in or at the mailbox at 9:10 am on March 2, 2017 in AUSTIN, TX 78756.",
  "ship_date": "$date$",
  "estimated_delivery_date": null,
  "actual_delivery_date": "$date$",
  "exception_description": null,
  "events": [
    {
    "occurred_at": "$date$",
    "description": "Delivered, In/At Mailbox",
    "city_locality": "AUSTIN",
    "state_province": "TX",
    "postal_code": "78756",
    "country_code": "",
    "company_name": "",
    "signer": ""
    }
  ]
}

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

Track a Package


Learn how to use ShipEngine® to track any package with a carrier and a tracking number.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.