Discover/DHL API
live

DHL APIcareers.dhl.com

Search DHL Group's global careers portal via API. Retrieve job listings with title, location, category, career level, skills, and apply URL across 2 endpoints.

Endpoint health
verified 3d ago
search_relevant_jobs
search_jobs
2/2 passing latest checkself-healing
Endpoints
2
Updated
26d ago

What is the DHL API?

The DHL Careers API provides access to job listings from DHL Group's global careers portal across 2 endpoints. The search_jobs endpoint lets you query by keyword with pagination and returns up to 14 fields per listing including title, location, category, career level, a description teaser, skills, and a direct apply URL. A second endpoint, search_relevant_jobs, supports multi-query searches with title-pattern filtering and deduplication.

Try it
Page number (1-based)
Search keywords (e.g., 'Marketing', 'Analytics', 'E-Commerce')
Number of results per page (max 100)
api.parse.bot/scraper/7cf237b1-8b1d-42d5-ba7c-9a25be343304/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/7cf237b1-8b1d-42d5-ba7c-9a25be343304/search_jobs?page=1&keywords=Marketing&page_size=10' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace careers-dhl-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: DHL Careers Job Search — bounded, re-runnable; every call capped."""
from parse_apis.dhl_careers_job_search_api import DHLCareers, InvalidPage

client = DHLCareers()

# Search for marketing jobs — limit caps TOTAL items fetched across pages.
for job in client.jobs.search(keywords="Marketing", limit=5):
    print(job.title, job.location, job.career_level)

# Drill-down: take ONE item with .first(), then inspect its fields.
job = client.jobs.search(keywords="Analytics", limit=1).first()
if job:
    print(job.title, job.country, job.posted_date)
    print("Skills:", job.skills)
    print("Apply:", job.apply_url)

# Multi-keyword filtered search — find software engineering roles.
for match in client.jobs.search_relevant(
    search_keywords="Software Engineer|Backend Developer",
    title_patterns="software engineer|backend",
    max_results=10,
    limit=3,
):
    print(match.title, match.city, match.country)

# Typed error handling: catch invalid page input.
try:
    client.jobs.search(keywords="test", limit=1).first()
except InvalidPage as exc:
    print(f"Invalid input: {exc}")

print("exercised: jobs.search / jobs.search_relevant / InvalidPage catch")
All endpoints · 2 totalmissing one? ·

Search for jobs on DHL careers by keyword with pagination. Returns job listings including title, location, category, career level, description teaser, skills, and apply URL. Paginates via integer page number; each page returns up to page_size results. An empty keywords value returns all jobs.

Input
ParamTypeDescription
pageintegerPage number (1-based)
keywordsstringSearch keywords (e.g., 'Marketing', 'Analytics', 'E-Commerce')
page_sizeintegerNumber of results per page (max 100)
Response
{
  "type": "object",
  "fields": {
    "jobs": "array of job objects with fields: job_id, title, location, city, state, country, city_state_country, category, career_level, work_hours, posted_date, date_created, description_teaser, apply_url, multi_location, multi_category, is_multi_location, badge, req_id, skills",
    "page": "integer current page number",
    "page_size": "integer results per page",
    "results_count": "integer number of jobs returned on this page",
    "total_results": "integer total number of matching jobs"
  },
  "sample": {
    "data": {
      "jobs": [
        {
          "city": "Morris Plains",
          "badge": "",
          "state": "New Jersey",
          "title": "CryoPDP Dir Business Cust Dev",
          "job_id": "11013028",
          "req_id": "11013028",
          "skills": [
            "business development strategy",
            "pharmaceutical logistics",
            "regulatory compliance"
          ],
          "country": "Vereinigte Staaten von Amerika",
          "category": "Vertrieb & Unternehmensentwicklung",
          "location": "Morris Plains, New Jersey, 07950",
          "apply_url": "https://cf-apply.jobappnetwork.com/apply/c_dhl/l_en/CryoPDP-Dir-Business-Cust-Dev-USO-job-Morris-Plains-NJ-US-11013028.html",
          "work_hours": "Vollzeit",
          "posted_date": "2026-05-15T00:00:00.000+0000",
          "career_level": "Manager",
          "date_created": "2026-05-12T18:51:55.481+0000",
          "multi_category": [
            "Vertrieb & Unternehmensentwicklung"
          ],
          "multi_location": [
            "Morris Plains, New Jersey, 07950"
          ],
          "is_multi_location": true,
          "city_state_country": "Morris Plains, New Jersey, Vereinigte Staaten von Amerika",
          "description_teaser": "As a leadership position, this role requires a flexible schedule..."
        }
      ],
      "page": 1,
      "page_size": 10,
      "results_count": 10,
      "total_results": 175
    },
    "status": "success"
  }
}

About the DHL API

What the API Returns

