Google Flights Scraper API: Airfare, Prices & Price History avatar

Google Flights Scraper API: Airfare, Prices & Price History

Pricing

from $0.20 / 1,000 flight itineraries

Go to Apify Store
Google Flights Scraper API: Airfare, Prices & Price History

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

John Vedovino II

Maintained by Community

Actor 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

FieldNotes
priceTotal for all passengers in your currency. For a round trip it is Google's round-trip total for that outbound option.
isBest, rankGoogle's "Best" group and the row's position in its list.
airlines, departure, arrival, durationMinutes, stopsLocal 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 co2TypicalGramsGoogle'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. +N means N days after the run date, so a schedule keeps looking the same distance ahead. Compare each insight row's lowestPrice with 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: 7 returns 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

InputDefaultNotes
routes["JFK-LAX"]Two IATA codes per line: EWR-LHR.
departureDates+30YYYY-MM-DD or +N days from today. Past dates are skipped.
tripLengthDays00 = one-way; N = round trip returning N days later.
cabineconomyeconomy · premium-economy · business · first
adults, children1, 0
maxStopsanyany · 0 (nonstop) · 1 · 2
currencyUSDAny currency Google Flights supports.
maxResultsPerSearch50Caps rows and cost per route × date.
includePriceInsightstrueThe insight row per search.
proxyConfigurationoffOnly if the log reports blocked.

Pricing (pay per event)

EventPrice
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: