canonical: https://jentic.com/apis/dhl.com/dhl-shipment-tracking-unified-api

# DHL Shipment Tracking - Unified API

The DHL Unified Shipment Tracking API consolidates real-time tracking across every DHL division - Express, Parcel, eCommerce, Freight, and Supply Chain - behind a single GET /shipments endpoint. Given a tracking number, it returns current status, milestone events, the responsible service provider, origin and destination addresses, and estimated delivery dates. It is the canonical way to integrate DHL tracking without picking the right divisional API for each shipment.

## For AI agents

Look up real-time shipment status, milestone events, and estimated delivery dates for any DHL shipment across Express, Parcel, eCommerce, Freight, and Supply Chain through a single endpoint.

## Scope

Does not handle label creation, rate quotes, or pickup scheduling - use for DHL shipment tracking lookups only.

## Capabilities

- Look up shipment status by tracking number across all DHL service divisions
- Retrieve detailed milestone events and timestamps for a shipment journey
- Identify which DHL division or service provider is handling a given shipment
- Verify origin and destination address details captured at pickup
- Filter tracking results by language, service, origin country, and destination country
- Detect delivery completion and proof-of-delivery information

## Use cases

### Customer Order Tracking Page

Power a branded order-tracking page on an e-commerce storefront without integrating each DHL division separately. A single call to GET /shipments returns the current status, a milestone timeline, and the estimated delivery date, regardless of whether the underlying carrier is DHL Express, Parcel, or Freight. This collapses what used to be multiple integrations into one.

Example prompt: Fetch tracking events for tracking number 1234567890, render the timeline on the order page, and show the estimated delivery date

### Proactive Delivery Notifications

Trigger SMS or email notifications when a DHL shipment hits a particular milestone such as out-for-delivery or delivered. By polling the unified tracking endpoint and comparing the latest event against the previous state, an automation can fire alerts to customers without waiting for vendor-side webhooks. Useful for high-value shipments where customers expect proactive updates.

Example prompt: Poll tracking number 9876543210 every 30 minutes and send an SMS when the latest event status moves to delivered

### Logistics Reporting and Reconciliation

Reconcile shipped orders against DHL records by pulling the final status of every tracking number in a daily batch. The unified endpoint accepts a tracking number plus filters for service, origin country, and destination country, making it straightforward to identify shipments that are stuck, returned, or mis-routed. Operations teams use this to flag exceptions for manual review.

Example prompt: For each tracking number in yesterday's order batch, fetch the latest shipment status and flag any whose status is not delivered or transit

### AI Agent Customer-Service Assistant

A customer-service agent powered by an LLM can answer "Where is my package?" by calling the unified tracking endpoint through Jentic. The agent searches Jentic for "track a shipment", loads the input schema, and executes the call with the user's tracking number, then summarises the milestone history in natural language.

Example prompt: Given user tracking number 1234567890, call the DHL unified tracking endpoint, summarise the latest status and ETA, and offer to send updates when the status changes

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/shipments` | Retrieve tracking status and events for a shipment by tracking number |

## Key resources

- **Shipments** — Look up tracking status, milestone events, and address details for a DHL shipment by tracking number

## Why Jentic

- **Setup:** Wiring the DHL Shipment Tracking Unified API by hand means setting the DHL-API-Key header against the EU tracking host and handling the query parameters for the shipments lookup yourself. Through Jentic you install once, import the DHL Shipment Tracking Unified API from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** The API exposes a single read-only shipments lookup, so the agent can only track shipments and nothing else, and you decide whether to give it that one operation. It cannot create labels, quote rates, or schedule pickups.
- **Credential handling:** Your DHL API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'track a shipment', and Jentic returns the DHL tracking operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **DHL Unified Shipment Tracking API** — Earlier-named variant of the same DHL unified tracking surface
- **DHL eCommerce (Netherlands) API** — Label creation and shipment options for DHL Parcel in the Netherlands

## FAQ

### What authentication does the DHL Shipment Tracking - Unified API use?

The API uses an API key passed in the DHL-API-Key request header. Through Jentic the key is stored in the encrypted vault and injected at execution time, so it never enters the agent's prompt context.

### Can I track shipments from any DHL division with one call?

Yes. GET /shipments accepts a tracking number across DHL Express, Parcel, eCommerce, Freight, and Supply Chain. The response identifies which service provider is handling the shipment and returns a unified status and event timeline.

### What are the rate limits for the DHL Shipment Tracking - Unified API?

DHL applies tier-based rate limits set when the API key is provisioned in the DHL Developer Portal. Free tier keys are limited to 250 requests per day; commercial tiers raise that ceiling. Check the developer portal for your specific allocation.

### How do I look up a tracking number through Jentic?

Run a Jentic search for "track a DHL shipment". Jentic returns the DHL unified tracking operation, you load the schema (it requires the trackingNumber query parameter), and execute. Optional filters include service, originCountryCode, and language.

### Does the API return proof-of-delivery information?

Yes, when DHL has captured it. The shipment response includes a delivered event with a timestamp, recipient signature reference, and address details for divisions that record proof of delivery.

### How do I install the Jentic SDK to call DHL tracking?

Run pip install jentic, set JENTIC_AGENT_API_KEY to your ak_* key, then use Jentic with SearchRequest, LoadRequest, and ExecutionRequest. Get started with Jentic One, the self-hosted execution layer.

### Can I limit what my agent is allowed to do with the DHL Shipment Tracking - Unified API?

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent may use, and this API exposes only a single read-only GET /shipments lookup. That means the agent can track shipments by tracking number and nothing more; it cannot create labels, quote rates, or schedule pickups. You also control whether the agent is granted that one operation and whether your stored DHL API key is injected at execution time.
