Google Flights Scraper
Pricing
$0.20 / 1,000 itineraries
Google Flights Scraper
Flight itineraries with prices, airlines, times, stops, aircraft and CO2 for any route and date, from the Google Flights results page. One-way and round trips, any cabin, up to nine travellers, your currency and market, price insights and a link per itinerary. No browser, no login.
Pricing
$0.20 / 1,000 itineraries
Rating
0.0
(0)
Developer
Steady Scrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Flight itineraries for any route and date, straight from the Google Flights results page: price, airlines, flight numbers, departure and arrival times, duration, stops and layovers, aircraft, legroom and CO2, plus Google's price insights (lowest fare, typical range, whether prices are high or low right now, and the 60-day price history). One-way and round trips, any cabin, up to nine travellers, in your currency and for your market. Every search comes back as rows, and when Google has nothing the row says why (no_flights, invalid, blocked) instead of an empty dataset. You pay only for itineraries.
No browser, no login, no API key: it reads the page Google serves, paces itself the way Google tolerates, and rotates IPs before Google's wall shows up.
What you get
One row per itinerary, in Google's order (its "top departing flights" first, marked isBest):
- The fare:
price, the total for all travellers incurrency, exactly as Google shows it formarket;rankandisBest. - The flights:
airlines/airlineNames,stops,durationMinutes,departureandarrival(local times,YYYY-MM-DDTHH:MM),segments(one per flight: airline, flight number, airports with names, local times, duration, aircraft, legroom, CO2 kg) andlayovers(airport, city, minutes). - Round trips: by default each row is an outbound with the lowest round-trip total, and its
urlopens the return options for it on Google Flights. WithincludeReturnFlightson, the best outbounds are expanded into one row per outbound + return pair (returnSegments,returnDeparture,returnArrival,returnStops,returnDurationMinutes), with the exact total and a link that has both flights chosen. - Emissions:
emissions.co2Kg, the typical value for the route and the difference in percent. - Price insights:
priceInsights(lowest fare found, usual fare, typical range,levelhigh / typical / low) on every row, andpriceHistory(lowest fare per day over the past two months) on the first row of each search. - What was asked:
searchIndex,tripType,origin/originName,destination/destinationName,departureDate,returnDate,passengers,cabin,maxStops,currency,market,language,url,scrapedAt. statusandreason:ok,no_flights(Google lists none for that route and date),invalid(a date in the past or a code Google does not know), orblocked(every IP route was refused; unpaid).
Input
| field | what it does |
|---|---|
origin, destination | Airport codes (JFK) or metro codes (NYC, LON). |
departureDates | One search per date. A flexible range is several dates. |
returnDate or stayNights | Makes round trips: back on one date, or N nights after each departure. |
urls | Searches copied from Google Flights (links with tfs=), searched as they are. |
adults, children, infantsInSeat, infantsOnLap | Up to nine seated travellers. |
cabin | economy, premium_economy, business, first. |
maxStops | any, nonstop, one, two: Google's own filter. |
currency, market, language | Prices in this currency for this point of sale (us, de, br), names in this language. |
includeReturnFlights, maxOutboundsToExpand | Fetch the return options of the first N outbounds (one extra page each). |
maxItinerariesPerSearch | Keep only the first N; 0 keeps all Google shows (usually 20–35). |
residentialFallback | Retry through residential proxies when Google refuses the datacenter IPs. Default on. |
{"origin": "JFK","destination": "LAX","departureDates": ["2026-11-10", "2026-11-11", "2026-11-12"],"stayNights": 7,"adults": 2,"cabin": "economy","maxStops": "nonstop","currency": "USD","market": "us"}
Output example
{"searchIndex": 1,"status": "ok","reason": null,"tripType": "round_trip","origin": "JFK","originName": "John F. Kennedy International Airport","destination": "LAX","destinationName": "Los Angeles International Airport","departureDate": "2026-11-10","returnDate": "2026-11-17","passengers": { "adults": 2, "children": 0, "infantsInSeat": 0, "infantsOnLap": 0 },"cabin": "economy","maxStops": "nonstop","currency": "USD","market": "us","language": "en","rank": 1,"isBest": true,"price": 1066,"airlines": ["AA"],"airlineNames": ["American"],"stops": 0,"durationMinutes": 371,"departure": "2026-11-10T06:00","arrival": "2026-11-10T09:11","segments": [{ "airline": "AA", "airlineName": "American", "flightNumber": "171", "from": "JFK", "fromName": "John F. Kennedy International Airport", "to": "LAX", "toName": "Los Angeles International Airport", "departure": "2026-11-10T06:00", "arrival": "2026-11-10T09:11", "durationMinutes": 371, "aircraft": "Airbus A321neo", "legroom": "31 in", "co2Kg": 324 }],"layovers": [],"returnStops": null,"returnDurationMinutes": null,"returnDeparture": null,"returnArrival": null,"returnSegments": null,"returnLayovers": null,"emissions": { "co2Kg": 324, "typicalCo2Kg": 361, "differencePercent": -10 },"priceInsights": { "lowestPrice": 864, "usualPrice": 704, "typicalLow": 410, "typicalHigh": 820, "level": "high" },"priceHistory": [{ "date": "2026-09-10", "price": 348 }],"url": "https://www.google.com/travel/flights/search?tfs=…&hl=en&gl=us&curr=USD","scrapedAt": "2026-09-18T12:00:00.000Z"}
Prices: what to expect
priceis the total for every traveller in the search, as Google shows it. Two adults pay twice a one-adult search, give or take fare classes.- Google prices by point of sale. A fare seen from Germany is not the fare seen from the US, even in the same currency: set
marketto the country you would buy from, or the numbers will not match your own browser. - Round trips show the lowest total per outbound until the return options are fetched; the pair rows carry the exact total.
- Prices change by the hour.
scrapedAtsays when the row was read, andpriceHistoryhow the lowest fare moved.
Use cases
- Fare monitoring: schedule a run per route and date set; alert when
priceorpriceInsights.lowestPricedrops. - Flexible dates: list the dates you could fly and compare the lowest fare of each search.
- Route and airline analysis: which carriers fly a route, with how many stops, at what times and what CO2.
- Travel apps and content: feed live fares and itineraries into a site, a spreadsheet or an agent, with a deep link per itinerary.
Limits and honesty
- A search returns what Google shows on its first screen (typically 20–35 itineraries: its picks plus "other flights"). Use the stops filter, the cabin and the dates to narrow.
- The page's "more flights", the price graph and the date grid are not reachable without a Google session. A flexible range is one search per date here.
- Multi-city trips are not supported yet (paste a link and the first leg's options come back).
- Google's data is Google's: airline names and airport names come in the
languageyou choose.
Pricing
Pay per event: one itinerary event per row with status ok. Rows with any other status are free, and so is every request that gave nothing. Set a spending limit on the run and the Actor stops at it.
Legal
The Actor reads publicly available fare listings that Google Flights shows to anyone, without logging in. It stores no personal data. Use the data in line with Google's terms and your local law; scheduled fare monitoring for your own routes is what it is built for.