OnTrac Tracking API
Track OnTrac packages with WhereParcel's unified tracking API. Regional carrier coverage for Western US states with real-time tracking and webhook notifications.
Quick Start
Track OnTrac packages with a single API call:
curl -X POST https://api.whereparcel.com/v2/track \
-H "Authorization: Bearer YOUR_API_KEY:YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{
"trackingItems": [{
"carrier": "us.ontrac",
"trackingNumber": "C11031500001879"
}]
}'OnTrac Tracking Number Formats
| Service | Format | Example |
|---|---|---|
| OnTrac Standard | C + digits (15 chars) | C11031500001879 |
Code Examples
JavaScript / Node.js
const response = await fetch('https://api.whereparcel.com/v2/track', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}:${SECRET_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
trackingItems: [{
carrier: 'us.ontrac',
trackingNumber: 'C11031500001879',
}],
}),
});
const data = await response.json();
console.log(data.trackingItems[0].status);
// → "in_transit", "delivered", etc.Python
import requests
response = requests.post(
'https://api.whereparcel.com/v2/track',
headers={
'Authorization': f'Bearer {API_KEY}:{SECRET_KEY}',
'Content-Type': 'application/json',
},
json={
'trackingItems': [{
'carrier': 'us.ontrac',
'trackingNumber': 'C11031500001879',
}],
},
)
data = response.json()
print(data['trackingItems'][0]['status'])Real-Time Updates with Webhooks
Instead of polling, register a webhook to receive OnTrac status updates automatically. Each tracking number counts as just 1 request — no matter how many status changes occur.
// Register a webhook endpoint
await fetch('https://api.whereparcel.com/v2/webhook-endpoints', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}:${SECRET_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://yourapp.com/webhooks/tracking',
description: 'OnTrac tracking updates',
}),
});