DHL Express Tracking API
Track DHL Express packages worldwide with WhereParcel's unified tracking API. International shipment tracking with real-time status updates and webhook notifications.
Quick Start
Track DHL Express 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": "intl.dhl",
"trackingNumber": "1234567890"
}]
}'DHL Express Tracking Number Formats
| Service | Format | Example |
|---|---|---|
| DHL Express | XXXX XXXX XX (10 digits) | 1234567890 |
| DHL eCommerce | JVGL + digits | JVGL0999999990 |
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: 'intl.dhl',
trackingNumber: '1234567890',
}],
}),
});
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': 'intl.dhl',
'trackingNumber': '1234567890',
}],
},
)
data = response.json()
print(data['trackingItems'][0]['status'])Real-Time Updates with Webhooks
Instead of polling, register a webhook to receive DHL Express 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: 'DHL Express tracking updates',
}),
});