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} |