Google Flights Scraper API: Airfare, Prices & Price History
Pricing
from $0.20 / 1,000 flight itineraries
Google Flights Scraper API: Airfare, Prices & Price History
Google Flights API for any route and dates: flight prices, airlines, times, duration, stops, every segment (flight number, aircraft, legroom), layovers, CO2, plus Google's lowest price and ~60-day price history for fare tracking. No browser, no login. $0.20 per 1,000 flights.
Pricing
from $0.20 / 1,000 flight itineraries
Rating
0.0
(0)
Developer
John Vedovino II
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Google Flights Scraper — fares, segments, price history
Google Flights results for any route and dates — price, airlines, times, duration, stops, every segment with flight number, aircraft and legroom, layovers, CO2 — plus Google's own lowest price and its ~60-day daily price history for each search. One plain HTTP request per search. No browser, no login, no API key. $0.20 per 1,000 itineraries.
Why it is cheap and fast
A Google Flights search page carries its results as structured JSON inside the page. This Actor builds the search URL directly (the tfs query parameter), fetches it once and reads that JSON — it does not launch a headless browser or click through the UI. A search takes about 2–3 seconds, and the Actor's compute cost is a fraction of a browser-based scraper's.
What you get
| Field | Notes |
|---|---|
price | Total for all passengers in your currency. For a round trip it is Google's round-trip total for that outbound option. |
isBest, rank | Google's "Best" group and the row's position in its list. |
airlines, departure, arrival, durationMinutes, stops | Local times, YYYY-MM-DDTHH:MM. |
segments[] | Each leg: flightNumber (e.g. B61023), aircraft, legroom, from/to, times, minutes, co2Grams. |
layovers[] | Airport, city, minutes on the ground. |
co2Grams vs co2TypicalGrams | Google's emissions estimate for the itinerary and for a typical flight on the route. |
insight row (type: "insight") | One per search: lowestPrice, cheapestListed, flightsListed, and priceHistory — ~60 daily {date, price} points. This is the input for a price-drop alert. |
A real record
From a live run on 2026-10-04 (JFK → LAX, nonstop only):
{"type": "flight","origin": "JFK", "destination": "LAX","departureDate": "2026-11-03", "returnDate": null, "tripType": "one-way","cabin": "economy", "adults": 1, "currency": "USD","rank": 1, "price": 204, "isBest": true,"airlines": ["JetBlue"], "airlineCode": "B6","departure": "2026-11-03T09:15", "arrival": "2026-11-03T12:36","durationMinutes": 381, "stops": 0, "layovers": [],"segments": [{"from": "JFK", "to": "LAX", "departure": "2026-11-03T09:15", "arrival": "2026-11-03T12:36","durationMinutes": 381, "airline": "JetBlue", "flightNumber": "B6223","aircraft": "Airbus A320", "legroom": "32 in", "co2Grams": 411426}]}
The same run's insight row: lowestPrice: 204, flightsListed: 29, and 62 daily price points starting at $174 two months earlier.
How to use it
- Price watch:
routes: ["JFK-LAX"],departureDates: ["+30", "+45", "+60"], schedule it daily.+Nmeans N days after the run date, so a schedule keeps looking the same distance ahead. Compare each insight row'slowestPricewith yesterday's. - Fare grid: several routes × several dates in one run — every route is searched on every date (up to 200 searches a run).
- Round trips:
tripLengthDays: 7returns outbound options priced as a 7-day round trip. - n8n / Make / Zapier: call the Actor's run-sync endpoint and read the dataset; filter
type == "insight"for alerts,type == "flight"for the itineraries.
Inputs
| Input | Default | Notes |
|---|---|---|
routes | ["JFK-LAX"] | Two IATA codes per line: EWR-LHR. |
departureDates | +30 | YYYY-MM-DD or +N days from today. Past dates are skipped. |
tripLengthDays | 0 | 0 = one-way; N = round trip returning N days later. |
cabin | economy | economy · premium-economy · business · first |
adults, children | 1, 0 | |
maxStops | any | any · 0 (nonstop) · 1 · 2 |
currency | USD | Any currency Google Flights supports. |
maxResultsPerSearch | 50 | Caps rows and cost per route × date. |
includePriceInsights | true | The insight row per search. |
proxyConfiguration | off | Only if the log reports blocked. |
Pricing (pay per event)
| Event | Price |
|---|---|
| Flight itinerary | $0.0002 each — $0.20 per 1,000 |
| Price insight | $0.0002 per successful search |
No start fee. Searches that fail or are blocked are not charged. Example: 10 routes × 3 dates with 50 itineraries each = 1,500 rows + 30 insights = $0.31. The default input (one route, one date) costs about one cent.
Limits, stated plainly
- Google can change its page layout without notice. Every field is read defensively (a layout change yields
null, not a crash), and the Actor is tested against a pinned fixture of the live response; if Google moves things, fields go null until it is updated. - Searches are paced at ≥ 2 seconds apart and that is not configurable — it keeps runs from tripping Google's rate wall.
- Return-leg options for a round trip are a second, outbound-specific page on Google Flights; this Actor returns the outbound options with their round-trip price.
- Prices are what Google Flights displays for the given locale and currency at run time; book on the airline or agent site Google links to.
More Actors by johnveds15
Same pay-per-result pricing, same JSON/CSV output, no login needed: