DHL Tracking
by @idrs
Track DHL parcels in Germany via the dhl.de API. Use when a user asks to track a DHL package, check delivery status, monitor a shipment, or wants notificatio...
clawhub install dhl-trackingπ About This Skill
name: dhl-tracking description: Track DHL parcels in Germany via the dhl.de API. Use when a user asks to track a DHL package, check delivery status, monitor a shipment, or wants notifications about a DHL Sendungsnummer. Works with standard DHL parcel tracking numbers (00340...). No API key required.
DHL Tracking
Track DHL parcels via the dhl.de internal API endpoint using simple HTTP requests.
Important: Why this skill exists
DHL's tracking website (dhl.de/sendungsverfolgung) is a JavaScript SPA protected by Akamai Bot Manager. The SPA renders tracking data client-side after passing bot checks β headless browsers (even with stealth patches) fail due to TLS fingerprinting.
The solution: A simple curl to www.dhl.de/int-verfolgen/data/search with minimal headers returns full tracking JSON. No auth, no cookies, no JS needed.
Quick Usage
Bash (one-liner)
bash scripts/dhl_track.sh TRACKING_NUMBER
Python (formatted output)
python3 scripts/dhl_track.py TRACKING_NUMBER
Direct curl
curl -s 'https://www.dhl.de/int-verfolgen/data/search?piececode=TRACKING_NUMBER&language=de' \
-H 'Accept: application/json' -H 'User-Agent: Mozilla/5.0'
Response Structure
sendungen[0].sendungsdetails.sendungsverlauf:
.status β Current status text (German)
.fortschritt β Progress (0-5)
.maximalFortschritt β Always 5
.events[] β Array of {datum, status, ruecksendung}sendungen[0].sendungsdetails.zustellung:
.zustellzeitfensterVon/Bis β Delivery window
sendungen[0].sendungsdetails.istZugestellt β boolean
Progress values
Monitoring Pattern
To monitor a package and notify when close to delivery:
1. Run python3 scripts/dhl_track.py TRACKING_NUMBER periodically (cron, every 30 min)
2. Parse fortschritt from stderr JSON output
3. Notify user when fortschritt >= 4 (out for delivery)
What does NOT work (and why this skill exists)
web_fetch on dhl.de β only gets static HTML shell, no tracking data (JS SPA)nolp.dhl.de legacy endpoint β now also protected by Akamai (returns 500)api-eu.dhl.com) β requires API key registrationNotes
0034...)language=de (German) or language=en (English)Referer: https://www.dhl.de/ headerπ Tips & Best Practices
0034...)language=de (German) or language=en (English)Referer: https://www.dhl.de/ header