Obtain API credentials from the DHL Express developer portal and authenticate using HTTP Basic Auth (username/password) on every request to https://express.api.dhl.com/mydhlapi
GET https://express.api.dhl.com/mydhlapi/products with origin/destination country codes, weight, and dimensions to retrieve available DHL Express service products and rates
Build a shipment request with shipper and recipient contact details, package content description, declared customs value, and the selected product code
POST the shipment request to https://express.api.dhl.com/mydhlapi/shipments to create the shipment and receive the waybill number and label data
Decode the base64-encoded label from the response documents array and render it for printing
Use the returned shipmentTrackingNumber to poll GET https://express.api.dhl.com/mydhlapi/shipments/{shipmentTrackingNumber}/tracking for status updates
Known gotchas
DHL Express MyDHL REST API uses HTTP Basic Auth per request, not OAuth bearer tokens; wrapping calls with an OAuth flow will result in 401 errors
International shipments must include a complete content array with itemDescription, quantity, unitPrice, and exportReasonType; missing fields cause customs clearance failures rather than API errors
Pickup booking is a separate call to POST /shipments with the pickup object; simply creating a shipment does not automatically schedule a courier collection
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp