Amadeus · Capability
Hotel Search API — Shopping
Hotel Search API — Shopping. 2 operation(s). Lead operation: Amadeus GetMultiHotelOffers. Self-contained Naftiko capability covering one Amadeus business surface.
What You Can Do
GET
Getmultihoteloffers
— Amadeus GetMultiHotelOffers
/v1/shopping/hotel-offers
GET
Getofferpricing
— Amadeus GetOfferPricing
/v1/shopping/hotel-offers/{offer-id}
MCP Tools
getmultihoteloffers
Amadeus GetMultiHotelOffers
read-only
idempotent
getofferpricing
Amadeus GetOfferPricing
read-only
idempotent
Capability Spec
naftiko: "1.0.0-alpha2"
info:
label: "Hotel Search API — Shopping"
description: 'Hotel Search API — Shopping. 2 operation(s). Lead operation: Amadeus GetMultiHotelOffers. Self-contained Naftiko capability covering one Amadeus business surface.'
tags:
- Amadeus
- Travel
- Shopping
created: "2026-05-29"
modified: "2026-05-29"
binds:
- namespace: env
keys:
AMADEUS_TOKEN: AMADEUS_TOKEN
capability:
consumes:
- type: http
namespace: hotel-search-shopping
baseUri: https://test.api.amadeus.com/v3
description: Hotel Search API — Shopping business capability. Self-contained, no shared references.
authentication:
type: bearer
token: '{{env.AMADEUS_TOKEN}}'
resources:
- name: shopping-hotel-offers
path: /shopping/hotel-offers
operations:
- name: getMultiHotelOffers
method: GET
description: Amadeus GetMultiHotelOffers
inputParameters:
- name: hotelIds
in: query
type: array
required: true
description: Amadeus property codes on 8 chars. Mandatory parameter for a search by predefined list of hotels.
- name: adults
in: query
type: integer
required: false
description: Number of adult guests (1-9) per room.
- name: checkInDate
in: query
type: string
required: false
description: Check-in date of the stay (hotel local date). Format YYYY-MM-DD. The lowest accepted value is the present date (no dates in the past). If not present, the default value will be today's date in the GMT
- name: checkOutDate
in: query
type: string
required: false
description: Check-out date of the stay (hotel local date). Format YYYY-MM-DD. The lowest accepted value is checkInDate+1. If not present, it will default to checkInDate +1.
- name: countryOfResidence
in: query
type: string
required: false
description: Code of the country of residence of the traveler expressed using ISO 3166-1 format.
- name: roomQuantity
in: query
type: integer
required: false
description: Number of rooms requested (1-9).
- name: priceRange
in: query
type: string
required: false
description: "Filter hotel offers by price per night interval (ex: 200-300 or -300 or 100).\nIt is mandatory to include a currency when this field is set."
- name: currency
in: query
type: string
required: false
description: "Use this parameter to request a specific currency. ISO currency code (http://www.iso.org/iso/home/standards/currency_codes.htm).\nIf a hotel does not support the requested currency, the prices for the "
- name: paymentPolicy
in: query
type: string
required: false
description: Filter the response based on a specific payment type. NONE means all types (default).
- name: boardType
in: query
type: string
required: false
description: "Filter response based on available meals:\n * ROOM_ONLY = Room Only\n * BREAKFAST = Breakfast\n * HALF_BOARD = Diner & Breakfast (only for Aggregators)\n * FULL_BOARD = Full Bo"
- name: includeClosed
in: query
type: boolean
required: false
description: Show all properties (include sold out) or available only. For sold out properties, please check availability on other dates.
- name: bestRateOnly
in: query
type: boolean
required: false
description: Used to return only the cheapest offer per hotel or all available offers.
- name: lang
in: query
type: string
required: false
description: "Requested language of descriptive texts. \nExamples: FR , fr , fr-FR.\nIf a language is not available the text will be returned in english.\nISO language code (https://www.iso.org/iso-639-language-codes."
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: shopping-hotel-offers
path: /shopping/hotel-offers/{offerId}
operations:
- name: getOfferPricing
method: GET
description: Amadeus GetOfferPricing
inputParameters:
- name: offerId
in: path
type: string
required: true
description: Unique identifier of an offer. Either the GDS booking code or the aggregator offerId with a limited lifetime.
- name: lang
in: query
type: string
required: false
description: "Requested language of descriptive texts. \nExamples: FR , fr , fr-FR.\nIf a language is not available the text will be returned in english.\nISO language code (https://www.iso.org/iso-639-language-codes."
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
namespace: hotel-search-shopping-rest
port: 8080
description: REST adapter for Hotel Search API — Shopping. One Spectral-compliant resource per consumed operation, prefixed with /v1.
resources:
- path: /v1/shopping/hotel-offers
name: shopping-hotel-offers
description: REST surface for shopping-hotel-offers.
operations:
- method: GET
name: getMultiHotelOffers
description: Amadeus GetMultiHotelOffers
call: hotel-search-shopping.getMultiHotelOffers
with:
hotelIds: rest.hotelIds
adults: rest.adults
checkInDate: rest.checkInDate
checkOutDate: rest.checkOutDate
countryOfResidence: rest.countryOfResidence
roomQuantity: rest.roomQuantity
priceRange: rest.priceRange
currency: rest.currency
paymentPolicy: rest.paymentPolicy
boardType: rest.boardType
includeClosed: rest.includeClosed
bestRateOnly: rest.bestRateOnly
lang: rest.lang
outputParameters:
- type: object
mapping: $.
- path: /v1/shopping/hotel-offers/{offer-id}
name: shopping-hotel-offers
description: REST surface for shopping-hotel-offers.
operations:
- method: GET
name: getOfferPricing
description: Amadeus GetOfferPricing
call: hotel-search-shopping.getOfferPricing
with:
offerId: rest.offerId
lang: rest.lang
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: hotel-search-shopping-mcp
port: 9090
transport: http
description: MCP adapter for Hotel Search API — Shopping. One tool per consumed operation, routed inline through this capability's consumes block.
tools:
- name: getmultihoteloffers
description: Amadeus GetMultiHotelOffers
hints:
readOnly: true
destructive: false
idempotent: true
call: hotel-search-shopping.getMultiHotelOffers
with:
hotelIds: tools.hotelIds
adults: tools.adults
checkInDate: tools.checkInDate
checkOutDate: tools.checkOutDate
countryOfResidence: tools.countryOfResidence
roomQuantity: tools.roomQuantity
priceRange: tools.priceRange
currency: tools.currency
paymentPolicy: tools.paymentPolicy
boardType: tools.boardType
includeClosed: tools.includeClosed
bestRateOnly: tools.bestRateOnly
lang: tools.lang
outputParameters:
- type: object
mapping: $.
- name: getofferpricing
description: Amadeus GetOfferPricing
hints:
readOnly: true
destructive: false
idempotent: true
call: hotel-search-shopping.getOfferPricing
with:
offerId: tools.offerId
lang: tools.lang
outputParameters:
- type: object
mapping: $.