> This page is for Workforce.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

# Duffel

**Authentication:** API key. See [Magic Link](/merge-agent-handler/features/magic-link) for the runtime auth flow.

## Sample use cases

* Find round-trip flights from SFO to NRT next month under \$1500, with one stop or fewer.
* Hold a booking for 24 hours on the cheapest morning flight to Boston tomorrow.
* List Star Alliance flights between JFK and FRA on the 15th.

## Available Tools

#### create_batch_offer_request

Create a batch flight search. Searches multiple airlines asynchronously and returns results as they come in.

#### get_batch_offer_request

Get batch offer request status and results by ID. Poll until status is complete to get all offers.

#### create_offer_request

Search for flights by creating an offer request. Specify origin, destination, dates, passengers, and cabin class. Returns available offers.

#### list_offer_requests

List offer requests with pagination. Use cursor from page_info for next page.

#### get_offer_request

Get offer request details by ID. Returns the original search parameters and any returned offers.

#### list_offers

List offers for an offer request with pagination. Sort by total_amount or total_duration. Use cursor from page_info for next page.

#### get_offer

Get offer details by ID. Optionally return available services like bags and seats.

#### update_offer_passenger

Update passenger details on an offer. Set name, loyalty accounts, or identity documents before booking.

#### create_order_cancellation

Initiate cancellation of an order. Returns refund details and expiry. Must confirm with confirm_order_cancellation before expiry.

#### list_order_cancellations

List order cancellations with pagination. Optionally filter by order ID. Use cursor from page_info for next page.

#### get_order_cancellation

Get order cancellation details by ID. Returns refund amount, status, and expiry time.

#### confirm_order_cancellation

Confirm an order cancellation. Must be confirmed before expiry. This action is irreversible.

#### create_order_change_request

Request to change an order's flights. Specify slices to add and remove. Returns available change offers.

#### get_order_change_request

Get order change request details by ID. Returns available change offers.

#### list_order_change_offers

List change offers for an order change request. Compare prices and penalties. Use cursor from page_info for next page.

#### create_order_change

Select an order change offer to proceed with. Must confirm with confirm_order_change before expiry.

#### get_order_change

Get order change details by ID. Returns change costs, new total, and confirmation status.

#### confirm_order_change

Confirm an order change. Optionally provide payment if the change costs extra. This action is irreversible.

#### create_order

Book a flight by creating an order. Requires offer IDs, payment details, and passenger information. Use list_offers to find offers first.

#### list_orders

List orders with pagination. Filter by booking reference or awaiting payment status. Use cursor from page_info for next page.

#### get_order

Get order details by ID. Returns booking reference, passengers, slices, services, and payment status.

#### update_order

Update order metadata. Only custom metadata can be changed after booking.

#### create_partial_offer_request

Search for flights with partial offers. Returns offers grouped by slice, allowing mix-and-match of airlines per leg.

#### get_partial_offer_request

Get partial offer request details by ID. Returns partial offers grouped by slice.

#### create_payment

Create a payment for an order. Required for orders with awaiting_payment status. Use get_order to check payment status first.

#### list_payments

List payments with pagination. Optionally filter by order ID. Use cursor from page_info for next page.

#### get_payment

Get payment details by ID. Returns amount, currency, type, and associated order.

#### list_airlines

List airlines with pagination. Use cursor from page_info for next page.

#### get_airline

Get airline details by ID. Returns name, IATA code, logos, and conditions of carriage URL.

#### list_airports

List airports with pagination. Use cursor from page_info for next page.

#### get_airport

Get airport details by ID. Returns name, IATA/ICAO codes, city, country, coordinates, and timezone.

#### list_aircraft

List aircraft types with pagination. Use cursor from page_info for next page.

#### get_aircraft

Get aircraft type details by ID. Returns name and IATA code.

#### list_cities

List cities with pagination. Use cursor from page_info for next page.

#### get_city

Get city details by ID. Returns name, IATA code, and country code.

#### suggest_places

Search airports and cities by name. Returns matching places for use in flight searches.

#### list_loyalty_programs

List airline loyalty programmes with pagination. Use cursor from page_info for next page.

#### get_loyalty_program

Get loyalty programme details by ID. Returns airline name and programme name.

#### get_seat_maps

Get seat maps for an offer. Returns cabin layouts with rows, seats, and availability for each flight segment.