POST to /air/offer_requests with slices, passengers, and cabin_class to initiate a search
Poll GET /air/offers?offer_request_id={id} and filter for offers where owner.iata_code matches target LCC
POST to /air/orders with the selected offer_id, passengers (with loyalty numbers if applicable), and payment object type 'balance'
Capture the order id and booking_reference from the response
GET /air/orders/{id} to verify confirmed status and retrieve e-ticket numbers
Subscribe to webhook events for order.updated to receive schedule change notifications
Known gotchas
LCC content on Duffel is sourced via New Distribution Capability connections; availability and ancillary offerings differ from GDS content for the same carrier
Duffel balance payments require pre-funded account credit; real card payments must use Duffel Payments with a separate payment intent flow
Some LCCs impose a name-change freeze immediately after booking; the 15-minute window to correct names via order changes must be handled in the booking UX
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