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.

Run with Naftiko AmadeusTravelShopping

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

hotel-search-shopping.yaml Raw ↑
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: $.