swagger: '2.0' info: version: "1.4.0" title: DHL description: >- The DHL Location Finder API provides Service Point locations of Deutsche Post DHL Group. This service is also known as pick up and drop off (PUDO). Detailed documentation and release notes are available at https://developer.dhl/api-reference/location-finder. host: api.dhl.com basePath: /location-finder/v1 schemes: - https securityDefinitions: "API Key": type: apiKey in: header name: DHL-API-Key security: - "API Key": [] tags: - name: locations description: 'Retrieve information about DHL Service Point locations' paths: '/find-by-address': x-summary: DHL Service Point locations found by address get: summary: Search for DHL Service Point locations by address. operationId: findByAddress description: >- This method will find DHL locations based on an address by first converting the address to a reference point (latitude, longitude) and then finding locations near that point. To convert an address to a reference point, this API uses the ``Google Geocoding API Address``. To optimize results, besides ``countryCode`` you need to provide ``addressLocality`` and /or ``postalCode``. The more address fields you provide, the better results you may get. Please read Google Geocoding API Terms of Use: https://cloud.google.com/maps-platform/terms ``Limitations:`` Address fields are not filters. 3rd party Geocoding API hence limited control over results. tags: - locations produces: - application/json parameters: - $ref: '#/parameters/countryCode' - $ref: '#/parameters/addressLocality' - $ref: '#/parameters/postalCode' - $ref: '#/parameters/streetAddress' - $ref: '#/parameters/providerType' - $ref: '#/parameters/locationType' - $ref: '#/parameters/serviceType' - $ref: '#/parameters/radius' - $ref: '#/parameters/limit' responses: '200': description: >- List of DHL Service Point locations. schema: $ref: '#/definitions/supermodelIoLogisticsPUDOLocations' '400': description: "Bad request, for example invalid location type, service type or country." headers: Content-Type: type: string default: application/problem+json schema: type: object allOf: - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' example: status: 400 title: 'Unknown Service Type' detail: 'Provided serviceType xyz is not known.' # # '401': # description: "Unauthorized. Provided key is invalid for requested resource." # headers: # Content-Type: # type: string # default: application/problem+json # schema: # type: object # allOf: # - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # example: # status: 401 # title: 'Unauthorized' # detail: 'Invalid token' # # '500': # description: "Internal Server Error" # headers: # Content-Type: # type: string # default: application/problem+json # schema: # type: object # allOf: # - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # example: # status: 500 # title: 'Internal Server Error' # detail: 'The server encountered an unexpected condition which prevented it from fulfilling the request' # # '/find-by-geo': # x-summary: DHL Service Point locations found by geo coordinates # # get: # summary: Search for DHL Service Point locations by geo coordinates # operationId: findByGeo # # tags: # - locations # # produces: # - application/json # # parameters: # - $ref: '#/parameters/latitude' # - $ref: '#/parameters/longitude' # - $ref: '#/parameters/providerType' # - $ref: '#/parameters/locationType' # - $ref: '#/parameters/serviceType' # - $ref: '#/parameters/radius' # - $ref: '#/parameters/limit' # # responses: # '200': # description: >- # List of DHL Service Point locations. # schema: # $ref: '#/definitions/supermodelIoLogisticsPUDOLocations' # # '400': # description: >- # Bad request, for example invalid location type, service type or country. # headers: # Content-Type: # type: string # default: application/problem+json # schema: # type: object # allOf: # - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # example: # status: 400 # title: 'Unknown Service Type' # detail: 'Provided serviceType xyz is not known.' # # '401': # description: >- # Unauthorized. Provided key is invalid. # headers: # Content-Type: # type: string # default: application/problem+json # schema: # type: object # allOf: # - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # example: # status: 401 # title: 'Unauthorized' # detail: 'Invalid token' # # '500': # description: >- # Internal Server Error # headers: # Content-Type: # type: string # default: application/problem+json # schema: # type: object # allOf: # - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # example: # status: 500 # title: 'Internal Server Error' # detail: 'The server encountered an unexpected condition which prevented it from fulfilling the request' # # '/find-by-keyword-id': # x-summary: DHL Service Point locations found by keywordId, countryCode and postalCode # # get: # summary: Search for DHL Service Point locations by keywordId # # tags: # - locations # # produces: # - application/json # # parameters: # - $ref: '#/parameters/keywordId' # - $ref: '#/parameters/countryCode' # - name: postalCode # in: query # description: >- # Text specifying the postal code for an address. https://gs1.org/voc/postalCode # required: true # type: string # x-example: '53113' # # responses: # '200': # description: >- # Details of one DHL Service Point location. # schema: # $ref: '#/definitions/supermodelIoLogisticsPUDOLocation' # # '401': # description: >- # Unauthorized. Provided key is invalid for requested resource. # headers: # Content-Type: # type: string # default: application/problem+json # schema: # type: object # allOf: # - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # example: # status: 401 # title: 'Unauthorized' # detail: 'Invalid token' # # '404': # description: >- # DHL Service Point location not found. # headers: # Content-Type: # type: string # default: application/problem+json # schema: # type: object # allOf: # - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # example: # status: 404 # title: 'Location not found' # detail: 'Location with provided keyword ID could not be found.' # # '500': # description: >- # Internal Server Error # headers: # Content-Type: # type: string # default: application/problem+json # schema: # type: object # allOf: # - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # example: # status: 500 # title: 'Internal Server Error' # detail: 'The server encountered an unexpected condition which prevented it from fulfilling the request' # '/locations/{id}': # x-summary: One DHL Service Point location # parameters: # - $ref: '#/parameters/locationId' # # get: # summary: Retrieve one DHL Service Point location by its ID # # tags: # - locations # # produces: # - application/json # responses: # '200': # description: >- # Details of one DHL Service Point location. # schema: # $ref: '#/definitions/supermodelIoLogisticsPUDOLocation' # # '401': # description: >- # Unauthorized. Provided key is invalid for requested resource. # # headers: # Content-Type: # type: string # default: application/problem+json # schema: # $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # # '404': # description: >- # DHL Service Point location not found. # headers: # Content-Type: # type: string # default: application/problem+json # schema: # type: object # allOf: # - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # example: # status: 404 # title: 'Location not found' # detail: 'Location with provided ID could not be found.' # # '500': # description: >- # Internal Server Error # headers: # Content-Type: # type: string # default: application/problem+json # schema: # type: object # allOf: # - $ref: '#/definitions/supermodelIoLogisticsPUDOApiProblemDetail' # example: # status: 500 # title: 'Internal Server Error' # detail: 'The server encountered an unexpected condition which prevented it from fulfilling the request' parameters: providerType: name: providerType in: query description: >- This parameter allows to filter by DPDHL's internal Business Units. When this parameter is specified at least once per request, only locations known by that providerType (a.k.a Business Unit) will be returned. There may be locations with more than one providerType. The available providerTypes are: ``express`` (DHL Express Global), ``parcel`` (eCommerce Solutions Europe and Post & Parcel Germany) required: false type: string enum: - express - parcel keywordId: name: keywordId in: query description: >- Id belonging to keyword that builds the streetAddress for direct addressing to a service point or locker for pick up / drop off. required: true type: string x-example: '502' locationType: name: locationType in: query description: >- Type of the DHL Service Point location. This parameter can be added multiple times in each API request. The response will include only locations of the type that matches any of the requested ones. required: false type: string enum: - servicepoint - locker - postoffice - postbank serviceType: name: serviceType in: query description: >- Each location can offer more than one service. This parameter can be added multiple times in each API request. The response will include only locations with at least all of the serviceTypes requested. required: false type: string enum: - parcel:pick-up - parcel:drop-off - express:pick-up - express:drop-off - parcel:pick-up-registered - parcel:pick-up-unregistered - parcel:drop-off-unregistered - letter-service - postbank - cash-on-delivery - franking - cash-service - packaging-material - postident - age-verification - handicapped-access - parking - "express:drop-off-easy" - "express:drop-off-prelabeled" - "express:drop-off-account" latitude: name: latitude in: query description: >- Latitude required: true type: string x-example: '50.7169763' longitude: name: longitude in: query description: >- Longitude required: true type: string x-example: '7.1329916' countryCode: name: countryCode in: query description: >- A two-letter ISO 3166-1 alpha-2 code (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) specifying the country. https://gs1.org/voc/Country required: true type: string x-example: 'DE' postalCode: name: postalCode in: query description: >- Text specifying the postal code for an address. https://gs1.org/voc/postalCode required: false type: string x-example: '53113' addressLocality: name: addressLocality in: query description: >- Text specifying the name of the locality, for example a city. https://gs1.org/voc/addressLocality required: false type: string x-example: 'Bonn' streetAddress: name: streetAddress in: query description: >- The street address is expressed as free form text. The street address is printed on paper as the first lines below the name. For example, the name of the street and the number in the street, or the name of a building. https://www.gs1.org/voc/streetAddress required: false type: string x-example: 'Charles-de-Gaulle-Str. 20' radius: name: radius in: query description: >- Specifies the radius in meters around the provided location, to search within. Maximum radius: 25 000 meters. Default radius: 500 meters. required: false type: number default: 500 maximum: 25000 x-example: 2500 locationId: name: id in: path description: >- ID of the DHL Service Point location. required: true type: string x-example: '8007-401067103' limit: name: limit in: query description: >- Number specifying the maximum amount of locations included in the results. Maximum limit: 50 locations. Default limit: 15 locations. required: false type: number default: 15 maximum: 50 x-example: 20 definitions: supermodelIoLogisticsPUDOLocation: title: Location description: One DHL Service Point location type: object properties: url: type: string description: >- The `self` link relation - globally unique identifier of this DHL Service Point location. example: /locations/8003-4103535 location: type: object properties: ids: type: array description: >- One location can be known within different business units (providerTypes). They will be known under a unique ID within each business unit domain, as provided. items: type: object properties: locationId: type: string description: The ID as how the location is know within this business unit / provider. example: 8003-4103535 provider: type: string description: The business unit of the DHL Service Point location. example: parcel keyword: type: string description: >- Address to put on a label, to send a shipment to a service point or locker for pick up / drop off. For German locations, keyword and keywordId are placed as street name and house number, streetAddress is omitted on the label of a shipment. For locations outside of Germany, keyword and keywordId are placed in addition to streetAddress. keywordId: type: string description: >- Id belonging to keyword that together with the keywordId build up the streetAddress for direct addressing to a service point or locker for pick up / drop off. example: '443' type: type: string description: Type of the DHL Service Point location. enum: - servicepoint - locker - postoffice - postbank example: servicepoint name: type: string description: Name of the DHL Service Point location. distance: type: number description: Distance in meters (m) from the requested geographical coordinates. place: type: object properties: address: type: object properties: countryCode: type: string # $ref: >- # /definitions/supermodelIoLogisticsSupportingPlace/properties/address/properties/countryCode postalCode: type: string # $ref: >- #/definitions/supermodelIoLogisticsSupportingPlace/properties/address/properties/postalCode addressLocality: type: string # $ref: >- #/definitions/supermodelIoLogisticsSupportingPlace/properties/address/properties/addressLocality streetAddress: type: string # $ref: >- #/definitions/supermodelIoLogisticsSupportingPlace/properties/address/properties/streetAddress geo: type: object description: The geo coordinates of the DHL Service Point location. properties: latitude: type: number description: Latitude longitude: type: number description: Longitude serviceTypes: description: >- The list of services available at the DHL Service Point location. - parcel:pick-up - Consumers can pick up DHL Parcel shipments. This applies to last mile. - parcel:drop-off - Consumers can drop off DHL Parcel shipments. This applies to first mile. - express:pick-up - Consumers can pick up DHL Express shipments. This applies to last mile. - express:drop-off - Consumers can drop off DHL Express shipments. This applies to first mile. - parcel:pick-up-registered - Automated locker station for DHL Parcel pick-up for pre-registered consumers (e.g. Parcel Locker, Packstation, SwipBox, Lean Parcel Locker) - parcel:pick-up-unregistered - Automated locker station for DHL Parcel pick-up for unregistered consumers (e.g. Parcel Locker, Packstation, SwipBox, Lean Parcel Locker) - parcel:drop-off-unregistered - Automated locker station for DHL Parcel drop-off for unregistered consumers (e.g. Parcel Locker, Packstation, SwipBox, Lean Parcel Locker) - letter-service - Letter services are offered (e.g. Post Office offering). - postbank - Offering of services of the German financial institution Deutsche Postbank AG, a subsidiary of Deutsche Bank AG. The individual offering can be looked up at Deutsche Postbank AG. - cash-on-delivery - Offering of "cash on delivery". A shipment is only handed over to the recipient against payment. - franking - Offering of labels for franking. This does not include the product "Mobile Paketmarke". - cash-service - Cash service is offered via cash or card payment service. In Germany Giro, Maestro, Postcard and cash payment is supported. - packaging-material - Offering for packing material such as packages for parcels, envelopes for letters, paper, pencils, pens. - postident - Postident is a service to reliably verify the identity of a consumer. This service is commonly used for online bank account identity verification. - age-verification - Reliable verification of the customers age. This service is commonly used to verify that the consumer has reached a specific age for an online offering (e.g. 14 or 18 years). - handicapped-access - Disabled fair access. - parking - Parking area close by. type: array items: type: string enum: - 'parcel:pick-up' - 'parcel:drop-off' - 'express:pick-up' - 'express:drop-off' - 'parcel:pick-up-registered' - 'parcel:pick-up-unregistered' - 'parcel:drop-off-unregistered' - "letter-service" - "postbank" - "cash-on-delivery" - "franking" - "cash-service" - "packaging-material" - "postident" - "age-verification" - "handicapped-access" - "parking" - "express:drop-off-prelabeled" - "express:drop-off-easy" - "express:drop-off-account" averageCapacityDayOfWeek: description: >- Indicates the average capacity of the parcel locker on the listed day. If this information is not available, only an aggregated average capacity indication based on the last weeks will be provided as availableCapacity. type: array items: type: object properties: dayOfWeek: type: string description: The day of the week as defined at https://schema.org/DayOfWeek enum: - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Sunday capacity: $ref: '#/definitions/supermodelIoSchemaorgCapacity' availableCapacity: description: >- Fallback indication showing an aggregated average capacity indication based on the last weeks. This response is only returned when there is no daily average capacity indication provided for this parcel locker. $ref: '#/definitions/supermodelIoSchemaorgCapacity' openingHours: type: array description: >- List of the opening hours of the DHL Service Point location. http://supermodel.io/schemaorg/OpeningHoursSpecification. items: type: object properties: closes: type: string # $ref: '#/definitions/supermodelIoSchemaorgPropertiesCloses' opens: type: string # $ref: '#/definitions/supermodelIoSchemaorgPropertiesOpens' dayOfWeek: type: string # $ref: '#/definitions/supermodelIoSchemaorgPropertiesDayOfWeek' closurePeriods: type: array description: >- Periods where the DHL Service Point location is closed in the addition to opening hours. items: type: object properties: type: type: string description: Reason for the closure example: holiday fromDate: type: string # $ref: '#/definitions/supermodelIoLogisticsSupportingTimestamp' toDate: type: string # $ref: '#/definitions/supermodelIoLogisticsSupportingTimestamp' example: url: /locations/8003-4103535 location: ids: - locationId: 8003-4103535 providerType: parcel keyword: Postfiliale keywordId: '443' type: servicepoint name: B+B Tabakwaren place: address: countryCode: DE postalCode: '20095' addressLocality: Hamburg streetAddress: Mönckebergstr. 7 geo: latitude: '53.5512589' longitude: '10.0023976' openingHours: - opens: '09:00:00' closes: '19:00:00' dayOfWeek: 'http://schema.org/Monday' - opens: '09:00:00' closes: '19:00:00' dayOfWeek: 'http://schema.org/Tuesday' - opens: '09:00:00' closes: '19:00:00' dayOfWeek: 'http://schema.org/Wednesday' - opens: '09:00:00' closes: '19:00:00' dayOfWeek: 'http://schema.org/Thursday' - opens: '09:00:00' closes: '19:00:00' dayOfWeek: 'http://schema.org/Friday' - opens: '09:00:00' closes: '18:00:00' dayOfWeek: 'http://schema.org/Saturday' closurePeriods: [] serviceTypes: - 'parcel:drop-off' - 'parcel:pick-up' supermodelIoLogisticsPUDOLocations: title: Location Collection description: DHL Service Point location collection type: object properties: locations: type: array items: $ref: '#/definitions/supermodelIoLogisticsPUDOLocation' example: locations: - url: /locations/8003-4103535 location: ids: - locationId: 8003-4103535 providerType: parcel keyword: Postfiliale keywordId: '443' type: servicepoint name: B+B Tabakwaren distance: '16' place: address: countryCode: DE postalCode: '20095' addressLocality: Hamburg streetAddress: Mönckebergstr. 7 geo: latitude: '53.5512589' longitude: '10.0023976' openingHours: - opens: '09:00:00' closes: '19:00:00' dayOfWeek: 'http://schema.org/Monday' - opens: '09:00:00' closes: '19:00:00' dayOfWeek: 'http://schema.org/Tuesday' - opens: '09:00:00' closes: '19:00:00' dayOfWeek: 'http://schema.org/Wednesday' - opens: '09:00:00' closes: '19:00:00' dayOfWeek: 'http://schema.org/Thursday' - opens: '09:00:00' closes: '19:00:00' dayOfWeek: 'http://schema.org/Friday' - opens: '09:00:00' closes: '18:00:00' dayOfWeek: 'http://schema.org/Saturday' closurePeriods: [] serviceTypes: - 'parcel:drop-off' - 'parcel:pick-up' - url: /locations/8007-420095227 location: ids: - locationId: 8007-420095227 providerType: parcel keyword: DHL Packstation keywordId: '227' type: locker name: DHL Packstation 227 distance: '473' place: address: countryCode: DE postalCode: '20095' addressLocality: Hamburg streetAddress: Ballindamm 40 geo: latitude: '53.5516856' longitude: '9.9952905' openingHours: - opens: '05:30:00' closes: '23:00:00' dayOfWeek: 'http://schema.org/Monday' - opens: '05:30:00' closes: '23:00:00' dayOfWeek: 'http://schema.org/Tuesday' - opens: '05:30:00' closes: '23:00:00' dayOfWeek: 'http://schema.org/Wednesday' - opens: '05:30:00' closes: '23:00:00' dayOfWeek: 'http://schema.org/Thursday' - opens: '05:30:00' closes: '23:00:00' dayOfWeek: 'http://schema.org/Friday' - opens: '05:30:00' closes: '23:00:00' dayOfWeek: 'http://schema.org/Saturday' - opens: '05:30:00' closes: '23:00:00' dayOfWeek: 'http://schema.org/Sunday' closurePeriods: [] serviceTypes: - 'parcel:drop-off-unregistered' - 'parcel:pick-up-registered' averageCapacityDayOfWeek: - dayOfWeek: "Monday" capacity: "very-low" - dayOfWeek: "Tuesday" capacity: "low" - dayOfWeek: "Wednesday" capacity: "high" - dayOfWeek: "Thursday" capacity: "high" - dayOfWeek: "Friday" capacity: "low" - dayOfWeek: "Saturday" capacity: "very-low" - dayOfWeek: "Sunday" capacity: "very-low" supermodelIoLogisticsPUDOApiProblemDetail: title: Location Problem Detail description: >- Definition of RFC7807(https://tools.ietf.org/html/rfc7807) Problem Detail for HTTP APIs type: object properties: status: type: number title: type: string detail: type: string supermodelIoLogisticsSupportingPlace: title: Place description: 'Place model description. https://gs1.org/voc/Place' type: object properties: address: type: object properties: countryCode: type: string description: >- A short text string code (ISO 3166-1 alpha-2 country code) specifying the country. allOf: - $ref: '#/definitions/supermodelIoGs1PropertiesCountryCode' postalCode: type: string description: >- Text specifying the postal code for an address. https://gs1.org/voc/postalCode addressLocality: type: string description: >- Text specifying the name of the locality, for example a city. https://gs1.org/voc/addressLocality addressLocalityServicing: type: string description: >- A globally-recognised and defined operational area within which services are provided. streetAddress: type: string description: >- The street address expressed as free form text. The street address is printed on paper as the first lines below the name. For example, the name of the street and the number in the street or the name of a building. https://www.gs1.org/voc/streetAddress example: address: countryCode: NL postalCode: 1043 AG addressLocality: 'Oderweg 2, AMSTERDAM' supermodelIoGs1PropertiesCountryCode: title: Country Code type: string description: Code specifying the country for the address using ISO 3166-1. supermodelIoSchemaorgPropertiesCloses: title: closes description: The closing hour of the place or service on the given day(s) of the week. allOf: - $ref: '#/definitions/supermodelIoSchemaorgTime' supermodelIoSchemaorgTime: title: Time type: string description: >- A point in time recurring on multiple days in the form hh:mm:ss[Z|(+|-)hh:mm] (see XML schema for details). allOf: - $ref: '#/definitions/supermodelIoSchemaorgDataType' supermodelIoSchemaorgDataType: title: DataType description: 'The basic data types such as Integers, Strings, etc.' supermodelIoSchemaorgPropertiesOpens: title: opens description: The opening hour of the place or service on the given day(s) of the week. allOf: - $ref: '#/definitions/supermodelIoSchemaorgTime' supermodelIoSchemaorgPropertiesDayOfWeek: title: dayOfWeek description: The day of the week for which these opening hours are valid. type: string allOf: - $ref: '#/definitions/supermodelIoSchemaorgDayOfWeek' supermodelIoSchemaorgDayOfWeek: title: DayOfWeek type: string description: >- The day of the week, e.g. used to specify to which day the opening hours of an OpeningHoursSpecification refer.

