Flexible-date price matrix (one-way or round-trip)

Overview

Search the cheapest fare for each departure (and, on round-trips, return) date combination across a grid of nearby dates — ±flexDays around the dates in your request. Accepts the same legs-based body as POST /flights/rates plus optional flexDays (1–3, default 3).

Supported: one-way (1 leg) or round-trip (2 legs) only. Multi-city (3+ legs) is not supported.

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

When to Use

  • Flexible-date calendars — price heatmap when the traveller can shift dates
  • Cheap-date discovery — find the lowest fare in a ±N day window before a full /flights/rates search
  • Round-trip date pairing — compare outbound × return combinations on one grid
  • Progressive UI — stream cells over SSE as each underlying search completes

What You Get

  • cells — one entry per valid date combination, sorted by (outboundOffset, returnOffset)
  • cheapest — globally lowest-priced cell (null when nothing was priced)
  • currency — currency of the global cheapest cell
  • baseOutboundDate / baseReturnDate — the originally requested dates
  • flexDays, roundTrip — grid metadata
  • Per-cell price, currency, date offsets, and whether the underlying search was cached or success
  • Margined prices — cell price, cheapest, and currency include the authenticated user's rate-search margin (same as /flights/rates)

Key Features

  • Probes ±flexDays (1–3) around requested departure and return dates
  • Each underlying date pair uses normal provider caching — a later POST /flights/rates for a matrix date is served from warm cache
  • SSE: send header Accept: text/event-stream for incremental events: matrix-start (grid skeleton), matrix-chunk (one priced cell), matrix-complete (full sorted grid + cheapest)
  • Same global filters, sort, and options as /flights/rates where applicable

Quick Start

Required: legs (1 leg for one-way or 2 for round-trip, each with origin, destination, date), adults (≥ 1), currency

Optional: flexDays (1–3, default 3), country, passenger counts, filters, sort

Round-trip: two legs — outbound then return with optional direction OUTBOUND / INBOUND. One-way: one leg.

After choosing a date pair from the matrix, call POST /flights/rates with legs set to those dates for full offer details.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
legs
array of objects
required
length between 1 and 2

One leg (one-way) or two legs (round-trip). Multi-city is not supported.

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:
integer
required
≥ 1

Number of adult passengers (≥ 1).

integer
≥ 0

Number of child passengers (ages 2-11).

integer
≥ 0

Number of infant passengers (under 2).

string
required

ISO 4217 currency for point of sale and displayed prices.

string

ISO country code for point of sale

integer
1 to 3
Defaults to 3

Days before/after requested dates to probe

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