naftiko: "1.0.0-alpha2" info: label: "Flight Offers Search — Shopping" description: 'Flight Offers Search — Shopping. 2 operation(s). Lead operation: Amadeus Return List of Flight Offers Based on Posted Searching Criteria.. 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: flight-offers-search-shopping baseUri: https://test.api.amadeus.com/v2 description: Flight Offers Search — Shopping business capability. Self-contained, no shared references. authentication: type: bearer token: '{{env.AMADEUS_TOKEN}}' resources: - name: shopping-flight-offers path: /shopping/flight-offers operations: - name: searchFlightOffers method: POST description: Amadeus Return List of Flight Offers Based on Posted Searching Criteria. inputParameters: - name: getFlightOffersBody in: body type: object required: true description: list of criteria to retrieve a list of flight offers outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getFlightOffers method: GET description: Amadeus Return List of Flight Offers Based on Searching Criteria. inputParameters: - name: originLocationCode in: query type: string required: true description: city/airport [IATA code](http://www.iata.org/publications/Pages/code-search.aspx) from which the traveler will depart, e.g. BOS for Boston - name: destinationLocationCode in: query type: string required: true description: city/airport [IATA code](http://www.iata.org/publications/Pages/code-search.aspx) to which the traveler is going, e.g. PAR for Paris - name: departureDate in: query type: string required: true description: the date on which the traveler will depart from the origin to go to the destination. Dates are specified in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) YYYY-MM-DD format, e.g. 2017-12-25 - name: returnDate in: query type: string required: false description: the date on which the traveler will depart from the destination to return to the origin. If this parameter is not specified, only one-way itineraries are found. If this parameter is specified, only ro - name: adults in: query type: integer required: true description: "the number of adult travelers (age 12 or older on date of departure).\n\nThe total number of seated travelers (adult and children) can not exceed 9." - name: children in: query type: integer required: false description: the number of child travelers (older than age 2 and younger than age 12 on date of departure) who will each have their own separate seat. If specified, this number should be greater than or equal to 0 - name: infants in: query type: integer required: false description: the number of infant travelers (whose age is less or equal to 2 on date of departure). Infants travel on the lap of an adult traveler, and thus the number of infants must not exceed the number of adul - name: travelClass in: query type: string required: false description: most of the flight time should be spent in a cabin of this quality or higher. The accepted travel class is economy, premium economy, business or first class. If no travel class is specified, the searc - name: includedAirlineCodes in: query type: string required: false description: "This option ensures that the system will only consider these airlines. This can not be cumulated with parameter excludedAirlineCodes.\n\nAirlines are specified as [IATA airline codes](http://www.iata.or" - name: excludedAirlineCodes in: query type: string required: false description: "This option ensures that the system will ignore these airlines. This can not be cumulated with parameter includedAirlineCodes.\n\nAirlines are specified as [IATA airline codes](http://www.iata.org/publi" - name: nonStop in: query type: boolean required: false description: if set to true, the search will find only flights going from the origin to the destination with no stop in between - name: currencyCode in: query type: string required: false description: the preferred currency for the flight offers. Currency is specified in the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format, e.g. EUR for Euro - name: maxPrice in: query type: integer required: false description: maximum price per traveler. By default, no limit is applied. If specified, the value should be a positive number with no decimals - name: max in: query type: integer required: false description: maximum number of flight offers to return. If specified, the value should be greater than or equal to 1 outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: flight-offers-search-shopping-rest port: 8080 description: REST adapter for Flight Offers Search — Shopping. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/shopping/flight-offers name: shopping-flight-offers description: REST surface for shopping-flight-offers. operations: - method: POST name: searchFlightOffers description: Amadeus Return List of Flight Offers Based on Posted Searching Criteria. call: flight-offers-search-shopping.searchFlightOffers with: getFlightOffersBody: rest.getFlightOffersBody outputParameters: - type: object mapping: $. - method: GET name: getFlightOffers description: Amadeus Return List of Flight Offers Based on Searching Criteria. call: flight-offers-search-shopping.getFlightOffers with: originLocationCode: rest.originLocationCode destinationLocationCode: rest.destinationLocationCode departureDate: rest.departureDate returnDate: rest.returnDate adults: rest.adults children: rest.children infants: rest.infants travelClass: rest.travelClass includedAirlineCodes: rest.includedAirlineCodes excludedAirlineCodes: rest.excludedAirlineCodes nonStop: rest.nonStop currencyCode: rest.currencyCode maxPrice: rest.maxPrice max: rest.max outputParameters: - type: object mapping: $. - type: mcp namespace: flight-offers-search-shopping-mcp port: 9090 transport: http description: MCP adapter for Flight Offers Search — Shopping. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: return-list-flight-offers-based description: Amadeus Return List of Flight Offers Based on Posted Searching Criteria. hints: readOnly: true destructive: false idempotent: false call: flight-offers-search-shopping.searchFlightOffers with: getFlightOffersBody: tools.getFlightOffersBody outputParameters: - type: object mapping: $. - name: return-list-flight-offers-based-2 description: Amadeus Return List of Flight Offers Based on Searching Criteria. hints: readOnly: true destructive: false idempotent: true call: flight-offers-search-shopping.getFlightOffers with: originLocationCode: tools.originLocationCode destinationLocationCode: tools.destinationLocationCode departureDate: tools.departureDate returnDate: tools.returnDate adults: tools.adults children: tools.children infants: tools.infants travelClass: tools.travelClass includedAirlineCodes: tools.includedAirlineCodes excludedAirlineCodes: tools.excludedAirlineCodes nonStop: tools.nonStop currencyCode: tools.currencyCode maxPrice: tools.maxPrice max: tools.max outputParameters: - type: object mapping: $.