Welcome to ExpressTrack! This guide will help you start tracking packages across multiple carriers with our unified API. You’ll learn how to authenticate, create trackings, and receive real-time updates.
Prerequisites
- An ExpressTrack account (sign up at expresstrack.net)
 - Your API key (find it in your dashboard)
 - Basic knowledge of REST APIs
 
Quick Start Example
Here’s a complete example of tracking a package using our API:
# Replace YOUR_API_KEY with your actual API key
curl -X POST "https://api.expresstrack.net/trackings" 
  -H "Authorization: Bearer YOUR_API_KEY" 
  -H "Content-Type: application/json" 
  -d '{
    "tracking_number": "1Z999AA1234567890",
    "carrier_code": "ups"
  }'
Authentication
All API requests require an API key. Include it in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Core Concepts
Tracking a Package
- 
Create a Tracking
POST /trackings{ "tracking_number": "1Z999AA1234567890", "carrier_code": "ups", // Optional - we can auto-detect the carrier "metadata": { // Optional - add your own reference data "order_id": "ORD123" } } - 
Check Tracking Status
GET /trackings/{tracking_id} 
Understanding Tracking Statuses
Every tracking will have one of these statuses:
- Pending – Just created, not yet tracked
 - InfoReceived – Carrier has shipping info
 - InTransit – Package is moving
 - OutForDelivery – Will be delivered today
 - Delivered – Successfully delivered
 - FailedAttempt – Delivery was attempted but failed
 - Exception – Problem occurred (delay, damage, etc.)
 - AvailableForPickup – Ready for pickup at location
 - Expired – No updates for 30+ days
 
Real-time Updates
Setting Up Webhooks
- 
Register your webhook endpoint:
POST /webhooks{ "url": "https://your-domain.com/tracking-updates", "secret": "your-webhook-secret" // Optional but recommended } - 
We’ll POST updates to your URL when tracking status changes:
{ "event": "tracking_update", "tracking": { "id": "track_123abc", "tracking_number": "1Z999AA1234567890", "status": "Delivered", "events": [ { "timestamp": "2024-03-15T14:30:00Z", "status": "Delivered", "location": "San Francisco, CA", "message": "Package delivered to recipient" } ] } } 
Next Steps
- Explore our complete API reference
 - Check out our SDK examples
 - View supported carriers
 - Join our developer community
 
Rate Limits and Quotas
- Free tier: 100 trackings/month
 - Pay-as-you-go: Starting at $0.10 per tracking
 - Enterprise: Contact us for volume pricing
 - API rate limit: 60 requests per minute
 
Need Help?
- Developer Support: GitHub Discussions
 - Email: [email protected]
 - Documentation: docs.expresstrack.net
 - Status page: status.expresstrack.net