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.

Get a $50 credit on us. Start shipping today!

Layers of colorful boxes
Layers of colorful boxes

The multi-carrier tracking solution for eCommerce

Layers of colorful boxes

Tracking made easy

local_shipping

Free with our
Shipping API

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

my_location

Reliable
webhooks

Implement tracking webhooks for automated notifications on all package movements.

home_work

Continuous
updates

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

beenhere

Comprehensive
reporting

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

How it works

looks_one

Create a tracker through EasyPost

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

looks_two

Send tracking link to customers

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

looks_3

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

Layers of colorful boxes

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.

Sign up freelabel_important

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.

Start tracking todaylabel_important
Layers of colorful boxes
More and more layers of colorful boxes

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.