openapi: 3.0.1
info:
title: Expedia Group EPS Deposit Bookings Shopping API
description: 'The EPS Deposit API manages the deposit policy for a property, offering operations to create/update, read and delete it. <br/><br/>To start experimenting, please use your existing EQC credentials and properties. We''ve also made the following test credentials available: EQCtest12933870 / ew67nk33 assigned to test property ID 12933870.'
contact:
name: Expedia Partner Services
url: https://expediaconnectivity.com/developer
email: eqcss@expedia.com
version: '1.0'
servers:
- url: https://services.expediapartnercentral.com/
security:
- Basic: []
tags:
- name: Shopping
description: The EPS shopping APIs provide you with access to live rates & availability.
paths:
/properties/availability:
get:
tags:
- Shopping
summary: Expedia Group Get property room rates and availability
description: 'Returns rates on available room types for specified properties (maximum of 250 properties per request). The response includes rate details such as promos, whether the rate is refundable, cancellation penalties and a full price breakdown to meet the price display requirements for your market.
_Note_: If there are no available rooms, the response will be an empty array.
* Multiple rooms of the same type may be requested by including multiple instances of the `occupancy` parameter.
* The `nightly` array includes each individual night''s charges. When the total price includes fees, charges, or adjustments that are not divided by night, these amounts will be included in the `stay` rate array, which details charges applied to the entire stay (each check-in).
'
operationId: getAvailability
parameters:
- name: Accept
in: header
description: 'Specifies the response format that the client would like to receive back. This must be `application/json`.
'
required: true
schema:
type: string
example: application/json
- name: Accept-Encoding
in: header
description: 'Specifies the response encoding that the client would like to receive back. This must be `gzip`.
'
required: true
schema:
type: string
example: gzip
- name: User-Agent
in: header
description: 'The `User-Agent` header string from the customer''s request, as captured by your integration. If you are building an application then the `User-Agent` value should be `{app name}/{app version}`.
'
required: true
schema:
type: string
example: TravelNow/3.30.112
- name: Customer-Ip
in: header
description: 'IP address of the customer, as captured by your integration.<br>
Ensure your integration passes the customer''s IP, not your own. This value helps determine their location and assign the correct payment gateway.<br>
Also used for fraud recovery and other important analytics.
'
schema:
type: string
- name: Customer-Session-Id
in: header
description: 'Insert your own unique value for each user session, beginning with the first API call.
Continue to pass the same value for each subsequent API call during the user''s session, using a new value for every new customer session.<br>
Including this value greatly eases EPS''s internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user''s session.
'
schema:
type: string
- name: Test
in: header
description: 'Shop calls have a test header that can be used to return set responses with the following keywords:<br>
* `standard`
* `service_unavailable`
* `unknown_internal_error`
'
schema:
type: string
enum:
- standard
- service_unavailable
- unknown_internal_error
- name: checkin
in: query
description: 'Check-in date, in ISO 8601 format (YYYY-MM-DD). This can be up to 365 days in the future. Some partner configurations may extend this up to 500 days.
'
required: true
schema:
type: string
example: '2024-08-01'
- name: checkout
in: query
description: 'Check-out date, in ISO 8601 format (YYYY-MM-DD). Total length of stay cannot exceed 28 nights or 365 nights depending on Vacation Rental configurations.
'
required: true
schema:
type: string
example: '2024-08-03'
- name: currency
in: query
description: 'Requested currency for the rates, in ISO 4217 format<br><br>
Currency Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/currency-options](https://developers.expediagroup.com/docs/rapid/resources/reference/currency-options)
'
required: true
schema:
type: string
example: USD
- name: country_code
in: query
description: 'The country code of the traveler''s point of sale, in ISO 3166-1 alpha-2 format. This should represent the country where the shopping transaction is taking place.<br>
For more information see: [https://www.iso.org/obp/ui/#search/code/](https://www.iso.org/obp/ui/#search/code/)
'
required: true
schema:
type: string
example: US
- name: language
in: query
description: 'Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/)<br>
Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options)
'
required: true
schema:
type: string
example: en-US
- name: occupancy
in: query
description: 'Defines the requested occupancy for a single room. Each room must have at least 1 adult occupant.<br>
Format: `numberOfAdults[-firstChildAge[,nextChildAge]]`<br>
To request multiple rooms (of the same type), include one instance of occupancy for each room requested. Up to 8 rooms may be requested or booked at once.<br>
Examples:
* 2 adults, one 9-year-old and one 4-year-old would be represented by `occupancy=2-9,4`.<br>
* A multi-room request to lodge an additional 2 adults would be represented by `occupancy=2-9,4&occupancy=2`
'
required: true
style: form
explode: true
schema:
type: array
items:
type: string
example: 2
- name: property_id
in: query
description: 'The ID of the property you want to search for. You can provide 1 to 250 property_id parameters.
'
required: true
style: form
explode: true
schema:
type: array
items:
type: string
example:
- 20321
- name: rate_plan_count
in: query
description: 'The number of rates to return per property. The rates with the best value will be returned, e.g. a rate_plan_count=4 will return the best 4 rates, but the rates are not ordered from lowest to highest or vice versa in the response. Generally lowest rates will be prioritized.<br><br>
The value must be between 1 and 250.
'
required: true
schema:
type: number
example: 1
- name: sales_channel
in: query
description: 'You must provide the sales channel for the display of rates. EPS dynamically provides the best content for optimal conversion on each sales channel. If you have a sales channel that is not currently supported in this list, please contact our support team.<br>
* `website` - Standard website accessed from the customer''s computer
* `agent_tool` - Your own agent tool used by your call center or retail store agent
* `mobile_app` - An application installed on a phone or tablet device
* `mobile_web` - A web browser application on a phone or tablet device
* `meta` - Rates will be passed to and displayed on a 3rd party comparison website
* `cache` - Rates will be used to populate a local cache
'
required: true
schema:
type: string
example: website
- name: sales_environment
in: query
description: 'You must provide the sales environment in which rates will be sold. EPS dynamically provides the best content for optimal conversion. If you have a sales environment that is not currently supported in this list, please contact our support team.<br>
* `hotel_package` - Use when selling the hotel with a transport product, e.g. flight & hotel.
* `hotel_only` - Use when selling the hotel as an individual product.
* `loyalty` - Use when you are selling the hotel as part of a loyalty program and the price is converted to points.
'
required: true
schema:
type: string
example: hotel_only
- name: amenity_category
in: query
description: 'Single amenity category. Send multiple instances of this parameter to request rates that match multiple amenity categories.<br>
See the Amenity Categories section of the
[Content Reference Lists](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists)
for a list of values.
'
style: form
explode: true
schema:
type: array
items:
type: string
example:
- swimming_pool
- name: exclusion
in: query
description: 'Single exclusion type. Send multiple instances of this parameter to request multiple exclusions.<br>
* `refundable_damage_deposit` - Excludes rates with refundable damage deposits from the response.
'
schema:
type: array
items:
type: string
enum:
- refundable_damage_deposit
example:
- refundable_damage_deposit
- name: filter
in: query
description: 'Single filter type. Send multiple instances of this parameter to request multiple filters.<br>
* `refundable` - Filters results to only show fully refundable rates.
* `expedia_collect` - Filters results to only show rates where payment is collected by Expedia at the time of booking. These properties can be eligible for payments via Expedia Affiliate Collect(EAC).
* `property_collect` - Filters results to only show rates where payment is collected by the property after booking. This can include rates that require a deposit by the property, dependent upon the deposit policies.
* `loyalty` - Filters results to only show rates that are eligible for loyalty points.
'
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- refundable
- expedia_collect
- property_collect
example:
- expedia_collect
- name: include
in: query
description: 'Modify the response by including types of responses that are not provided by default.<br>
* `unavailable_reason` - When a property is unavailable for an actionable reason, return a response with that reason - See [Unavailable Reason Codes](https://developers.expediagroup.com/docs/rapid/resources/reference/unavailable-reason-codes) for possible values.
* `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `room.rate.sale_scenario` section of the response.
* `rooms.rates.marketing_fee_incentives` - When a rate has a marketing fee incentive applied, the response will include the `marketing_fee_incentives` array if this flag is provided in the request.
'
schema:
type: array
items:
type: string
enum:
- unavailable_reason
- sale_scenario.mobile_promotion
- rooms.rates.marketing_fee_incentives
example: unavailable_reason
- name: rate_option
in: query
description: 'Request specific rate options for each property. Send multiple instances of this parameter to request multiple rate options.
Accepted values:<br>
* `member` - Return member rates for each property. This feature must be enabled and requires a user to be logged in to request these rates.
* `net_rates` - Return net rates for each property. This feature must be enabled to request these rates.
* `cross_sell` - Identify if the traffic is coming from a cross sell booking. Where the traveler has booked another service (flight, car, activities...) before hotel.
'
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- member
- net_rates
- cross_sell
- name: travel_purpose
in: query
description: 'This parameter is to specify the travel purpose of the booking. This may impact available rate plans, pricing, or tax calculations.
* `leisure`
* `business`
'
schema:
type: string
enum:
- leisure
- business
example: leisure
- name: billing_terms
in: query
description: 'This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately.
'
schema:
type: string
- name: payment_terms
in: query
description: 'This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately.
'
schema:
type: string
- name: partner_point_of_sale
in: query
description: 'This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately.
'
schema:
type: string
- name: platform_name
in: query
description: 'This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately.
'
schema:
type: string
responses:
'200':
description: OK
headers:
Rate-Limit-Day:
description: Reserved for future use. Optional header for request capacity per day.
schema:
type: number
Rate-Limit-Day-Remaining:
description: Optional header for the remaining capacity, as a percentage, for the daily time window.
schema:
type: number
Rate-Limit-Day-Reset:
description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets.
schema:
type: number
Rate-Limit-Minute:
description: Reserved for future use. Optional header for request capacity per minute.
schema:
type: number
Rate-Limit-Minute-Remaining:
description: Optional header for the remaining capacity, as a percentage, for the per minute time window.
schema:
type: number
Rate-Limit-Minute-Reset:
description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets.
schema:
type: number
Rate-Limit-Reduction-Status:
description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used.
schema:
type: string
Region:
$ref: '#/components/headers/Region'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Property'
examples:
Availability:
value:
- property_id: '19248'
status: available
rooms:
- id: 123abc
room_name: Fancy Queen Room
rates:
- id: 333abc
status: available
available_rooms: 12
refundable: true
member_deal_available: true
sale_scenario:
package: false
member: false
corporate: false
distribution: false
mobile_promotion: false
merchant_of_record: expedia
amenities:
'1234':
id: '1234'
name: Free Wireless Internet
links:
payment_options:
method: GET
href: /v3/properties/19248/payment-options?token=MY5S3j36cOcL
bed_groups:
'12345':
links:
price_check:
method: GET
href: /v3/properties/19248/rooms/abc123/rates/abc123?token=MY5S3j36cOcL
expires: '2019-03-05T07:23:14.000Z'
id: '12345'
description: 1 Queen Bed
configuration:
- type: Bed
size: Queen
quantity: 1
cancel_penalties:
- currency: USD
start: '2018-02-12T11:59:00.000-08:00'
end: '2018-02-12T11:59:00.000-08:00'
amount: '10.00'
nonrefundable_date_ranges:
- start: '2022-02-02'
end: '2022-02-02'
marketing_fee_incentives:
- source: property
start: '2022-02-02'
end: '2022-02-02'
occupancy_pricing:
'2':
nightly:
- - type: base_rate
value: '309.00'
currency: CAD
- type: tax_and_service_fee
value: '37.00'
currency: CAD
- - type: base_rate
value: '309.00'
currency: CAD
- type: tax_and_service_fee
value: '37.00'
currency: CAD
stay:
- type: extra_person_fee
value: '10.00'
currency: CAD
totals:
inclusive:
billable_currency:
value: '702.00'
currency: CAD
request_currency:
value: '530.00'
currency: USD
exclusive:
billable_currency:
value: '628.00'
currency: CAD
request_currency:
value: '475.00'
currency: USD
property_inclusive:
billable_currency:
value: '717.00'
currency: CAD
request_currency:
value: '539.00'
currency: USD
strikethrough:
billable_currency:
value: '650.00'
currency: CAD
request_currency:
value: '490.00'
currency: USD
property_inclusive_strikethrough:
billable_currency:
value: '750.00'
currency: CAD
request_currency:
value: '565.00'
currency: USD
marketing_fee:
billable_currency:
value: '15.00'
currency: CAD
request_currency:
value: '10.00'
currency: USD
gross_profit:
billable_currency:
value: '15.00'
currency: CAD
request_currency:
value: '10.00'
currency: USD
minimum_selling_price:
billable_currency:
value: '702.00'
currency: CAD
request_currency:
value: '530.00'
currency: USD
property_fees:
billable_currency:
value: '15.00'
currency: CAD
request_currency:
value: '9.00'
currency: USD
fees:
mandatory_fee:
billable_currency:
value: '5.00'
currency: CAD
request_currency:
value: '3.00'
currency: USD
resort_fee:
billable_currency:
value: '5.00'
currency: CAD
request_currency:
value: '3.00'
currency: USD
mandatory_tax:
billable_currency:
value: '5.00'
currency: CAD
request_currency:
value: '3.00'
currency: USD
1-7,10:
nightly:
- - type: base_rate
value: '309.00'
currency: CAD
- type: tax_and_service_fee
value: '37.00'
currency: CAD
- - type: base_rate
value: '309.00'
currency: CAD
- type: tax_and_service_fee
value: '37.00'
currency: CAD
stay:
- type: extra_person_fee
value: '10.00'
currency: CAD
totals:
inclusive:
billable_currency:
value: '702.00'
currency: CAD
request_currency:
value: '530.00'
currency: USD
exclusive:
billable_currency:
value: '628.00'
currency: CAD
request_currency:
value: '475.00'
currency: USD
strikethrough:
billable_currency:
value: '650.00'
currency: CAD
request_currency:
value: '490.00'
currency: USD
marketing_fee:
billable_currency:
value: '15.00'
currency: CAD
request_currency:
value: '10.00'
currency: USD
gross_profit:
billable_currency:
value: '15.00'
currency: CAD
request_currency:
value: '10.00'
currency: USD
minimum_selling_price:
billable_currency:
value: '702.00'
currency: CAD
request_currency:
value: '530.00'
currency: USD
property_fees:
billable_currency:
value: '15.00'
currency: CAD
request_currency:
value: '9.00'
currency: USD
fees:
mandatory_fee:
billable_currency:
value: '5.00'
currency: CAD
request_currency:
value: '3.00'
currency: USD
resort_fee:
billable_currency:
value: '5.00'
currency: CAD
request_currency:
value: '3.00'
currency: USD
mandatory_tax:
billable_currency:
value: '5.00'
currency: CAD
request_currency:
value: '3.00'
currency: USD
promotions:
value_adds:
123abc:
id: 123abc
description: 10 USD credit on activities and sports for your stay.
category: entertainment
offer_type: credit
frequency: per_stay
person_count: 1
deal:
id: 999abc
description: Book early and save 15%
card_on_file_limit:
value: '500.00'
currency: USD
refundable_damage_deposit:
value: '500.00'
currency: USD
deposits:
- value: '70.00'
due: '2025-12-21'
currency: USD
links:
additional_rates:
method: GET
href: /v3/properties/12345/availability?token=MY5S3j36cOcL
score: 10052
Availability and Unavailable Reason:
value:
- property_id: '824739'
status: partially_unavailable
score: 12345
unavailable_reason:
code: adults_exceed_threshold
data: '2'
- property_id: '19248'
status: available
rooms:
- id: 123abc
room_name: Fancy Queen Room
rates:
- id: 333abc
status: available
available_rooms: 12
refundable: true
member_deal_available: true
sale_scenario:
package: false
member: false
corporate: false
distribution: false
mobile_promotion: false
merchant_of_record: expedia
amenities:
'1234':
id: '1234'
name: Free Wireless Internet
links:
payment_options:
method: GET
href: /v3/properties/19248/payment-options?token=MY5S3j36cOcL
bed_groups:
'12345':
links:
price_check:
method: GET
href: /v3/properties/19248/rooms/abc123/rates/abc123?token=MY5S3j36cOcL
expires: '2019-03-05T07:23:14.000Z'
id: '12345'
description: 1 Queen Bed
configuration:
- type: Bed
size: Queen
quantity: 1
cancel_penalties:
- currency: USD
start: '2018-02-12T11:59:00.000-08:00'
end: '2018-02-12T11:59:00.000-08:00'
amount: '10.00'
nonrefundable_date_ranges:
- start: '2022-02-02'
end: '2022-02-02'
occupancy_pricing:
'2':
nightly:
- - type: base_rate
value: '309.00'
currency: CAD
# --- truncated at 32 KB (167 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/expedia-group/refs/heads/main/openapi/expedia-group-shopping-api-openapi.yml