Track parcels anywhere

Utilize EasyPost's Tracking API to provide real-time shipment updates to you and your customers. Own the customer experience with branded tracking pages, empower your business with informed delivery estimates, and increase customer satisfaction with accurate shipping notifications.

Cartoon graphic of earth

The multi-carrier tracking solution for ecommerce

Wish logo
Infinite Discs logo
Everything But The House logo
Snack Crate logo
Sticker Mule logo
Atoms logo
Vanishing INC logo
Ritual logo
Teespring logo
Shiek logo
BackerKit logo
Qualia logo

Tracking made easy

Free with our Shipping API

Once integrated with our Shipping API, you have access to our Tracking API and webhooks.

Reliable webhooks

Implement tracking webhooks for automated notifications on all package movements.

Continuous updates

Our API pulls tracking information in real-time to provide up-to-date location details.

Comprehensive reporting

Detailed shipping reports provide business insights to make data driven decisions.

How it works

Create a tracker with EasyPost

All EasyPost shipments automatically come with a free tracker, or you can generate a tracker by itself.

Send tracking link to customers

Customize the tracking page for a branded experience — no more boring and generic carrier pages.

Share real-time updates

Customers are up-to-date on the status of their package, saving you time on customer questions.

Follow millions of shipments

# Import the EasyPost client.
import easypost

# Setup the client with your API key.
easypost.api_key = '259DA788-39A3-439E-BA1E-BC541B8BA520'

# Create a tracker from a tracking code.
easypost.Tracker.create(
    tracking_code="EZ1000000001",
    carrier="USPS"
)
{
  "id": "trk_7e8f102cba904f9c90693957a91862b7",
  "object": "Tracker",
  "created_at": "2020-02-08T21:39:12Z",
  "updated_at": "2020-02-08T21:39:12Z",
  "mode": "test",
  "tracking_code": "EZ1000000001",
  "carrier": "USPS",
  "public_url": "https://track.easypost.com/djE6dHJrXzdlOGYxMDJjYmE5MDRmOWM5MDY5Mzk1N2E5MTg2MmI3",
  "status": "pre_transit",
  "est_delivery_date": "2020-02-08T21:39:12Z",
  "status_detail": "status_update",
  "is_return": false,
  "tracking_details": [
    {
      "carrier_code": null,
      "datetime": "2020-01-08T21:39:12Z",
      "description": null,
      "message": "Pre-Shipment Info Sent to USPS",
      "object": "TrackingDetail",
      "source": "USPS",
      "status": "pre_transit",
      "status_detail": "status_update",
      "tracking_location": {
        "city": null,
        "country": null,
        "object": "TrackingLocation",
        "state": null,
        "zip": null
      }
    },
    {
      "carrier_code": null,
      "datetime": "2020-01-09T10:16:12Z",
      "description": null,
      "message": "Shipping Label Created",
      "object": "TrackingDetail",
      "source": "USPS",
      "status": "pre_transit",
      "status_detail": "status_update",
      "tracking_location": {
        "city": "HOUSTON",
        "country": null,
        "object": "TrackingLocation",
        "state": "TX",
        "zip": "77063"
      }
    }
  ],
  "carrier_detail": {
    "alternate_identifier": null,
    "container_type": null,
    "destination_location": "CHARLESTON SC, 29401",
    "destination_tracking_location": null,
    "est_delivery_date_local": null,
    "est_delivery_time_local": null,
    "guaranteed_delivery_date": null,
    "initial_delivery_attempt": null,
    "object": "CarrierDetail",
    "origin_location": "HOUSTON TX, 77001",
    "origin_tracking_location": {
      "city": "HOUSTON",
      "country": null,
      "object": "TrackingLocation",
      "state": "TX",
      "zip": "77063"
    },
    "service": "First-Class Package Service"
  },
  "fees": [
    {
      "amount": "0.00000",
      "charged": false,
      "object": "Fee",
      "refunded": false,
      "type": "TrackerFee"
    }
  ],
  "shipment_id": null,
  "signed_by": null,
  "weight": null
}

Track packages with multiple carriers

USPS logo
UPS logo
FedEx logo
DHL logo
Passport logo
Purolator logo
Canada Post logo
OnTrac logo
GLS logo
DPD logo
Royal Mail logo

Offer your customers transparent tracking

Get notified every time a package scan occurs and use these updates to let your customers know the estimated delivery date of their package and to get ahead of package delays or exceptions. Custom tracking pages allow you to own the customer experience instead of the carrier.

Tracking isn't just for the customer, it's for your business

Knowing where shipments are in the mailstream doesn't just benefit customers; tracking updates allow your business to remain agile. Our webhooks are push notifications that allow you to stay up-to-date on the status of your EasyPost objects. You can enable a number of automated responses from SMS and email alerts, to in-house workflows.

A purple square, red circle, and a teal shape

Getting started is easy and free!

Take a look at our documentation and start building with one of our helper libraries (Python, PHP, Ruby, Node.js, Java, and more). Avoid month-long integrations and start simplifying your shipping in minutes with EasyPost.