Take travel further

The best API to sell flights online

Search, book, and sell flights on a developer-friendly platform complete with the extras you need — from seat selection to checked bags.

An illustrative system diagram showing many connections sources going through Duffel with different airlines as destinations.
start selling today

Connect directly with airlines

Sell flights today on a platform built for the travel industry of tomorrow. Connect to leading airlines directly, without the hassle of working with outdated APIs or managing accreditation requirements. We're already accredited by IATA and ARC so you don't have to be.

Integrate once with Duffel, and you’ve got the power of a full-stack travel agency at your fingertips.

Start selling with Duffel  →

Create an account and start searching and booking flights on a NDC-friendly platform.

designed for developers

A first-class flights API that just works

Delight your customers without jumping through hoops. Duffel makes every aspect of end-to-end travel programmable so you can take control of your customer’s experience using one powerful API.

1
curl -X POST --compressed "https://api.duffel.com/air/offer_requests" \
2
-H "Accept-Encoding: gzip" \
3
-H "Accept: application/json" \
4
-H "Content-Type: application/json" \
5
-H "Duffel-Version: beta" \
6
-H "Authorization: Bearer test_OKXAniSuIXDC7UKHHKoPB0iuGedNKd2I6w10-Mfz7J" \
7
-d '{
8
"data": {
9
"slices": [
10
{
11
"origin": "LHR",
12
"destination": "JFK",
13
"departure_date": "2020-04-24"
14
}
15
],
16
"passengers": [
17
{
18
"type": "adult"
19
},
20
{
21
"age": 14
22
}
23
],
24
"cabin_class": "economy"
25
}
26
}'
{
"data": {
"slices": [
{
"origin_type": "airport",
"origin": {
"type": "airport",
"time_zone": "Europe/London",
"name": "Heathrow",
"longitude": -141.951519,
"latitude": 64.068865,
"id": "arp_lhr_gb",
"icao_code": "EGLL",
"iata_country_code": "GB",
"iata_code": "LHR",
"iata_city_code": "LON",
"city_name": "London",
"city": {
"name": "London",
"id": "cit_lon_gb",
"iata_country_code": "GB",
"iata_code": "LON"
},
"airports": [
{
"time_zone": "Europe/London",
"name": "Heathrow",
"longitude": -141.951519,
"latitude": 64.068865,
"id": "arp_lhr_gb",
"icao_code": "EGLL",
"iata_country_code": "GB",
"iata_code": "LHR",
"city_name": "London",
"city": {
"name": "London",
"id": "cit_lon_gb",
"iata_country_code": "GB",
"iata_code": "LON"
}
}
]
},
"destination_type": "airport",
"destination": {
"type": "airport",
"time_zone": "Europe/London",
"name": "Heathrow",
"longitude": -141.951519,
"latitude": 64.068865,
"id": "arp_lhr_gb",
"icao_code": "EGLL",
"iata_country_code": "GB",
"iata_code": "LHR",
"iata_city_code": "LON",
"city_name": "London",
"city": {
"name": "London",
"id": "cit_lon_gb",
"iata_country_code": "GB",
"iata_code": "LON"
},
"airports": [
{
"time_zone": "Europe/London",
"name": "Heathrow",
"longitude": -141.951519,
"latitude": 64.068865,
"id": "arp_lhr_gb",
"icao_code": "EGLL",
"iata_country_code": "GB",
"iata_code": "LHR",
"city_name": "London",
"city": {
"name": "London",
"id": "cit_lon_gb",
"iata_country_code": "GB",
"iata_code": "LON"
}
}
]
},
"departure_date": "2020-04-24"
}
],
"passengers": [
{
"type": "adult",
"id": "pas_00009hj8USM7Ncg31cBCL",
"age": 14
}
],
"offers": [
{
"total_emissions_kg": "460",
"total_currency": "GBP",
"total_amount": "45.00",
"tax_currency": "GBP",
"tax_amount": "40.80",
"slices": [
{
"segments": [
{
"passengers": [
{
"passenger_id": "passenger_0",
"cabin_class_marketing_name": "Economy Basic",
"cabin_class": "economy",
"baggages": [
{
"type": "checked",
"quantity": 1
}
]
}
],
"origin_terminal": "B",
"origin": {
"time_zone": "Europe/London",
"name": "Heathrow",
"longitude": -141.951519,
"latitude": 64.068865,
"id": "arp_lhr_gb",
"icao_code": "EGLL",
"iata_country_code": "GB",
"iata_code": "LHR",
"city_name": "London",
"city": {
"name": "London",
"id": "cit_lon_gb",
"iata_country_code": "GB",
"iata_code": "LON"
}
},
"operating_carrier_flight_number": "4321",
"operating_carrier": {
"name": "British Airways",
"id": "aln_00001876aqC8c5umZmrRds",
"iata_code": "BA"
},
"marketing_carrier_flight_number": "1234",
"marketing_carrier": {
"name": "British Airways",
"id": "aln_00001876aqC8c5umZmrRds",
"iata_code": "BA"
},
"id": "seg_00009htYpSCXrwaB9Dn456",
"duration": "PT02H26M",
"distance": "424.2",
"destination_terminal": "5",
"destination": {
"time_zone": "Europe/London",
"name": "Heathrow",
"longitude": -141.951519,
"latitude": 64.068865,
"id": "arp_lhr_gb",
"icao_code": "EGLL",
"iata_country_code": "GB",
"iata_code": "LHR",
"city_name": "London",
"city": {
"name": "London",
"id": "cit_lon_gb",
"iata_country_code": "GB",
"iata_code": "LON"
}
},
"departing_at": "2020-06-13T16:38:02",
"arriving_at": "2020-06-13T16:38:02",
"aircraft": {
"name": "Airbus Industries A380",
"id": "arc_00009UhD4ongolulWd91Ky",
"iata_code": "380"
}
}
],
"origin_type": "airport",
"origin": {
"type": "airport",
"time_zone": "Europe/London",
"name": "Heathrow",
"longitude": -141.951519,
"latitude": 64.068865,
"id": "arp_lhr_gb",
"icao_code": "EGLL",
"iata_country_code": "GB",
"iata_code": "LHR",
"iata_city_code": "LON",
"city_name": "London",
"city": {
"name": "London",
"id": "cit_lon_gb",
"iata_country_code": "GB",
"iata_code": "LON"
},
"airports": [
{
"time_zone": "Europe/London",
"name": "Heathrow",
"longitude": -141.951519,
"latitude": 64.068865,
"id": "arp_lhr_gb",
"icao_code": "EGLL",
"iata_country_code": "GB",
"iata_code": "LHR",
"city_name": "London",
"city": {
"name": "London",
"id": "cit_lon_gb",
"iata_country_code": "GB",
"iata_code": "LON"
}
}
]
},
"id": "sli_00009htYpSCXrwaB9Dn123",
"fare_brand_name": "Basic",
"duration": "PT02H26M",
"destination_type": "airport",
"destination": {
"type": "airport",
"time_zone": "Europe/London",
"name": "Heathrow",
"longitude": -141.951519,
"latitude": 64.068865,
"id": "arp_lhr_gb",
"icao_code": "EGLL",
"iata_country_code": "GB",
"iata_code": "LHR",
"iata_city_code": "LON",
"city_name": "London",
"city": {
"name": "London",
"id": "cit_lon_gb",
"iata_country_code": "GB",
"iata_code": "LON"
},
"airports": [
{
"time_zone": "Europe/London",
"name": "Heathrow",
"longitude": -141.951519,
"latitude": 64.068865,
"id": "arp_lhr_gb",
"icao_code": "EGLL",
"iata_country_code": "GB",
"iata_code": "LHR",
"city_name": "London",
"city": {
"name": "London",
"id": "cit_lon_gb",
"iata_country_code": "GB",
"iata_code": "LON"
}
}
]
},
"conditions": {
"change_before_departure": {
"penalty_currency": "GBP",
"penalty_amount": "100.00",
"allowed": true
}
}
}
],
"passengers": [
{
"type": "adult",
"id": "pas_00009hj8USM7Ncg31cBCL",
"age": 14
}
],
"passenger_identity_documents_required": false,
"owner": {
"name": "British Airways",
"id": "aln_00001876aqC8c5umZmrRds",
"iata_code": "BA"
},
"live_mode": true,
"id": "off_00009htYpSCXrwaB9DnUm0",
"expires_at": "2020-01-17T10:42:14.545Z",
"created_at": "2020-01-17T10:12:14.545Z",
"conditions": {
"refund_before_departure": {
"penalty_currency": "GBP",
"penalty_amount": "100.00",
"allowed": true
},
"change_before_departure": {
"allowed": true
}
},
"base_currency": "GBP",
"base_amount": "30.20",
"allowed_passenger_identity_document_types": [
"passport"
]
}
],
"live_mode": false,
"id": "orq_00009hjdomFOCJyxHG7k7k",
"created_at": "2020-02-12T15:21:01.927Z",
"cabin_class": "economy"
}
}
Search

Find the right flights for customers across a network of leading airlines.

Read our documentation  →
always growing

Connect with industry-leading airlines

Aegean Airlines
American Airlines
British Airways
Cathay Pacific
Emirates
Transavia
Iberia
Lufthansa
Swiss
Singapore Airlines
United Airlines
Vueling

Duffel is the new software backbone of the travel industry. Using modern APIs and standards like NDC, Duffel gives you a future-proof platform to grow your business with direct access to our network of global airlines.

See our airline partners  →
our mission

Making travel effortless

Most of the world’s travel technology was built in a bygone era. Travel companies today need tools that are flexible enough to mold to customer expectations and powerful enough to support a growing business.

Layer by layer, piece by piece, we’re rebuilding the infrastructure that underpins the travel industry to bring it into the modern era and usher in a new, effortless travel experience.

backed by

Ready to get started?

Create an account instantly to start selling flights.