Product API
ReferenceProduct API

Resources and endpoints

Expedia Group’s APIs live under the https://services.expediapartnercentral.com/ domain. API users should make sure to only ever use the fully qualified domain name in your requests to Expedia Group’s APIs, and never try to guess/hardcode the IP this address resolves to. In order to provide a robust, highly available and scalable solution, Expedia Group may change the IP address being used without notice.

  • To access property information: /products/properties/{propertyResourceId}. Property resource ID (Expedia Group ID) is optional. If omitted, the list of active properties assigned to the account will be returned.
  • To access room types in the context of a property: /properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}. Room type resource ID (room type ID) is optional. If omitted, the list of active room types for the property will be returned.
  • To access rate plans, which belong to a room type: /properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}/ratePlans/{ratePlanResourceId}. Rate plan resource ID (rate plan ID) is optional. If omitted, the list of active rate plans for that room type will be returned.

Expedia Group chose to version this API by making use of different content types per version. This gives Expedia Group the flexibility to version each resource (property, room type, rate plan) independently.

Starting with version 2, the Accept header is used to specify the version of the resource that is expected in the response. Although it is good practice to always specify it, the system will default to version 2 when not specified. For example:

Example of Accept header for version 2:

Accept: application/vnd.expedia.eps.product-v2+json

Example of Accept header for version 3:

Accept: application/vnd.expedia.eps.product-v3+json

When providing a body, as is the case for POST, PUT and PATCH requests, the Content-Type header must be specified to indicate the version of the specified content. Starting with version 3, both Accept and Content type headers are mandatory. It is also important that the Accept and Content-Type headers match.

Example for version 2:

Content-Type: application/vnd.expedia.eps.product-v2+json

Example for version 3:

Content-Type: application/vnd.expedia.eps.product-v3+json

Here is an overview of the resources and endpoints:

Resource

Supported operations

Production endpoint

Property

Read multiple properties (GET) (limited to a maximum of 200 at a time) belonging to the user credentials provided

GET https://services.expediapartnercentral.com/products/properties/

Property

Read a single property (GET)

GET https://services.expediapartnercentral.com/products/properties/{PropertyID}

Room type

Read multiple room types (GET) belonging to a single property

GET https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/

Room type

Read a single room type (GET)

GET https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}

Room type

Create a single room type (POST)

POST https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/

Room type

Update a single room type (PUT) in full overlay mode

PUT https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}

Room type

Update a single room type (PATCH) in partial update mode

PATCH https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}

Room type amenity

Get amenities for a single room type

GET https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}/amenities

Room type amenity

Set amenities for a room type (PUT) in full overlay mode

PUT https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}/amenities

Room type rate thresholds

Get rate thresholds for a single room type

GET https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}/rateThresholds

Rate plan

Read multiple rate plans belonging to a single room type (GET)

GET https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}/ratePlans/

Rate plan

Read a single rate plan (GET)

GET https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}/ratePlans/{ratePlanResourceId}

Rate plan

Create a single rate plan (POST)

POST https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}/ratePlans/

Rate plan

Update a single rate plan (PUT) in full overlay mode

PUT https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}/ratePlans/{ratePlanResourceId}

Rate plan

Update a single rate plan (PATCH) in partial update mode

PATCH https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}/ratePlans/{ratePlanResourceId}

Rate plan

Delete a single rate plan (DELETE)

DELETE https://services.expediapartnercentral.com/properties/{propertyResourceId}/roomTypes/{roomTypeResourceId}/ratePlans/{ratePlanResourceId}