Both endpoints return job objects from DHL Group's careers portal. Each job includes job_id, title, location, city, state, country, city_state_country, category, career_level, and work_ type, along with a description teaser, skills list, and apply URL. The search_jobs endpoint also surfaces pagination metadata: page, page_size, results_count, and total_results, so you can walk through large result sets.

Searching and Filtering

search_jobs accepts a keywords string (e.g., 'Analytics' or 'E-Commerce'), an integer page (1-based), and a page_size up to 100. Passing an empty keywords value returns all available listings. search_relevant_jobs accepts a pipe-separated search_keywords string — each segment is issued as a separate query — and a pipe-separated title_patterns string for case-insensitive substring matching against job titles. Results are deduplicated across queries, and a max_results cap controls the total returned. The endpoint reports total_matching_jobs alongside the filtered job array.

Coverage and Scope

Listings are sourced from DHL Group's careers portal at careers.dhl.com, which covers roles across DHL's global business divisions including logistics, IT, finance, and operations. The data reflects what is publicly visible on the portal's search results, meaning only active, publicly posted positions are returned. No login-gated or draft listings are accessible.

Reliability & maintenanceVerified

The DHL API is a managed, monitored endpoint for careers.dhl.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when careers.dhl.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official careers.dhl.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a job alert tool that monitors DHL openings by keyword such as 'Data Engineer' or 'Supply Chain'
  • Aggregate DHL job postings by country or city using the country and city_state_country fields for geographic analysis
  • Filter postings by career_level to surface entry-level or senior roles for targeted recruitment pipelines
  • Use search_relevant_jobs with title_patterns to track how many roles matching 'Software Engineer' are open across all DHL divisions
  • Populate an internal job board with DHL listings deduplicated across multiple keyword searches
  • Extract skills fields from job objects to analyze in-demand competencies across DHL's tech and logistics roles
  • Paginate through all DHL listings using search_jobs with an empty keywords value to build a complete snapshot of current openings
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does DHL Group offer an official public developer API for its careers portal?+
DHL does not publish an official public API for careers.dhl.com. The Parse API is the structured way to query job listings from that portal programmatically.
What does search_relevant_jobs return that search_jobs doesn't?+
search_relevant_jobs runs multiple keyword queries in a single call using a pipe-separated search_keywords string, deduplicates results across those queries, and filters the combined result set to only jobs whose titles contain substrings from the pipe-separated title_patterns parameter. It returns total_matching_jobs rather than pagination metadata. search_jobs is better suited for simple paginated browsing; search_relevant_jobs is better for targeted role-type surveillance across many queries.
Can I filter jobs by country or location directly in the API?+
There is no dedicated location filter parameter on either endpoint. Location data — including city, state, country, and city_state_country — is returned on each job object, so you can filter client-side after retrieving results. You can fork this API on Parse and revise it to add a server-side location filter parameter.
Does the API return job application status or candidate data?+
No. The API covers publicly visible job listing data only: titles, locations, categories, career levels, description teasers, skills, and apply URLs. Candidate profiles, application statuses, and recruiter data are not exposed. You can fork this API on Parse and revise it to add any endpoint covering adjacent public portal data.
How fresh is the job listing data?+
The API reflects the active listings currently published on careers.dhl.com. Closed or expired positions are not included. There is no posted_date or expiry_date field in the current response schema, so recency of individual listings cannot be determined from the response alone.
Page content last updated . Spec covers 2 endpoints from careers.dhl.com.
Related APIs in JobsSee all →
jobs.vodafone.com API
Search and explore current Vodafone job openings, view detailed position information, discover similar roles, and gain insights about career opportunities across the company. Find the total number of available jobs and get relevant data to support your job search and career planning at Vodafone.
apply.careers.microsoft.com API
Search Microsoft job openings by keywords and location, then view detailed information about positions including job descriptions and required qualifications. Easily browse available roles across Microsoft with filtering and pagination to find opportunities that match your career goals.
dhl.com API
Track DHL shipments worldwide by entering a tracking number to retrieve real-time status updates, delivery location details, product information, and a complete history of all shipment events. Monitor packages from origin to destination with comprehensive tracking data.
amazon.jobs API
Search and browse Amazon job openings by keywords, location, and category, then view detailed information about specific positions. Filter results across multiple job categories and locations with easy pagination.
totaljobs.com API
Search and browse job listings from across the UK on TotalJobs, then access detailed information about specific positions including requirements, salary, and application details. Quickly compare opportunities and find roles that match your criteria.
cvshealth.com API
Search and apply for CVS Health job openings across multiple categories, locations, and roles. Filter positions by keyword, category, or location to find relevant opportunities and get direct links to submit your application.
cv.lv API
Search for job listings on CV.lv and access detailed job descriptions, categories, locations, and information about top employers. Find the right opportunity by browsing available positions across different industries and regions.
Workday Jobs API
Search and retrieve job postings and detailed descriptions from any company's Workday career site. Find open positions across all organizations using Workday's hiring platform and access complete job details in one place.