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:
- 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.
- 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:
- 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
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.
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.
- name: exclusion
in: query
type: array
description: Single exclusion type. Send multiple instances of this parameter to request multiple exclusions.
- name: filter
in: query
type: array
description: Single filter type. Send multiple instances of this parameter to request multiple filters.
- name: include
in: query
type: array
description: Modify the response by including types of responses that are not provided by default.
- 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.
- 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:
- name: property_id
in: path
type: string
description: Expedia Property ID.
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.
- 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.
- name: exclusion
in: query
type: array
description: Single exclusion type. Send multiple instances of this parameter to request multiple exclusions.
- name: filter
in: query
type: array
description: Single filter type. Send multiple instances of this parameter to request multiple filters.
- name: include
in: query
type: array
description: Modify the response by including types of responses that are not provided by default.
- name: occupancy
in: query
type: array
description: Defines the requested occupancy for a single room. Each room must have at least 1 adult occupant.
- 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
- 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.
- 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.
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.
- 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.
required: true
- name: room_id
in: path
type: string
description: Room ID of a property.
required: true
- name: rate_id
in: path
type: string
description: Rate ID of a room.
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: $.