Search for flights

Overview

Search for available flights with real-time pricing from multiple providers. The itinerary must be sent as a non-empty legs array. Each leg follows the provider SearchLeg shape: required origin, destination, and date (YYYY-MM-DD); optional direction (OUTBOUND or INBOUND); optional per-leg filters that override global filters for that leg only.

Not supported: top-level origin, destination, departureDate, or returnDate — use legs only.

When to Use

  • Listings — live prices for search results UI
  • One-way, round-trip, or multi-city — one leg per segment, in order
  • Filtering — cabin class, stops, price, refundability, times (globally or per leg)
  • Streaming — incremental provider results over SSE

What You Get

  • Offers from multiple providers
  • Itineraries with segments, layovers, and durations
  • Price breakdown (fares, taxes, fees) and baggage hints

Key Features

  • Multi-provider aggregation in one request
  • SSE: send header Accept: text/event-stream on POST /flights/rates, or POST /flights/rates/stream with the same JSON body
  • Global filters, sort, and optional options.providers

Quick Start

Required: legs (at least one object with origin, destination, date), adults (≥ 1), currency

Round-trip: two legs (e.g. outbound then return with direction OUTBOUND / INBOUND). One-way: one leg.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Flight rates search request. Itinerary is expressed only in legs (each leg: origin, destination, date; optional direction, filters). Passengers: adults, children, infants, optional childrenAges / infantAges. Also optional: cabinClass, country (point of sale), maxStops, global filters, sort, options.providers.

legs
array of objects
required
length ≥ 1

Ordered itinerary legs (provider SearchLeg). One-way: one entry. Round-trip: outbound then inbound. Multi-city / open-jaw: additional legs in travel order.

legs*
string
required

Origin airport or city IATA code for this leg

string
required

Destination airport or city IATA code for this leg

date
required

Departure date for this leg (YYYY-MM-DD)

string
enum

Leg direction (optional; defaults to OUTBOUND on the provider)

Allowed:
filters
object

Optional per-leg filters overriding global filters for this leg

integer
required
≥ 1

Number of adults (12+)

integer
≥ 0

Number of children (2-11)

integer
≥ 0

Number of infants (<2)

childrenAges
array of integers

Age of each child (2–11 inclusive, per IATA). Length must equal children count. Optional — omit if ages are not relevant.

childrenAges
infantAges
array of integers

Age of each infant (under 2, per IATA). Length must equal infants count. Optional — omit if ages are not relevant.

infantAges
string
enum

Cabin class (provider SearchFilters codes only). Same enum as filters.cabinClass.

Allowed:
string
required
length ≥ 1

ISO 4217 currency code

string

Optional ISO 3166-1 alpha-2 country code for point of sale

integer | null
-1 to 2

Maximum number of stops: -1 or omit = any, 0 = nonstop, 1 = 1 or fewer, 2 = 2 or fewer

filters
object

Optional filters to refine search results

sort
object

Sort options for results

options
object

Search execution options

Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
text/event-stream