Track a Package

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

FREE Tracking

If you generate your labels through ShipEngine, then you can subscribe to real-time tracking events for free! Try the Track Using a Label ID lesson to learn how to track your labels.

You can also track packages for which you did not use ShipEngine to generate the label, as long as you have the tracking number.

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