Google Flights Scraper — Fares, Itineraries & Price Insights
Pricing
from $10.00 / 1,000 flight searches
Google Flights Scraper — Fares, Itineraries & Price Insights
Google Flights itineraries for any route and dates: total and per-person fares, airlines, flight numbers, segments, layovers, CO2, price insights and booking options.
Pricing
from $10.00 / 1,000 flight searches
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape Google Flights for any route and dates: every itinerary Google shows with its total and per-passenger fare, airlines and flight numbers, every segment (airports, local departure and arrival times, duration, aircraft, legroom), layovers (airport, length, overnight, change of airport), CO2 emissions vs. typical, the "Top flights" flag and a Google Flights link, plus Google's price insights for the search: whether prices are currently low, typical or high, the typical price range and the 60-day price history. Round trips come as complete itineraries (outbound + return) at Google's exact round-trip total. Optionally get each itinerary's booking options (airline or travel agency, price, fare name).
Use it for fare tracking and price alerts, route and airline market research, travel-deal sites, corporate travel budgeting and flight price datasets.
What data does it extract?
| Field | Example | Notes |
|---|---|---|
price, priceExact, pricePerPassenger, currency | 817, 816.39, 817, USD | price as Google shows it (total for all passengers, rounded up); priceExact from Google's fare token |
tripType, isBest, position | round_trip, true, 1 | isBest = in Google's "Top flights" |
airlines, airlineCodes, flightNumbers | ["American", "British Airways"], ["AA", "BA"], ["AA 100", "BA 177"] | all legs |
departureAirport, arrivalAirport (+ ...Name) | JFK, LHR | outbound leg |
departureTime, arrivalTime, duration, durationMinutes, stops | 2026-11-10T18:25, 2026-11-11T06:20, 6 hr 55 min, 415, 0 | local airport times |
returnDepartureTime, returnArrivalTime, returnDurationMinutes, returnStops | 2026-11-17T12:55, ... | round trips |
legs[] | direction, airports, times, duration, stops, segments[], layovers[] | full detail per direction |
legs[].segments[] | flightNumber, airline, airports, times, durationMinutes, aircraft, legroom, seatType, arrivesNextDay, alsoSoldAs (codeshares), emissionsKg | one per flight |
legs[].layovers[] | {"airport": "FLL", "city": "Fort Lauderdale", "durationMinutes": 93, "overnight": false, "changeOfAirport": false} | |
emissionsKg, typicalEmissionsKg, emissionsDifferencePercent | 549, 344, 60 | Google's CO2 estimate vs. a typical flight on the route |
priceLevel, lowestPrice, typicalPriceLow, typicalPriceHigh | high, 720, 480, 690 | Google's price insights for the search |
priceHistory | [{"date": "2026-10-11", "price": 720}, ...] | lowest price per day, last ~60 days |
googleFlightsUrl, searchUrl, bookingToken | https://www.google.com/travel/flights/booking?tfs=... | open the itinerary or the search on Google Flights |
itineraryId | 2026-11-10 AA100 / 2026-11-17 BA177 / economy / 1-0-0-0 | dates + flight numbers + cabin + passengers |
searchComplete | true | false when Google never finished pricing the search (see Limitations) |
origin, destination, departureDate, returnDate, cabinClass, adults, children, infantsOnLap, infantsInSeat | the search | |
bookingOptions | [{"seller": "American", "isAirline": true, "price": 817, "fareName": "Basic Economy", "website": "www.aa.com"}, ...] | with Include booking options |
How to scrape Google Flights
- Enter From and To: airport codes (
JFK,LHR), cities (New York,Tokyo), metro codes (NYC) or several airports (JFK, EWR). Add more routes in More routes, or paste Google Flights URLs. - Set the departure date (
2026-12-20, or+30 daysfor a rolling date) and, for a round trip, the return date. - Choose passengers, cabin class, stops, airlines to include or exclude, a max price, the currency and the country Google prices for, and the sort order.
- Run. Download JSON, CSV or Excel, or read the dataset through the API.
{"origin": "New York","destination": "London","departureDate": "2026-12-18","returnDate": "2027-01-04","adults": 2,"cabinClass": "economy","stops": "nonstop","sortBy": "cheapest","currency": "USD","maxResultsPerSearch": 10}
Example output (abridged, real data for JFK -> LHR, Nov 10-17):
{"itineraryId": "2026-11-10 AA100 / 2026-11-17 BA177 / economy / 1-0-0-0","tripType": "round_trip","isBest": true,"price": 817,"priceExact": 816.39,"pricePerPassenger": 817,"currency": "USD","airlines": ["American", "British Airways"],"flightNumbers": ["AA 100", "BA 177"],"departureAirport": "JFK","arrivalAirport": "LHR","departureTime": "2026-11-10T18:25","arrivalTime": "2026-11-11T06:20","duration": "6 hr 55 min","stops": 0,"returnDepartureTime": "2026-11-17T12:55","returnArrivalTime": "2026-11-17T16:00","legs": [{"direction": "outbound", "flightNumbers": ["AA 100"], "segments": [{"flightNumber": "AA 100","aircraft": "Boeing 777", "legroom": "31 in", "seatType": "Average legroom", "arrivesNextDay": true,"alsoSoldAs": ["IB 4218", "BA 1511", "AY 3772"], "emissionsKg": 398}], "layovers": []},{"direction": "return", "flightNumbers": ["BA 177"], "...": "..."}],"emissionsKg": 716,"typicalEmissionsKg": 775,"emissionsDifferencePercent": -8,"priceLevel": "high","lowestPrice": 720,"typicalPriceLow": 480,"typicalPriceHigh": 690,"priceHistory": [{"date": "2026-10-10", "price": 714}, {"date": "2026-10-11", "price": 720}],"googleFlightsUrl": "https://www.google.com/travel/flights/booking?tfs=...&hl=en&gl=us&curr=USD"}
One-way, round trip and multi-city
- One way: leave the return date empty. One request returns every itinerary Google shows for the day (typically 20-40), with the Top flights first.
- Round trip: Google first lists outbound flights priced as round-trip totals. For each outbound flight the actor asks Google for its return flights and outputs the best (or cheapest, per Sort by) Return flights per outbound as complete itineraries at Google's exact round-trip total. Set it to 0 to get only the outbound list.
- Multi-city searches are not supported: Google loads them through a streaming channel this actor does not use.
Track flight prices: monitor changes on a schedule
Turn on Only new or changed items, set fixed dates for the trip you want to watch and save the input as a
task with a Schedule (e.g. daily at 8:00). Each run then outputs only itineraries that are new for this search
or whose price changed; unchanged itineraries are not output and not charged (the search itself is). New items
carry changeType: "new", changed ones changeType: "changed" and previousValues with the old price
({"price": 817}), so you can send an alert or a webhook only when a fare moves. An itinerary is identified by its
dates and flight numbers (plus cabin and passengers). With a relative date (+30 days) the travel date moves every
day, so every run reports the day's fares as new - good for a rolling daily fare feed, not for a change watch.
Give each watch its own Monitoring key if several schedules search the same route.
Price insights: is now a good time to buy?
Every itinerary row carries Google's insights for its search: priceLevel (low, typical or high, the label
Google shows as "Prices are currently ..."), the typical price range (typicalPriceLow-typicalPriceHigh,
what this trip usually costs) and priceHistory - the lowest price for these dates on each of the last ~60 days.
Insights come with Google's default ranking and are the same for every row of a search.
Does it need a login, an API key or a special proxy?
No. It reads Google Flights the way the Google Flights page does, through Apify's standard datacenter proxy: no Google account, no API key, no paid SERP or residential proxy. A search is one ~75 KB request; a round trip adds one per outbound flight; booking options add one per itinerary.
Pricing
Pay per event: $0.01 per search (one route and its dates, including the price insights) plus $0.0004 per itinerary. A full one-way search of ~30 itineraries costs about $0.022; ten complete round trips about $0.014. Include booking options adds $0.002 per itinerary that has booking options. Platform usage (compute, datacenter proxy) is billed by Apify and is a fraction of a cent per search.
Limitations
- Google returns a curated set of itineraries per search (usually 20-40) and the actor outputs all of them. Sorting by price or duration re-orders that set (a price-sorted request to Google returned the same set).
- Amenity icons (Wi-Fi, power, entertainment) come as unlabeled codes and are not exported; legroom and seat type are.
- Fares are what Google shows for the country and currency you choose; booking sites can price differently.
- Searches with children (and now and then other multi-passenger round trips) are priced more slowly by Google: its quick answer often holds a single airline. The actor notices that (Google flags a finished search) and switches to the streaming request the Google Flights page itself uses, which takes 20-50 s per request; a round trip then needs that time per outbound flight too. Searches for adults only usually answer in under a second.
Is it legal to scrape Google Flights?
The actor collects publicly visible fares and flight schedules without logging in, at a modest request rate. Flight numbers, schedules and prices are business information, not personal data. Check the terms that apply to your use of the data, especially for republishing.