> ## Documentation Index
> Fetch the complete documentation index at: https://parabola.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect DHL to Parabola

> Enrich shipment tracking numbers with DHL Shipment Tracking API status, ETAs, and delivery details inside Parabola flows using a DHL Consumer Key.

## What is DHL?

DHL is a global logistics and shipping company that provides international and domestic delivery services for businesses and individuals. It specializes in express shipping, freight transportation, and supply chain management, with delivery service across more than 220 countries and territories. DHL is widely used by e-commerce businesses and enterprises for global shipping and fulfillment.

`This integration is currently in beta— additional functionality is available via API.`

## Enrich tracking from DHL

The **DHL Shipment Tracking API** is used to provide up-to-the-minute shipment status reports by retrieving tracking information for shipments, identifying DHL service providers, and verifying DHL delivery addresses.

DHL is a beta integration which requires a slightly more involved setup process than our native integrations. Following the guidance in this document should help even those without technical experience pull data from DHL. If you run into any questions, shoot our team an email at [support@parabola.io](mailto:support@parabola.io).

## Use Cases

| Use Case            | Description                                                                                                                                        |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| Track DHL Shipments | Generate status reports by retrieving tracking information for shipments, identifying DHL service providers, and verifying DHL delivery addresses. |

## 🤝 DHL | Integration configuration

<CardGroup>
  <Card title="DHL Reference docs:" icon="book-open" href="https://developer.dhl.com/api-reference/shipment-tracking#reference-docs-section" horizontal />

  <Card title="DHL Authentication doc links:" icon="lock" href="https://developer.dhl.com/api-reference/shipment-tracking#get-started-section/user-guide" horizontal />
</CardGroup>

### **Instructions**

<Steps>
  <Step>
    Click [My Apps](https://developer.dhl.com/user/apps) on the portal website.
  </Step>

  <Step>
    Click the **+ Add App** button.
  </Step>

  <Step>
    The "Add App" form appears.
  </Step>

  <Step>
    Complete the Add App form.
  </Step>

  <Step>
    You can select the APIs you want to access.
  </Step>

  <Step>
    When you have completed the form, click the **Add App** button.
  </Step>

  <Step>
    From the [My Apps](https://developer.dhl.com/user/apps) screen, click on the name of your app. The Details screen appears.
  </Step>

  <Step>
    If you have access to more than one API, click the name of the relevant API.

    <Warning>
      **Note:** The APIs are listed under the **Credentials** section.
    </Warning>
  </Step>

  <Step>
    Click the **Show** link below the asterisk that is hiding the **Consumer Key**\*.\*
  </Step>
</Steps>

## 🔐 Parabola | Authentication configuration

<Steps>
  <Step>
    Add an **Enrich tracking from DHL** step template to your canvas.
  </Step>

  <Step>
    Click into the **Enrich with API: DHL Tracking** step to configure your authentication.
  </Step>

  <Step>
    Under the Authentication Type, select **None**.
  </Step>

  <Step>
    Click into the **Request Settings** to configure your request using the format below:
  </Step>
</Steps>

### **Request Headers**

| Header Key    | Header Value    |
| ------------- | --------------- |
| `DHL-API-Key` | `Consumer Key>` |

### **Example Screenshot**

<Frame>
  <img src="https://mintcdn.com/parabola-7119dfb0/ys4QOOfdGMDSijLO/images/integration/image-24.png?fit=max&auto=format&n=ys4QOOfdGMDSijLO&q=85&s=341b2a1fad0f6e8f8a65ed7f24147261" alt="Enrich with API DHL Tracking step configured with DHL-API-Key header" width="1174" height="1294" data-path="images/integration/image-24.png" />
</Frame>

## 🌐 DHL | Sample API Requests

### **Track DHL Shipment Statuses by tracking number**

Get started with [this template](https://parabola.io/api/clipboard/3a782f2a-7044-49ad-af2b-04abf38dd618/copy_to_flow?name=Track+DHL+shipment+statuses+by+tracking+number).

**Test URL**

`https://api-test.dhl.com/track/`

**Production URL**

`https://api-eu.dhl.com/track/`

<Steps>
  <Step>
    Add a **Use sample data** step to your flow. You can also import a dataset with tracking numbers into your flow. (Pull from Excel File, Pull from Google Drive, Pull from API, Use [sample data](/product/integration/sample-data), etc.)

    <Tip>
      **Tip:**

      When using your own data, use the [Edit columns](/product/transform/edit-columns) step to rename the tracking column in your source data to **Tracking Number**.
    </Tip>

    Connect it to the **Enrich with API: DHL Tracking** step.
  </Step>

  <Step>
    Under **Authentication Type**, select **None.**
  </Step>

  <Step>
    Click into the **Request Settings** to configure your request using the format below:
  </Step>
</Steps>

### **API Endpoint URL**

| Field              | Value                                                                     |
| ------------------ | ------------------------------------------------------------------------- |
| `Method`           | `GET`                                                                     |
| `API Endpoint URL` | `https://api-eu.dhl.com/track/shipments?trackingNumber={Tracking Number}` |

<Tip>
  **Tip:** The **Enrich with API** step makes dynamic requests for each row in the table by inserting the tracking number in the **API Endpoint URL**.

  The example above assumes, there is a **Tracking Number** column and is referenced using curly brackets: *`{Tracking Number}`*\
  Enclose your column header containing tracking numbers with curly brackets to dynamically reference the tracking numbers in your table.
</Tip>

### **Request Headers**

| Header Key    | Header Value    |
| ------------- | --------------- |
| `DHL-API-Key` | `Consumer Key>` |

<Steps>
  <Step>
    Click **Refresh data** to display the results.
  </Step>
</Steps>

### **Example Screenshot**

<Frame>
  <img src="https://mintcdn.com/parabola-7119dfb0/x86gEMXTyyU-kXsw/images/integration/image-25.png?fit=max&auto=format&n=x86gEMXTyyU-kXsw&q=85&s=d100c95a1bce3988449b43a6365b5c5a" alt="Enrich with API results showing DHL tracking data appended to each row" width="782" height="868" data-path="images/integration/image-25.png" />
</Frame>

## 📣 Callouts

<Warning>
  **Note:** Rate limits protect the DHL infrastructure from suspicious requests that exceed defined thresholds.

  When you first request access to the API, you will get the initial service level which allows **250 calls per day** with a maximum of **1 call every 5 seconds**.

  Additional rate limits are available and they are granted according to your specific use case. If you would like to request for additional limits, please proceed with the following steps:

  <Steps>
    <Step>
      Create an app as described under the [Get Access](https://developer.dhl.com/api-reference/shipment-tracking#get-started-section/user-guide%25get-access) section.
    </Step>

    <Step>
      Click [My Apps](https://developer.dhl.com/user/apps) on the portal website.
    </Step>

    <Step>
      Click on the App you created.
    </Step>

    <Step>
      Scroll down to the APIs list and click on the "Request Upgrade" button.
    </Step>
  </Steps>
</Warning>

<Frame>
  <img src="https://mintcdn.com/parabola-7119dfb0/x86gEMXTyyU-kXsw/images/integration/image-26.png?fit=max&auto=format&n=x86gEMXTyyU-kXsw&q=85&s=de86b7d19a8c50b80ef7ecb53b8b5751" alt="DHL developer portal Request Upgrade button for higher rate limits" width="853" height="343" data-path="images/integration/image-26.png" />
</Frame>
