Trace
Universal package tracking API

Tracking for developers

One REST API to track any package: carrier auto-detection, clean statuses, and webhook-ready delivery events from 80+ carriers.

POST /v1/track
curl https://api.traceapi.dev/v1/track \
  -H "Authorization: Bearer trc_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"tracking_number":"YT2412345678"}'

{
  "tracking_number": "YT2412345678",
  "carrier": {
    "code": "yunexpress",
    "name": "YunExpress",
    "type": "dropshipping"
  },
  "status": "in_transit",
  "events": [
    {
      "status": "in_transit",
      "description": "Package departed sorting facility",
      "location": "Shenzhen, China",
      "timestamp": "2026-07-01T14:30:00Z"
    }
  ],
  "cached": false,
  "request_id": "req_abc123"
}
UPS
FedEx
DHL
USPS
Royal Mail
YunExpress
4PX
Cainiao
DPD
Evri
PostNL
GLS
SF Express
Aramex
Japan Post
Canada Post
UPS
FedEx
DHL
USPS
Royal Mail
YunExpress
4PX
Cainiao
DPD
Evri
PostNL
GLS
SF Express
Aramex
Japan Post
Canada Post
Infrastructure

Carrier data without the carrier chaos.

Trace turns fragmented logistics signals into a single, developer-friendly API response.

Normalized tracking data

Convert fragmented carrier updates into consistent statuses, locations, timestamps, and customer-ready event copy.

80+ carrier catalog

Auto-detect common domestic, premium, and dropshipping carriers from tracking number patterns.

Resilient lookup network

Multiple tracking sources are checked behind the scenes to improve coverage when carrier pages are incomplete.

Fast repeat lookups

Fresh lookups are cached for 30 minutes so repeated status checks stay fast and cost-aware.

Copy, paste, ship

A small API surface for a messy logistics world.

The happy path is deliberate: read docs, create an account, copy a key, test tracking, then verify your webhook.

1. Track
curl https://api.traceapi.dev/v1/track \
  -H "Authorization: Bearer $TRACE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tracking_number":"YT2412345678"}'

# Returns carrier, status, events, cache state and request id.
2. Node.js
const tracking = await fetch("https://api.traceapi.dev/v1/track", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.TRACE_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ tracking_number: order.trackingNumber })
}).then((res) => res.json());

console.log(tracking.status, tracking.events.at(-1));
3. Webhook
{
  "event_type": "tracking.delivered",
  "tracking": {
    "tracking_number": "YT2412345678",
    "status": "delivered",
    "carrier": { "code": "yunexpress", "name": "YunExpress" },
    "last_event": "Delivered"
  }
}
4. Python
import os, requests

tracking = requests.post(
  "https://api.traceapi.dev/v1/track",
  headers={"Authorization": f"Bearer {os.environ['TRACE_API_KEY']}"},
  json={"tracking_number": "YT2412345678"},
).json()
SDKs

Integrate tonight.

A simple, elegant API so you can start tracking packages in minutes. It fits right into your code with snippets for your favorite programming languages.

PythonPOST /v1/track
import os, requests

tracking = requests.post(
  "https://api.traceapi.dev/v1/track",
  headers={"Authorization": f"Bearer {os.environ['TRACE_API_KEY']}"},
  json={"tracking_number": "YT2412345678"},
).json()

print(tracking["status"], tracking["events"][-1]["description"])
Pricing

Start free, scale by lookup volume.

Compare plans

Free

For prototypes and occasional tracking lookups.

$0

10 requests per minute

500 monthly lookups

Carrier auto-detection

JSON responses and webhooks

Start building

Startup

Popular

For growing stores and lightweight support workflows.

$29/mo

60 requests per minute

10,000 monthly lookups

Carrier auto-detection

JSON responses and webhooks

Start building

Business

For high-volume tracking pages and post-purchase products.

$99/mo

120 requests per minute

50,000 monthly lookups

Carrier auto-detection

JSON responses and webhooks

Start building

Enterprise

For platforms needing priority support, SLAs, and private routing.

$499/mo

300 requests per minute

Unlimited monthly lookups

Carrier auto-detection

JSON responses and webhooks

Start building

Ready in 30 seconds

Get a `trc_` key and make your first tracking call.

Create account