Use the Amadeus flight offers search API in multi-city mode by setting the originDestinations array with more than two elements; specify independent originLocationCode and destinationLocationCode for each leg.
For an open-jaw itinerary (fly into city A, depart from city B), set the first leg's departure to the origin and arrival to city A, and the return leg's departure to city B and arrival to the final destination.
Include separate departure date windows for each leg; Amadeus supports a single fixed date per leg in multi-city mode rather than a date range.
Parse the itineraries array in the response — each offer will contain one itinerary per leg; compute and display the combined price and segment details.
Price the selected multi-city offer using the flight offers price endpoint to confirm availability and obtain a final bookable price before proceeding to order creation.
When creating the order, submit all itineraries and passengers in a single POST to avoid partial booking scenarios.
Known gotchas
Not all airline combinations support multi-city pricing in a single offer; you may need to fall back to separate one-way searches and combine them, losing interline baggage protections.
The maximum number of origin-destination pairs supported varies by API version; exceeding this silently truncates legs in some implementations — validate the response leg count matches the request.
Open-jaw itineraries may price higher than expected because some fare families require a closed round-trip; always compare the open-jaw total against two one-way prices.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp