Google Flights Scraper — Prices & Itineraries avatar

Google Flights Scraper — Prices & Itineraries

Pricing

Pay per event

Go to Apify Store
Google Flights Scraper — Prices & Itineraries

Google Flights Scraper — Prices & Itineraries

Search Google Flights for any route and date: price, airlines, stops, departure and arrival times, duration, connections, and carbon emissions. One-way or round-trip, any cabin, market-specific pricing.

Pricing

Pay per event

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Google Flights Scraper

Search Google Flights for any route and date and get the results as clean, structured data: price, airlines, flight numbers, stops and layovers, departure and arrival times, duration, aircraft, legroom, carbon emissions, and a deep link back to the exact search. One row per flight option, ready for a spreadsheet, a price-tracker, or a dashboard.

One-way or round-trip, any cabin, any market, and a full set of filters. Search several routes in a single run, and because Google Flights prices a route differently by country, every row records which country and currency it was priced in.

What you get

For every flight option, one dataset row with:

  • price and currency — the fare in the market you chose.
  • airlines / airline_codes — operating carrier names and codes.
  • stops and layover_airports — 0 for nonstop, plus the connection codes.
  • departure / arrival — ISO 8601 date-times for the whole itinerary.
  • duration_minutes — total travel time.
  • legs — each segment: from/to airport (code + name), its own departure and arrival, duration, flight_number, airline_name, plane_type, legroom, and an overnight flag.
  • carbon_emissions_g — estimated emissions, plus the route typical.
  • booking_token and google_flights_url — the option's booking token and a deep link that reopens this exact search on Google Flights.
  • origin, destination, country, trip_type — echoed on every row.

Example output

{
"origin": "JFK",
"destination": "LAX",
"country": "us",
"currency": "USD",
"trip_type": "one-way",
"price": 229,
"airlines": ["JetBlue"],
"airline_codes": ["B6"],
"stops": 0,
"layover_airports": [],
"departure": "2026-11-15T05:45",
"arrival": "2026-11-15T08:55",
"duration_minutes": 370,
"legs": [
{
"from": { "code": "JFK", "name": "John F. Kennedy International Airport" },
"to": { "code": "LAX", "name": "Los Angeles International Airport" },
"departure": "2026-11-15T05:45",
"arrival": "2026-11-15T08:55",
"duration_minutes": 370,
"airline_code": "B6",
"airline_name": "JetBlue",
"flight_number": "B6 623",
"plane_type": "Airbus A321",
"legroom": "32 inches",
"overnight": false
}
],
"carbon_emissions_g": 374000,
"carbon_typical_g": 410000,
"booking_token": "CjRI…",
"google_flights_url": "https://www.google.com/travel/flights/search?tfs=…&gl=us",
"booking_url": "https://www.google.com/travel/flights/booking?tfs=…&tfu=…"
}

Input

Route and trip

FieldTypeDescription
originstringRequired. Departure airport IATA code (e.g. JFK). Comma-separate several (JFK, EWR) to search each.
destinationstringRequired. Arrival airport IATA code(s). Every origin × destination pair is searched.
departure_datestringRequired. Outbound date, YYYY-MM-DD.
return_datestringOptional. Return date for a round-trip; empty = one-way.
seatstringeconomy (default), premium-economy, business, first.
adults / children / infantsintegerPassenger counts. Default 1 adult.
currencystringPrice currency (USD, EUR…). Default USD.
countrystringMarket country (us, gb, de…). Prices differ by market. Default us.
languagestringInterface language. Default en.

Filters

FieldTypeDescription
max_stopsintegerMax stops (0 = nonstop only).
max_priceintegerOnly fares at or below this price.
airlinesarrayRestrict to these airline/alliance codes (e.g. ["DL","AS"]).
exclude_basic_economybooleanDrop basic-economy fares.
hide_separate_and_self_transferbooleanHide separate-ticket / self-transfer itineraries.
carry_on_bags / checked_bagsintegerBags to include in fee estimates.
earliest_departure_hour / latest_departure_hourintegerDeparture time window (0-23).
earliest_arrival_hour / latest_arrival_hourintegerArrival time window (0-23).
max_duration_minutesintegerCap total itinerary duration.
connecting_airportsarrayRestrict connections to these airports.
layover_min_minutes / layover_max_minutesintegerLayover duration bounds.
less_emissions_onlybooleanOnly lower-emission itineraries.
fetch_booking_optionsbooleanOne-way only. Also fetch each flight's booking options (see below). One extra request per flight, so runs are slower.

Deep linking

Every row carries three ways back to Google Flights:

  • google_flights_url — reopens the exact search (same route, dates, passengers, cabin and filters).
  • booking_url — for one-way options, a deep link straight to that specific itinerary's booking page, where Google lists the airline and travel-agency options with prices and book buttons. Hand it to a user and they land on the page that books the flight.
  • booking_token — the identifier of that specific option, stored alongside your snapshot.

Booking options

Turn on fetch_booking_options (one-way searches) and every flight also gets a booking_options array — the airline and travel-agency offers for that itinerary, each with the vendor, fare name (e.g. Main Base / Main / Main Flex), price, and a book link:

"booking_options": [
{ "vendor": "JetBlue", "vendor_code": "B6", "price": 229,
"fare_name": "Main Base", "booking_token": "CjRI…",
"book_url": "https://www.google.com/travel/clk/…" }
]

This costs one extra request per flight, so runs take longer; leave it off when you only need the headline fares.

Common uses

  • Fare tracking — run a route on a schedule and store each snapshot to chart how the price moves toward the travel date.
  • Route matrices — list several origins and destinations in one run to compare a whole set of city pairs at once.
  • Deal filtering — combine max_price, max_stops and a departure-time window to surface only the itineraries you would actually book.
  • Greener travel — filter with less_emissions_only or sort by carbon_emissions_g.
  • Meta-search feeds — power a price-comparison page or internal tool, with a deep link back to Google Flights on every row.

How it is billed

Pay per result: you are charged once for each flight option returned, plus a small fixed charge when a run starts. A route with no results (or a temporary block) returns no billable results and is reported in the run's error record. See the Pricing tab for the exact amounts.

Notes and limits

  • Prices are market-specific. The country sets the currency and fares; the row records it, so a rotating job never mixes markets silently.
  • Round-trip is priced as a whole when you set return_date; each returned option is a full itinerary.
  • Route matrix. Multiple origins/destinations run as every pairing; keep the set sensible, since each pair is its own search.
  • Live availability. Results reflect what Google Flights shows at request time; prices and seats change constantly, so store the timestamp with each run.