Duffel Flights
Search, book, and manage flights across 300+ airlines via the Duffel API.
Setup
Set DUFFEL_TOKEN env var with your Duffel API access token.
Get one at https://app.duffel.com → Developers → Access Tokens.
Test tokens (prefix duffel_test_) use sandbox data with unlimited balance.
Commands
Search flights
python scripts/duffel.py search --from MIA --to LHR --date 2026-04-15
python scripts/duffel.py search --from MIA --to CDG --date 2026-03-15 --return-date 2026-03-22 --cabin business
python scripts/duffel.py search --from JFK --to LAX --date 2026-05-01 --nonstop --adults 2
Options: --cabin economy|premium_economy|business|first, --nonstop, --adults N, --children N, --infants N, --sort price|duration, --max-results N, --json
Results are numbered. Use the number with other commands.
View offer details
python scripts/duffel.py offer 3
Shows segments, baggage, fare conditions (refund/change), available extras.
Book a flight
python scripts/duffel.py book 3 --pax "RIBEIRO/FABIO MR 1977-01-31 fabio@ribei.ro +13059159687 BR m"
Pax format: LAST/FIRST TITLE DOB EMAIL PHONE NATIONALITY GENDER
- TITLE: MR, MRS, MS, MISS, DR
- GENDER: m or f
- Multiple passengers: repeat
--pax "..."for each
Payment uses Duffel account balance. Top up at https://app.duffel.com.
Check order status
python scripts/duffel.py order ord_0000XXXXX
Cancel order
python scripts/duffel.py cancel ord_0000XXXXX # Quote (shows refund amount)
python scripts/duffel.py cancel ord_0000XXXXX --confirm # Execute cancellation
Seat map
python scripts/duffel.py seatmap 3
Airport/city lookup
python scripts/duffel.py places "new york"
Typical workflow
search→ browse numbered resultsoffer N→ check details, baggage, conditionsbook N --pax "..."→ get PNRorder <id>→ verify bookingcancel <id>→ if needed
Notes
- Offers expire (usually ~20 min). Re-search if expired.
- Test mode: unlimited balance, bookings on "Duffel Airways" (fake airline).
- Production: real airlines, real tickets. Balance must be funded.
- All commands support
--jsonfor raw API output. - Last search saved to
/tmp/duffel-last-search.jsonfor index reference. - For API details, see
references/api-guide.mdandreferences/booking-flow.md.