Expedia Group Shopping API

The EPS shopping APIs provide you with access to live rates & availability.

OpenAPI Specification

expedia-group-shopping-api-openapi.yml Raw ↑
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