Originally, URLs from GoodRelations were used (for Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday plus a special entry for PublicHolidays); these have now been integrated directly into schema.org. enum: - "http://schema.org/Wednesday" - "http://schema.org/Sunday" - "http://schema.org/PublicHolidays" - "http://schema.org/Monday" - "http://schema.org/Friday" - "http://schema.org/Tuesday" - "http://schema.org/Saturday" - "http://schema.org/Thursday" - "" - "Wednesday" - "Sunday" - "PublicHolidays" - "Monday" - "Friday" - "Tuesday" - "Saturday" - "Thursday" supermodelIoLogisticsSupportingTimestamp: title: Timestamp description: >- A date value in ISO 8601 format (`2017-06-21`) or a combination of date and time of day (`2017-06-21T14:07:17Z`) (see Chapter 5.4 of ISO 8601). allOf: - $ref: '#/definitions/supermodelIoSchemaorgDateTime' - $ref: '#/definitions/supermodelIoSchemaorgDate' example: '2018-03-02T07:53:47Z' supermodelIoSchemaorgDateTime: title: DateTime type: string description: >- A combination of date and time of day in the form [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm] (see Chapter 5.4 of ISO 8601). allOf: - $ref: '#/definitions/supermodelIoSchemaorgDataType' supermodelIoSchemaorgDate: title: Date type: string description: >- A date value in ISO 8601 date format. allOf: - $ref: '#/definitions/supermodelIoSchemaorgDataType' supermodelIoSchemaorgCapacity: title: Capacity type: string description: >- Information on the average availability of locker capacity (only available in Germany). enum: - high - low - very-low - unknown example: high