DPD Group APIdpdgroup.com ↗
Search DPD Pickup parcel shops by postcode or city, retrieve opening hours, shop services, country partners, and European network statistics via 4 endpoints.
What is the DPD Group API?
The DPD Group API provides 4 endpoints covering parcel shop discovery, location details, country partner listings, and network coverage statistics across Europe. The search_parcel_shops endpoint accepts a postcode or city name and returns shop names, addresses, GPS coordinates, distances, and types — letting you build location-aware shipping tools without manual lookups.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/550c71c5-fb01-404b-b951-b2182c1fccef/get_country_partners' \ -H 'X-API-Key: $PARSE_API_KEY'
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 dpdgroup-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.
from parse_apis.dpd_group_api import DPD, ShopType
dpd = DPD()
# Search for parcel shops near a Berlin postcode, filtering to stations only
for shop in dpd.parcelshops.search(query="10115", filter_type=ShopType.STATION):
print(shop.name, shop.distance, shop.type)
# Get detailed opening hours for each station
detail = shop.details(query="10115")
for hours in detail.opening_hours:
print(hours.day, hours.hours)
# List all DPD country partners
for partner in dpd.partners.list():
print(partner.region, partner.name, partner.url)
# Get network coverage statistics
stats = dpd.networks.get()
print(stats.coverage_countries, stats.europe_total_points, stats.germany_pickup_points)
Returns the complete list of DPD partner brands and their country-specific website URLs, organized by region (Africa, Americas, Asia, Europe). Each partner entry includes brand name, region, and clickable URL. The list is deduplicated by URL.
No input parameters required.
{
"type": "object",
"fields": {
"partners": "array of partner objects each with region, name, and url"
},
"sample": {
"data": {
"partners": [
{
"url": "http://www.dpd.com/za/",
"name": "DPD South Africa",
"region": "Africa"
},
{
"url": "https://www.dpd.com/ar",
"name": "DPD Argentina",
"region": "Americas"
},
{
"url": "https://www.dpd.com/de",
"name": "DPD Germany",
"region": "Europe"
},
{
"url": "https://www.dpd.com/cn/en/",
"name": "DPD China",
"region": "Asia"
}
]
},
"status": "success"
}
}About the DPD Group API
Parcel Shop Search and Details
The search_parcel_shops endpoint takes a query parameter (postcode or city, e.g. '10115' for Berlin) and an optional filter_type of 'parcelshop' or 'station'. Each result in the shops array includes a shop id, an index value, name, address, distance, coordinates, and type. The total_found integer tells you how many locations matched. To retrieve full details for a specific result, pass the same query and the two-digit shop_index (e.g. '01') to get_parcel_shop_details, which returns opening_hours as a day-by-day array, a services list, and the DPD location_id.
Partner Network and Coverage
get_country_partners returns a complete array of DPD partner brands organized by region — Africa, Americas, Asia, and Europe — with each entry including the brand name and its country-specific url. No parameters are required. get_parcelshop_network_stats similarly requires no inputs and returns three headline figures: coverage_countries, europe_total_points (combined parcel shops and lockers), and germany_pickup_points. These figures reflect DPD's self-reported network scale.
Data Shape and Coupling
Shop details in get_parcel_shop_details depend on the shop_index produced by a prior search_parcel_shops call — the index is positional within those results, not a globally stable identifier. Store the location_id from the detail response if you need a persistent reference. The filter_type parameter in search is the only filtering dimension available; there is no radius, country-code, or service-type filter at the search stage.
The DPD Group API is a managed, monitored endpoint for dpdgroup.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dpdgroup.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 dpdgroup.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Embed a 'find nearest DPD Pickup point' widget in a checkout flow using coordinates from search_parcel_shops
- Display opening hours for a specific parcel shop alongside a shipment tracking page using get_parcel_shop_details
- Build a coverage map of DPD's European network using the europe_total_points figure from get_parcelshop_network_stats
- Populate a country-selector UI with DPD partner brand links from get_country_partners
- Filter search results to lockers only by passing filter_type='station' for contactless drop-off flows
- Compare parcel shop density by city by querying multiple postcodes and aggregating total_found counts
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.