Expedia Group · Capability

Expedia Group Rapid API — Shopping

Expedia Group Rapid API — Shopping. 5 operations. Lead operation: Expedia Group Get a calendar of availability dates for properties. This is currently a Vrbo property only feature.. Self-contained Naftiko capability covering one Expedia Group business surface.

Run with Naftiko Expedia GroupShopping

What You Can Do

GET
Getcalendaravailability — Expedia Group Get a calendar of availability dates for properties. This is currently a Vrbo property only feature.
/v1/calendars/availability
GET
Getavailability — Expedia Group Get property room rates and availability
/v1/properties/availability
GET
Getadditionalavailability — Expedia Group Get additional property room rates and availability
/v1/properties/{property-id}/availability
GET
Getpaymentoptions — Expedia Group Get Accepted Payment Types - EPS MOR Only
/v1/properties/{property-id}/payment-options
GET
Pricecheck — Expedia Group Price-Check
/v1/properties/{property-id}/rooms/{room-id}/rates/{rate-id}

MCP Tools

expedia-group-get-calendar-availability

Expedia Group Get a calendar of availability dates for properties. This is currently a Vrbo property only feature.

read-only idempotent
expedia-group-get-property-room

Expedia Group Get property room rates and availability

read-only idempotent
expedia-group-get-additional-property

Expedia Group Get additional property room rates and availability

read-only idempotent
expedia-group-get-accepted-payment

Expedia Group Get Accepted Payment Types - EPS MOR Only

read-only idempotent
expedia-group-price-check

Expedia Group Price-Check

read-only idempotent

Capability Spec

