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: $.