Integration overview
To get started:
- If you already use other Expedia Group APIs, access
https://services.expediapartnercentral.com/products/properties
in a browser and provide your API username and password credentials when prompted. - If you are a new partner, you must register with Expedia and obtain API credentials by submitting your request on this page. You can also obtain the rights to use a test property to run tests before going to production with a new integration.
You can review the Product API Swagger JSON file file, which enables you to build an integration to Expedia Group Product API quickly.
Integration project timeline
Integration overview
The Product API can be used to read (GET), create (POST), update partially (PATCH), or update fully (PUT) room types and rate plans and their settings.
The Product API returns an array of properties assigned to your account. Here is an example:
1{2 "entity": [3 {4 "resourceId": 12933870,5 "name": "EQC Hotel 81",6 "partnerCode": "12933870",7 "status": "Active",8 "currency": "USD",9 "address": {10 "addressLines": ["1244 Test Street"],11 "city": "Region Test",12 "state": "WA",13 "postalCode": "98004",14 "countryCode": "USA"15 },16 "distributionModels": ["ExpediaCollect", "HotelCollect"],17 "rateAcquisitionType": "SellLAR",18 "taxInclusive": false,19 "pricingModel": "OccupancyBasedPricing",20 "baseAllocationEnabled": false,21 "cancellationTime": "18:00",22 "timezone": "(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London",23 "reservationCutOff": {24 "time": "23:59",25 "day": "sameDay"26 },27 "allowedAgeCategories": ["Adult", "ChildAgeA", "Infant"]28 }29 ]30}
Then, you can retrieve room types. To find room types assigned to a specific property, add the property resource ID and /roomTypes to the URL:
https://services.expediapartnercentral.com/properties/12933870/roomTypes
By specifying the following Accept
request header, the v3 version for Room details
would be returned.
Accept: application/vnd.expedia.eps.product-v3+json
The result will be an array of active room types under this property and will do so using the latest version of the API. Here's an example:
1{2 "entity": [3 {4 "resourceId": 201357986,5 "partnerCode": "Executive Room",6 "name": {7 "value": "Executive Suite"8 },9 "status": "Active",10 "ageCategories": [11 {12 "category": "Adult",13 "minAge": 1814 },15 {16 "category": "Infant",17 "minAge": 018 }19 ],20 "bedrooms": [21 {22 "count": 2,23 "bedding": [24 {25 "option": [26 {27 "quantity": 1,28 "type": "Full Bed",29 "size": "Full"30 },31 {32 "quantity": 2,33 "type": "Bunk Bed",34 "size": "Twin"35 }36 ]37 }38 ]39 }40 ],41 "livingRooms": [42 {43 "count": 1,44 "bedding": [45 {46 "option": [47 {48 "quantity": 1,49 "type": "Queen Bed",50 "size": "Queen"51 }52 ]53 }54 ]55 }56 ],57 "maxOccupancy": {58 "total": 6,59 "adults": 6,60 "children": 561 },62 "smokingPreferences": ["Smoking", "Non-Smoking"],63 "_links": {64 "self": {65 "href": "https://services.expediapartnercentral.com/properties/12933870/roomTypes/201357986"66 }67 }68 }69 ]70}
You can then get to the rate plans of a room type. To find rate plans associated to a room type, add the room type resource ID and /roomTypes to the URL:
https://services.expediapartnercentral.com/properties/12933870/roomTypes/201357986/ratePlans
The result will be an array of active rate plans under this property and room type, as shown in this example:
1{2 "entity": [3 {4 "resourceId": 208502996,5 "name": "Non-Refundable",6 "rateAcquisitionType": "SellLAR",7 "distributionRules": [8 {9 "expediaId": "208502996",10 "partnerCode": "EQF",11 "distributionModel": "ExpediaCollect",12 "manageable": false,13 "compensation": {14 "percent": 0.1,15 "minAmount": 016 }17 },18 {19 "expediaId": "208502996A",20 "partnerCode": "EQFHC",21 "distributionModel": "HotelCollect",22 "manageable": true,23 "compensation": {24 "percent": 0.125 }26 }27 ],28 "status": "Active",29 "type": "Standalone",30 "pricingModel": "OccupancyBasedPricing",31 "taxInclusive": false,32 "depositRequired": false,33 "creationDateTime": "2016-09-22T05:52:47Z",34 "lastUpdateDateTime": "2016-09-22T05:52:47Z",35 "cancelPolicy": {36 "defaultPenalties": [37 {38 "deadline": 0,39 "perStayFee": "None",40 "amount": 041 }42 ]43 },44 "additionalGuestAmounts": [45 {46 "dateStart": "2016-07-08",47 "dateEnd": "2079-06-06",48 "ageCategory": "Adult",49 "amount": 4050 },51 {52 "dateStart": "2016-07-08",53 "dateEnd": "2079-06-06",54 "ageCategory": "ChildAgeA",55 "amount": 2056 }57 ],58 "serviceFeesPerStay": [59 {60 "isTaxable": false,61 "percent": 0.262 },63 {64 "isTaxable": true,65 "amountPerStay": 10.0,66 "percent": 0.067 }68 ],69 "minLOSDefault": 1,70 "maxLOSDefault": 28,71 "minAdvBookDays": 0,72 "maxAdvBookDays": 0,73 "bookDateStart": "2000-01-01",74 "bookDateEnd": "2022-09-18",75 "travelDateStart": "2012-09-18",76 "travelDateEnd": "2022-09-18",77 "mobileOnly": false,78 "_links": {79 "self": {80 "href": "https://services.expediapartnercentral.com/properties/12933870/roomTypes/201357986/ratePlans/208502996"81 }82 }83 },84 {85 "resourceId": 208503003,86 "name": "Expedia Package Rate",87 "rateAcquisitionType": "SellLAR",88 "distributionRules": [89 {90 "expediaId": "208503003",91 "partnerCode": "EQP",92 "distributionModel": "ExpediaCollect",93 "manageable": false,94 "compensation": {95 "percent": 0.1,96 "minAmount": 097 }98 },99 {100 "expediaId": "208503003A",101 "partnerCode": "EQPHC",102 "distributionModel": "HotelCollect",103 "manageable": true,104 "compensation": {105 "percent": 0.1106 }107 }108 ],109 "status": "Active",110 "type": "Standalone",111 "pricingModel": "OccupancyBasedPricing",112 "taxInclusive": false,113 "depositRequired": false,114 "creationDateTime": "2016-09-22T05:56:49Z",115 "lastUpdateDateTime": "2016-09-22T05:56:49Z",116 "cancelPolicy": {117 "defaultPenalties": [118 {119 "deadline": 0,120 "perStayFee": "None",121 "amount": 0122 }123 ]124 },125 "additionalGuestAmounts": [126 {127 "dateStart": "2016-07-08",128 "dateEnd": "2079-06-06",129 "ageCategory": "Adult",130 "amount": 40131 },132 {133 "dateStart": "2016-07-08",134 "dateEnd": "2079-06-06",135 "ageCategory": "ChildAgeA",136 "amount": 20137 }138 ],139 "minLOSDefault": 1,140 "maxLOSDefault": 28,141 "minAdvBookDays": 0,142 "maxAdvBookDays": 0,143 "bookDateStart": "2000-01-01",144 "bookDateEnd": "2022-09-18",145 "travelDateStart": "2012-09-18",146 "travelDateEnd": "2022-09-18",147 "mobileOnly": false,148 "_links": {149 "self": {150 "href": "https://services.expediapartnercentral.com/properties/12933870/roomTypes/201357986/ratePlans/208503003"151 }152 }153 }154 ]155}
Requirements
- JSON: The service will return JSON documents for read, create, and update requests, and accept JSON payloads for create and update requests.
- Secure HTTP with TLS 1.2 is required.Our API will not accept connections using SSL or TLS below v1.2 protocol.
- Use valid API login credentials in the HTTP header of the request.
- Be secured using basic authentication.
Steps to enable online Product API updates
- The partner submits a form to advise Expedia Group that you would like to adopt Product API (please note that an Expedia Group booking API together with a rates and inventory API must be in place prior to developing Product API).
- An Expedia Group Technical Relationship Manager contacts the partner to set priorities and determine partner needs.
- The Integration team and Expedia Group Connectivity Manager schedules a kick-off call, where partners meet the Integration team and review desired settings and address API questions, issues, and expectations.
- The partner develops Product API for reading, creating, and updating room types and rate plans.
- The partner ensures the Product API service sends updates to online room types and rate plans on Expedia Group points of sale for a test property.
- The partner works with the Integration team to test and validate the data and troubleshoot any issues.
More details are provided in the Development requirements below.
Integration testing
When ready to test, you will contact the Expedia Group Technical Relationship Manager assigned to your account for access to the guides and testing tools.
Testing for this API consists of self-tests using test properties in a live production environment. When the self-tests have been completed, forward the test plan to the Integration team for audit. Once the test plan passes review and the Technical Relationship Manager signs off, you will be Product API certified.
After launch
- You must continue to adhere to our License Agreement
- Monitor your Product API connection for any errors
- Report any errors received in any Product API response and how they have been resolved