Skip to main content
GET
Google Flights search

Prices

price is the price exactly as Google Flights displays it: the total for the entire party (all passengers combined), including mandatory taxes and fees. Optional extras such as checked bags or seat selection are not included. price_type is always total.

Full inventory: sort_by=price

By default (sort_by=top) the endpoint returns Google’s “Top departing flights” — the ~6-8 recommended picks, fast. That set demotes cheap-but-long- layover itineraries, so for price monitoring pass sort_by=price to get the full price-sorted inventory: every carrier and the cheap long-layover fares, cheapest first, plus a richer price_insights — Google’s own lowest_price, typical_price_range, and price_history. sort_by=price runs a heavier render, so it is slower than the default and, if Google is slow to respond, falls back to the top set for that call. It applies to the round-trip / one-way initial search (not the departure_token return-leg step). A few extreme self-transfer fares Google labels “price unavailable” are included with a null price.

Round trips: the two-step flow

Google Flights selects a round trip in two steps — first the outbound, then the return — and this API mirrors that:
  1. Search with trip_type=round_trip, outbound_date, and return_date. Each offer’s legs contain the outbound segments only, and its price is the lowest complete round-trip total available with that outbound (Google pairs it with the cheapest compatible return).
  2. Pick the return: call this endpoint again with the same parameters plus the chosen offer’s departure_token. The response lists the return-leg options; each offer’s price is the exact final round-trip total for that outbound + return pairing, and its booking_url opens the Google Flights booking page for the fully selected itinerary. Use its selection_token with Booking Options to list per-provider prices.
Each call is billed as a regular Flights search. For one-way searches the offer is already fully selected: booking_url opens the booking page directly and departure_token is null.

Authorizations

x-api-key
string
header
required

Query Parameters

departure_id
string
required

Departure IATA (e.g. JFK) or airport ID.

arrival_id
string
required

Arrival IATA (e.g. LHR) or airport ID.

outbound_date
string
required

Outbound date — YYYY-MM-DD.

return_date
string | null

Return date (YYYY-MM-DD) — required for trip_type=round_trip.

trip_type
enum<string>
default:round_trip

round_trip / one_way / multi_city.

Available options:
one_way,
round_trip,
multi_city
adults
integer
default:1

Adult passengers.

Required range: 1 <= x <= 9
children
integer
default:0

Children passengers.

Required range: 0 <= x <= 8
infants_in_seat
integer
default:0
Required range: 0 <= x <= 4
infants_on_lap
integer
default:0
Required range: 0 <= x <= 4
travel_class
enum<string>
default:economy

Cabin class.

Available options:
economy,
premium_economy,
business,
first
currency
string
default:USD

ISO-4217 currency code.

gl
string
default:us

Country code.

hl
string
default:en

Language code.

stops
enum<string>
default:any

Max stops filter — applied client-side.

Available options:
any,
nonstop,
one_stop,
two_stops
max_price
integer | null

Max price filter — applied client-side.

Required range: x >= 1
sort_by
enum<string>
default:top

top (default) returns Google's ~6-8 'best' picks — fast. price returns the full price-sorted inventory (every carrier, the cheap long-layover fares) plus Google's own price floor / typical range / history. price is slower (a heavier render) and falls back to the 'top' set under load. Round-trip initial search only.

Available options:
top,
price
departure_token
string | null

A departure_token from a round-trip offer. When set, the search returns the return-leg flights for that selected outbound (pass the same departure_id/arrival_id/dates as the original search). Round-trip only.

Response

Successful Response

Response for GET /api/v1/flights/search.

departure_id
string
required
arrival_id
string
required
outbound_date
string
required
best_flights
FlightOffer · object[]
other_flights
FlightOffer · object[]
price_insights
FlightPriceInsights · object | null

Typical price range insight for the searched route.

airports
FlightAirport · object[]
return_date
string | null
currency
string
default:USD
trip_type
enum<string>
default:round_trip
Available options:
one_way,
round_trip,
multi_city
search_url
string | null

Canonical Google Flights tfs URL for this search (in the requested language; market and prices follow gl/currency) — open to view and book the listed flights.