Skip to main content
POST
Search award (miles) availability across airline loyalty programs
Flight award search is a preview. It is not yet stable, and its fields and behavior may change. It returns award prices only: it creates no offer, quote or booking, and results cannot be added to a trip. Award fares carry no trip_item_token. See Flight award search.

Authorizations

X-API-Key
string
header
required

Body

application/json
origin
string
required

3-letter IATA airport code. Each search covers this one departure airport; search other airports separately.

Pattern: ^[A-Za-z]{3}$
Example:

"LHR"

destination
string
required

3-letter IATA airport code. Each search covers this one arrival airport; search other airports separately.

Pattern: ^[A-Za-z]{3}$
Example:

"JFK"

departure_date
string
required

Outbound date, YYYY-MM-DD, from today up to 361 days ahead.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-11-20"

trip_type
enum<string>
required

oneway or roundtrip. roundtrip requires return_date. oneway refuses return_date, return_departure_time_range and return_arrival_time_range.

Available options:
oneway,
roundtrip
Example:

"roundtrip"

return_date
string

Return date, YYYY-MM-DD, on or after departure_date. Required when trip_type is roundtrip; refused when it is oneway.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-11-27"

cabin_class
enum<string>

Cabin to search. Omit it to search every cabin.

Available options:
economy,
premium_economy,
business,
first
Example:

"business"

adults
integer
default:1

Travellers, 1–9. Every returned fare has at least this many award seats in its cabin. Count every traveller here: award seats are not priced by passenger type.

Required range: 1 <= x <= 9
max_stops
integer

Maximum stops in each direction: 0 non-stop, 1 one connection, 2 two connections.

Required range: 0 <= x <= 2
Example:

1

include_carriers
string[]

Keep only itineraries whose every segment is marketed by one of these IATA carriers.

Pattern: ^[A-Za-z0-9]{2}$
Example:
exclude_carriers
string[]

Drop itineraries with any segment marketed by one of these IATA carriers.

Pattern: ^[A-Za-z0-9]{2}$
Example:
single_carrier_only
boolean

Keep only itineraries marketed end-to-end by one carrier.

via_airports
string[]

Keep only itineraries that connect at one of these airports.

Pattern: ^[A-Za-z]{3}$
Example:
exclude_via_airports
string[]

Drop itineraries that connect at any of these airports.

Pattern: ^[A-Za-z]{3}$
Example:
aircraft_types
string[]

Keep only itineraries flown on these IATA aircraft (equipment) codes.

Pattern: ^[A-Za-z0-9]{3}$
Example:
departure_time_range
object

Filter the outbound journey by local departure time-of-day.

arrival_time_range
object

Filter the outbound journey by local arrival time-of-day.

return_departure_time_range
object

Filter the return journey by local departure time-of-day (round trip only).

return_arrival_time_range
object

Filter the return journey by local arrival time-of-day (round trip only).

connection_time_min_minutes
integer

Shortest acceptable connection, in minutes. Must not exceed connection_time_max_minutes.

Required range: x >= 0
Example:

60

connection_time_max_minutes
integer

Longest acceptable connection, in minutes.

Required range: x >= 1
Example:

240

max_total_duration_minutes
integer

Longest acceptable journey time in each direction, in minutes.

Required range: x >= 1
Example:

900

same_connection_airport_only
boolean

Keep only itineraries whose connections leave from the airport they arrived at (no change of airport).

limit
integer
default:50

Maximum number of flights returned, 1–100. total in the response counts every match.

Required range: 1 <= x <= 100
programs
enum<string>[]

Loyalty programs to search, by code. Omit it to search all 17.

Required array length: 1 - 17 elements
Available options:
aadvantage,
atmos_rewards,
skymiles,
flying_blue,
flying_club,
trueblue,
qantas_frequent_flyer,
eurobonus,
miles_and_smiles,
mileageplus,
velocity,
etihad_guest,
finnair_plus,
aeromexico_rewards,
azul_fidelidade,
smiles_br,
smiles_ar
Example:
max_miles
integer

Highest miles per traveller in the requested cabin. On a round trip the cap applies to outbound plus return together.

Required range: x >= 1
Example:

120000

saver_only
boolean
default:false

Keep only saver-level awards. Programs that have no saver level are not affected.

max_mixed_cabin_share
number

Largest share of the flying time that may be in a cabin lower than cabin_class, from 0 to 1. 0 keeps only journeys flown entirely in the requested cabin.

Required range: 0 <= x <= 1
Example:

0.2

sort
enum<string>
default:miles

Order of flights: miles (fewest miles first), departure (earliest first) or duration (shortest first).

Available options:
miles,
departure,
duration
intent
object

Response

Award flights matching the filters

Preview: this endpoint is not yet stable, and its fields and behaviour may change. Award flights for the requested route and dates. Returns award prices only: it creates no offer, quote or booking, and the results cannot be added to a trip.

status
enum<string>
required

complete when every requested loyalty program was checked. partial when some loyalty programs were still being checked; call again to get their prices.

Available options:
complete,
partial
trip_type
enum<string>
required
Available options:
oneway,
roundtrip
searched_at
string<date-time>
required
total
integer
required

Flights that match the filters; can be more than flights returns.

flights
object[]
required
instruction
string
required

Guidance to show with the results: miles prices are reference information, cannot be added to a trip and are booked with the loyalty program; on a round trip, miles are outbound plus return.