Google Flights Scraper — Prices & Itineraries
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
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
| Field | Type | Description |
|---|---|---|
origin | string | Required. Departure airport IATA code (e.g. JFK). Comma-separate several (JFK, EWR) to search each. |
destination | string | Required. Arrival airport IATA code(s). Every origin × destination pair is searched. |
departure_date | string | Required. Outbound date, YYYY-MM-DD. |
return_date | string | Optional. Return date for a round-trip; empty = one-way. |
seat | string | economy (default), premium-economy, business, first. |
adults / children / infants | integer | Passenger counts. Default 1 adult. |
currency | string | Price currency (USD, EUR…). Default USD. |
country | string | Market country (us, gb, de…). Prices differ by market. Default us. |
language | string | Interface language. Default en. |
Filters
| Field | Type | Description |
|---|---|---|
max_stops | integer | Max stops (0 = nonstop only). |
max_price | integer | Only fares at or below this price. |
airlines | array | Restrict to these airline/alliance codes (e.g. ["DL","AS"]). |
exclude_basic_economy | boolean | Drop basic-economy fares. |
hide_separate_and_self_transfer | boolean | Hide separate-ticket / self-transfer itineraries. |
carry_on_bags / checked_bags | integer | Bags to include in fee estimates. |
earliest_departure_hour / latest_departure_hour | integer | Departure time window (0-23). |
earliest_arrival_hour / latest_arrival_hour | integer | Arrival time window (0-23). |
max_duration_minutes | integer | Cap total itinerary duration. |
connecting_airports | array | Restrict connections to these airports. |
layover_min_minutes / layover_max_minutes | integer | Layover duration bounds. |
less_emissions_only | boolean | Only lower-emission itineraries. |
fetch_booking_options | boolean | One-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_stopsand a departure-time window to surface only the itineraries you would actually book. - Greener travel — filter with
less_emissions_onlyor sort bycarbon_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
countrysets 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.