expedia-rapid-shopping.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Expedia Group Rapid API — Shopping
  description: 'Expedia Group Rapid API — Shopping. 5 operations. Lead operation: Expedia Group Get a calendar of availability
    dates for properties. This is currently a Vrbo property only feature.. Self-contained Naftiko capability covering one
    Expedia Group business surface.'
  tags:
  - Expedia Group
  - Shopping
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    EXPEDIA_GROUP_API_KEY: EXPEDIA_GROUP_API_KEY
capability:
  consumes:
  - type: http
    namespace: expedia-rapid-shopping
    baseUri: https://test.ean.com/v3
    description: Expedia Group Rapid API — Shopping business capability. Self-contained, no shared references.
    resources:
    - name: calendars-availability
      path: /calendars/availability
      operations:
      - name: getcalendaravailability
        method: GET
        description: Expedia Group Get a calendar of availability dates for properties. This is currently a Vrbo property
          only feature.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
          description: Specifies the response format that the client would like to receive back. This must be `application/json`.
          required: true
        - name: Accept-Encoding
          in: header
          type: string
          description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
          required: true
        - name: Authorization
          in: header
          type: string
          description: The custom generated authentication header. Refer to our [signature authentication](https://developer.expediapartnersolutions.com/reference/signature-authentica
          required: true
        - name: User-Agent
          in: header
          type: string
          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 shou
          required: true
        - name: Test
          in: header
          type: string
          description: Shop calls have a test header that can be used to return set responses with the following keywords:<br>
        - name: property_id
          in: query
          type: array
          description: The ID of the property you want to search for. You can provide 1 to 250 property_id parameters.
          required: true
        - name: start_date
          in: query
          type: string
          description: The first day of availability information to be returned, in ISO 8601 format (YYYY-MM-DD), up to 500
            days in the future from the current date.
          required: true
        - name: end_date
          in: query
          type: string
          description: The last day of availability information to be returned, in ISO 8601 format (YYYY-MM-DD). This must
            be 365 days or less from the start_date.
          required: true
    - name: properties-availability
      path: /properties/availability
      operations:
      - name: getavailability
        method: GET
        description: Expedia Group Get property room rates and availability
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
          description: Specifies the response format that the client would like to receive back. This must be `application/json`.
          required: true
        - name: Accept-Encoding
          in: header
          type: string
          description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
          required: true
        - name: User-Agent
          in: header
          type: string
          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 shou
          required: true
        - name: Customer-Ip
          in: header
          type: string
          description: IP address of the customer, as captured by your integration.<br>
        - name: Customer-Session-Id
          in: header
          type: string
          description: Insert your own unique value for each user session, beginning with the first API call.
        - name: Test
          in: header
          type: string
          description: Shop calls have a test header that can be used to return set responses with the following keywords:<br>
        - name: checkin
          in: query
          type: string
          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
        - name: checkout
          in: query
          type: string
          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
        - name: currency
          in: query
          type: string
          description: Requested currency for the rates, in ISO 4217 format<br><br>
          required: true
        - name: country_code
          in: query
          type: string
          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
          required: true
        - name: language
          in: query
          type: string
          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-
          required: true
        - name: occupancy
          in: query
          type: array
          description: Defines the requested occupancy for a single room. Each room must have at least 1 adult occupant.<br>
          required: true
        - name: property_id
          in: query
          type: array
          description: The ID of the property you want to search for. You can provide 1 to 250 property_id parameters.
          required: true
        - name: rate_plan_count
          in: query
          type: number
          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
          required: true
        - name: sales_channel
          in: query
          type: string
          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
          required: true
        - name: sales_environment
          in: query
          type: string
          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 enviro
          required: true
        - name: amenity_category
          in: query
          type: array
          description: Single amenity category. Send multiple instances of this parameter to request rates that match multiple
            amenity categories.<br>
        - name: exclusion
          in: query
          type: array
          description: Single exclusion type. Send multiple instances of this parameter to request multiple exclusions.<br>
        - name: filter
          in: query
          type: array
          description: Single filter type. Send multiple instances of this parameter to request multiple filters.<br>
        - name: include
          in: query
          type: array
          description: Modify the response by including types of responses that are not provided by default.<br>
        - name: rate_option
          in: query
          type: array
          description: Request specific rate options for each property. Send multiple instances of this parameter to request
            multiple rate options.
        - name: travel_purpose
          in: query
          type: string
          description: This parameter is to specify the travel purpose of the booking. This may impact available rate plans,
            pricing, or tax calculations.
        - name: billing_terms
          in: query
          type: string
          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 separate
        - name: payment_terms
          in: query
          type: string
          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 '
        - name: partner_point_of_sale
          in: query
          type: string
          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.
        - name: platform_name
          in: query
          type: string
          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.
    - name: properties-property_id-availability
      path: /properties/{property_id}/availability
      operations:
      - name: getadditionalavailability
        method: GET
        description: Expedia Group Get additional property room rates and availability
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
          description: Specifies the response format that the client would like to receive back. This must be `application/json`.
          required: true
        - name: Accept-Encoding
          in: header
          type: string
          description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
          required: true
        - name: User-Agent
          in: header
          type: string
          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 shou
          required: true
        - name: Customer-Ip
          in: header
          type: string
          description: IP address of the customer, as captured by your integration.<br>
        - name: Customer-Session-Id
          in: header
          type: string
          description: Insert your own unique value for each user session, beginning with the first API call.
        - name: Test
          in: header
          type: string
          description: Shop calls have a test header that can be used to return set responses with the following keywords:<br>
        - name: property_id
          in: path
          type: string
          description: Expedia Property ID.<br>
          required: true
        - name: token
          in: query
          type: string
          description: A hashed collection of query parameters. Used to maintain state across calls. This token is provided
            as part of the `additional_rates` link from the shop respon
          required: true
        - name: checkin
          in: query
          type: string
          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.<br>
        - name: checkout
          in: query
          type: string
          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.<br>
        - name: exclusion
          in: query
          type: array
          description: Single exclusion type. Send multiple instances of this parameter to request multiple exclusions.<br>
        - name: filter
          in: query
          type: array
          description: Single filter type. Send multiple instances of this parameter to request multiple filters.<br>
        - name: include
          in: query
          type: array
          description: Modify the response by including types of responses that are not provided by default.<br>
        - name: occupancy
          in: query
          type: array
          description: Defines the requested occupancy for a single room. Each room must have at least 1 adult occupant.<br>
        - name: rate_option
          in: query
          type: array
          description: Request specific rate options for each property. Send multiple instances of this parameter to request
            multiple rate options.
        - name: sales_channel
          in: query
          type: string
          description: Provide the sales channel if you wish to override the sales_channel provided in the previous call.
            EPS dynamically provides the best content for optimal convers
        - name: currency
          in: query
          type: string
          description: Determines the returned currency type throughout the response <br>
    - name: properties-property_id-payment-options
      path: /properties/{property_id}/payment-options
      operations:
      - name: getpaymentoptions
        method: GET
        description: Expedia Group Get Accepted Payment Types - EPS MOR Only
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
          description: Specifies the response format that the client would like to receive back. This must be `application/json`.
          required: true
        - name: Accept-Encoding
          in: header
          type: string
          description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
          required: true
        - name: Customer-Ip
          in: header
          type: string
          description: IP address of the customer, as captured by your integration.<br>
        - name: Customer-Session-Id
          in: header
          type: string
          description: Insert your own unique value for each user session, beginning with the first API call.
        - name: property_id
          in: path
          type: string
          description: Expedia Property ID.<br>
          required: true
        - name: token
          in: query
          type: string
          description: Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent
            call by limiting the amount of information required
          required: true
        - name: User-Agent
          in: header
          type: string
          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 shou
          required: true
    - name: properties-property_id-rooms-room_id-rates-rate_id
      path: /properties/{property_id}/rooms/{room_id}/rates/{rate_id}
      operations:
      - name: pricecheck
        method: GET
        description: Expedia Group Price-Check
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: Accept
          in: header
          type: string
          description: Specifies the response format that the client would like to receive back. This must be `application/json`.
          required: true
        - name: Accept-Encoding
          in: header
          type: string
          description: Specifies the response encoding that the client would like to receive back. This must be `gzip`.
          required: true
        - name: Customer-Ip
          in: header
          type: string
          description: IP address of the customer, as captured by your integration.<br>
        - name: Customer-Session-Id
          in: header
          type: string
          description: Insert your own unique value for each user session, beginning with the first API call.
        - name: User-Agent
          in: header
          type: string
          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 shou
          required: true
        - name: Test
          in: header
          type: string
          description: 'Price check calls have a test header that can be used to return set responses with the following keywords:'
        - name: property_id
          in: path
          type: string
          description: Expedia Property ID.<br>
          required: true
        - name: room_id
          in: path
          type: string
          description: Room ID of a property.<br>
          required: true
        - name: rate_id
          in: path
          type: string
          description: Rate ID of a room.<br>
          required: true
        - name: token
          in: query
          type: string
          description: A hashed collection of query parameters. Used to maintain state across calls. This token is provided
            as part of the price check link from the shop response.
          required: true
    authentication:
      type: apikey
      key: Authorization
      value: '{{env.EXPEDIA_GROUP_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: expedia-rapid-shopping-rest
    port: 8080
    description: REST adapter for Expedia Group Rapid API — Shopping. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/calendars/availability
      name: calendars-availability
      description: REST surface for calendars-availability.
      operations:
      - method: GET
        name: getcalendaravailability
        description: Expedia Group Get a calendar of availability dates for properties. This is currently a Vrbo property
          only feature.
        call: expedia-rapid-shopping.getcalendaravailability
        with:
          Accept: rest.Accept
          Accept-Encoding: rest.Accept-Encoding
          Authorization: rest.Authorization
          User-Agent: rest.User-Agent
          Test: rest.Test
          property_id: rest.property_id
          start_date: rest.start_date
          end_date: rest.end_date
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/properties/availability
      name: properties-availability
      description: REST surface for properties-availability.
      operations:
      - method: GET
        name: getavailability
        description: Expedia Group Get property room rates and availability
        call: expedia-rapid-shopping.getavailability
        with:
          Accept: rest.Accept
          Accept-Encoding: rest.Accept-Encoding
          User-Agent: rest.User-Agent
          Customer-Ip: rest.Customer-Ip
          Customer-Session-Id: rest.Customer-Session-Id
          Test: rest.Test
          checkin: rest.checkin
          checkout: rest.checkout
          currency: rest.currency
          country_code: rest.country_code
          language: rest.language
          occupancy: rest.occupancy
          property_id: rest.property_id
          rate_plan_count: rest.rate_plan_count
          sales_channel: rest.sales_channel
          sales_environment: rest.sales_environment
          amenity_category: rest.amenity_category
          exclusion: rest.exclusion
          filter: rest.filter
          include: rest.include
          rate_option: rest.rate_option
          travel_purpose: rest.travel_purpose
          billing_terms: rest.billing_terms
          payment_terms: rest.payment_terms
          partner_point_of_sale: rest.partner_point_of_sale
          platform_name: rest.platform_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/properties/{property-id}/availability
      name: properties-property-id-availability
      description: REST surface for properties-property_id-availability.
      operations:
      - method: GET
        name: getadditionalavailability
        description: Expedia Group Get additional property room rates and availability
        call: expedia-rapid-shopping.getadditionalavailability
        with:
          Accept: rest.Accept
          Accept-Encoding: rest.Accept-Encoding
          User-Agent: rest.User-Agent
          Customer-Ip: rest.Customer-Ip
          Customer-Session-Id: rest.Customer-Session-Id
          Test: rest.Test
          property_id: rest.property_id
          token: rest.token
          checkin: rest.checkin
          checkout: rest.checkout
          exclusion: rest.exclusion
          filter: rest.filter
          include: rest.include
          occupancy: rest.occupancy
          rate_option: rest.rate_option
          sales_channel: rest.sales_channel
          currency: rest.currency
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/properties/{property-id}/payment-options
      name: properties-property-id-payment-options
      description: REST surface for properties-property_id-payment-options.
      operations:
      - method: GET
        name: getpaymentoptions
        description: Expedia Group Get Accepted Payment Types - EPS MOR Only
        call: expedia-rapid-shopping.getpaymentoptions
        with:
          Accept: rest.Accept
          Accept-Encoding: rest.Accept-Encoding
          Customer-Ip: rest.Customer-Ip
          Customer-Session-Id: rest.Customer-Session-Id
          property_id: rest.property_id
          token: rest.token
          User-Agent: rest.User-Agent
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/properties/{property-id}/rooms/{room-id}/rates/{rate-id}
      name: properties-property-id-rooms-room-id-rates-rate-id
      description: REST surface for properties-property_id-rooms-room_id-rates-rate_id.
      operations:
      - method: GET
        name: pricecheck
        description: Expedia Group Price-Check
        call: expedia-rapid-shopping.pricecheck
        with:
          Accept: rest.Accept
          Accept-Encoding: rest.Accept-Encoding
          Customer-Ip: rest.Customer-Ip
          Customer-Session-Id: rest.Customer-Session-Id
          User-Agent: rest.User-Agent
          Test: rest.Test
          property_id: rest.property_id
          room_id: rest.room_id
          rate_id: rest.rate_id
          token: rest.token
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: expedia-rapid-shopping-mcp
    port: 9090
    transport: http
    description: MCP adapter for Expedia Group Rapid API — Shopping. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: expedia-group-get-calendar-availability
      description: Expedia Group Get a calendar of availability dates for properties. This is currently a Vrbo property only
        feature.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: expedia-rapid-shopping.getcalendaravailability
      with:
        Accept: tools.Accept
        Accept-Encoding: tools.Accept-Encoding
        Authorization: tools.Authorization
        User-Agent: tools.User-Agent
        Test: tools.Test
        property_id: tools.property_id
        start_date: tools.start_date
        end_date: tools.end_date
      outputParameters:
      - type: object
        mapping: $.
    - name: expedia-group-get-property-room
      description: Expedia Group Get property room rates and availability
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: expedia-rapid-shopping.getavailability
      with:
        Accept: tools.Accept
        Accept-Encoding: tools.Accept-Encoding
        User-Agent: tools.User-Agent
        Customer-Ip: tools.Customer-Ip
        Customer-Session-Id: tools.Customer-Session-Id
        Test: tools.Test
        checkin: tools.checkin
        checkout: tools.checkout
        currency: tools.currency
        country_code: tools.country_code
        language: tools.language
        occupancy: tools.occupancy
        property_id: tools.property_id
        rate_plan_count: tools.rate_plan_count
        sales_channel: tools.sales_channel
        sales_environment: tools.sales_environment
        amenity_category: tools.amenity_category
        exclusion: tools.exclusion
        filter: tools.filter
        include: tools.include
        rate_option: tools.rate_option
        travel_purpose: tools.travel_purpose
        billing_terms: tools.billing_terms
        payment_terms: tools.payment_terms
        partner_point_of_sale: tools.partner_point_of_sale
        platform_name: tools.platform_name
      outputParameters:
      - type: object
        mapping: $.
    - name: expedia-group-get-additional-property
      description: Expedia Group Get additional property room rates and availability
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: expedia-rapid-shopping.getadditionalavailability
      with:
        Accept: tools.Accept
        Accept-Encoding: tools.Accept-Encoding
        User-Agent: tools.User-Agent
        Customer-Ip: tools.Customer-Ip
        Customer-Session-Id: tools.Customer-Session-Id
        Test: tools.Test
        property_id: tools.property_id
        token: tools.token
        checkin: tools.checkin
        checkout: tools.checkout
        exclusion: tools.exclusion
        filter: tools.filter
        include: tools.include
        occupancy: tools.occupancy
        rate_option: tools.rate_option
        sales_channel: tools.sales_channel
        currency: tools.currency
      outputParameters:
      - type: object
        mapping: $.
    - name: expedia-group-get-accepted-payment
      description: Expedia Group Get Accepted Payment Types - EPS MOR Only
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: expedia-rapid-shopping.getpaymentoptions
      with:
        Accept: tools.Accept
        Accept-Encoding: tools.Accept-Encoding
        Customer-Ip: tools.Customer-Ip
        Customer-Session-Id: tools.Customer-Session-Id
        property_id: tools.property_id
        token: tools.token
        User-Agent: tools.User-Agent
      outputParameters:
      - type: object
        mapping: $.
    - name: expedia-group-price-check
      description: Expedia Group Price-Check
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: expedia-rapid-shopping.pricecheck
      with:
        Accept: tools.Accept
        Accept-Encoding: tools.Accept-Encoding
        Customer-Ip: tools.Customer-Ip
        Customer-Session-Id: tools.Customer-Session-Id
        User-Agent: tools.User-Agent
        Test: tools.Test
        property_id: tools.property_id
        room_id: tools.room_id
        rate_id: tools.rate_id
        token: tools.token
      outputParameters:
      - type: object
        mapping: $.