Google Flights Scraper - Fares, Routes & Schedules avatar

Google Flights Scraper - Fares, Routes & Schedules

Pricing

from $0.70 / 1,000 flight results

Go to Apify Store
Google Flights Scraper - Fares, Routes & Schedules

Google Flights Scraper - Fares, Routes & Schedules

Scrape Google Flights without a login. Get every itinerary for any route and date: fare, airline, flight numbers, stops, layovers, aircraft, legroom, CO2 and whether the fare is cheap for that route. One-way and round trip, any currency.

Pricing

from $0.70 / 1,000 flight results

Rating

0.0

(0)

Developer

Crikit

Crikit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What is Google Flights Scraper?

Google Flights Scraper lets you extract live airfares, schedules and routes from Google Flights, helping you track fare drops on the routes you care about, feed a travel product with real inventory, and answer "when is this route actually cheap" with data instead of a hunch.

  • ✈️ Track fares on autopilot: price any route across a whole month of departure dates in one run, then schedule it daily and watch the curve move.
  • 🧭 Search whole cities, not single airports: city codes such as NYC, LON and TYO cover every airport in the metro, so you see the cheapest way out of a region rather than the cheapest way out of one terminal.
  • 💸 Know if today's fare is good: every row carries Google's own typical price for that route and date, plus the usual price range, so a fare is either cheap, normal or expensive instead of just a number.
  • 🛬 Get the whole itinerary, not a headline price: flight numbers, aircraft type, each segment, every layover airport and how long you sit there.
  • 🌱 Compare emissions: grams of CO2 per itinerary and per segment, against the typical emissions for that route.
  • 🔁 One run, many searches: origins, destinations and dates are combined automatically, so three origins by two destinations by thirty dates is one input, not 180.

Google publishes no public flight search API. Google Flights Scraper reads the same data the website shows, with no login, no cookies and no API key, and returns every itinerary on the page rather than the three Google highlights at the top.

What data does Google Flights Scraper extract?

  • 💲 Fare for the whole party, in your chosen currency (price, priceCurrency)
  • 🏷 Whether Google ranked it a best flight (isBest)
  • ✈️ Airline names and code (airlines, mainAirlineCode)
  • 🔢 Every flight number on the itinerary (flightNumbers)
  • 🛫 Departure and arrival airports, codes and full names
  • 🕓 Departure and arrival date and time, in local airport time
  • ⏱ Total journey time in minutes and as readable text (durationMinutes, durationText)
  • 🔁 Number of stops (stops)
  • ⏳ Every layover: airport, code and how long you wait (layovers)
  • 🧩 Per-segment detail: origin, destination, times, duration, airline, flight number, aircraft type, legroom, operating carrier and CO2 (segments)
  • 🌱 CO2 for the itinerary, the typical CO2 for that route, and the percentage difference
  • 📉 Google's typical price for the route and date, the usual price range, and how much cheaper than usual today is (routeTypicalPrice, routeTypicalPriceLow, routeTypicalPriceHigh, routeSavingVsTypical, routePriceLevel)
  • 🔗 The Google Flights URL for the exact search, so any row can be opened and verified
  • 🎫 Google's booking token for the itinerary (bookingToken)
  • 🗓 The search that produced the row: origin, destination, dates, trip type, cabin, passenger counts, currency

How to use Google Flights Scraper

  1. Open the actor and enter one or more origin and destination airport codes, for example JFK and LAX.
  2. Enter your departure dates. Use 2026-12-20 for a fixed date, or +30d for "30 days from whenever this runs", which keeps a scheduled run working forever.
  3. For a round trip, add a return date. A single +7d prices a 7-night trip from every departure date you listed.
  4. Set Max results so the cost is capped, and pick a currency.
  5. Run it, then export to JSON, CSV or Excel, or pull it straight from the Apify API.

Input

{
"origins": ["JFK", "EWR"],
"destinations": ["LHR"],
"departureDates": ["+30d", "+37d", "+44d"],
"returnDates": ["+7d"],
"cabinClass": "economy",
"maxStops": "any",
"adults": 1,
"currency": "USD",
"country": "us",
"includeOtherFlights": true,
"maxItems": 500
}

That input runs six searches: two origins by one destination by three departure dates, each priced as a 7-night round trip.

Relative dates

departureDates and returnDates accept YYYY-MM-DD or a relative offset such as +30d. A relative departure counts from the day the run starts. A relative return counts from its own departure date, so +7d always means a 7-night trip. Relative dates exist so a saved input or a daily schedule does not quietly go stale and start failing.

Output

One row per itinerary. Trimmed for readability:

{
"searchOrigin": "JFK",
"searchDestination": "LAX",
"departureDate": "2026-10-23",
"tripType": "one-way",
"price": 239,
"priceCurrency": "USD",
"isBest": true,
"airlines": ["Delta"],
"mainAirlineCode": "DL",
"flightNumbers": ["DL1915"],
"departureDateTime": "2026-10-23T17:45:00",
"arrivalDateTime": "2026-10-23T20:50:00",
"durationMinutes": 365,
"durationText": "6 hr 5 min",
"stops": 0,
"layovers": [],
"segments": [
{
"departureAirportCode": "JFK",
"departureAirportName": "John F. Kennedy International Airport",
"arrivalAirportCode": "LAX",
"arrivalAirportName": "Los Angeles International Airport",
"departureDateTime": "2026-10-23T17:45:00",
"arrivalDateTime": "2026-10-23T20:50:00",
"durationMinutes": 365,
"airline": "Delta",
"flightNumber": "DL1915",
"aircraft": "Boeing 767",
"legroom": "31 in",
"co2Grams": 228763
}
],
"co2Grams": 229000,
"co2TypicalGrams": 377000,
"co2PercentVsTypical": -34,
"routeLowestPrice": 215,
"routeTypicalPrice": 179,
"routeTypicalPriceLow": 110,
"routeTypicalPriceHigh": 235,
"routePriceLevel": "typical",
"searchUrl": "https://www.google.com/travel/flights?tfs=...",
"scrapedAt": "2026-09-23T16:43:36Z"
}

Three table views ship with the dataset: Overview for route, date, fare, airline, stops and times; Price watch for each fare against the typical price for that route; and Itinerary detail for schedules, aircraft, layovers and emissions.

Times are local to the airport, which is how a ticket reads. Google publishes no UTC offset with them, and converting without one would silently shift every departure.

How much does it cost to scrape Google Flights?

A flat $0.70 per 1,000 results. One result is one itinerary. There is no per-run charge and no platform usage on top.

ResultsCost
1,000$0.70
10,000$7.00
100,000$70.00

A full search on a busy route returns 30 to 160 itineraries, so pricing one route and date costs roughly $0.02 to $0.11.

Monitoring mode is much cheaper. Set includeOtherFlights to false and each search returns only the three to five itineraries Google ranks as best flights, which is about $0.003 per route and date. Checking 50 routes every day for a month costs around $4.50.

The cheapest comparable actor on the Store charges $1.00 per 1,000 plus $0.005 every time a run starts.

Measured coverage

From QA runs on 2026-09-23 covering 600 itineraries across JFK, ORD, LHR and MIA, one way and round trip, economy and business, USD and EUR, through the Apify datacenter proxy:

FieldCoverageNote
price, priceCurrency100%
airlines, mainAirlineCode, flightNumbers100%
Departure and arrival times, durationMinutes, stops100%
segments and every field inside them100%1,229 segments checked
legroom (per segment)97%a few carriers do not publish it
layovers100% of itineraries with a stopnonstop itineraries correctly have none
co2Grams, co2PercentVsTypical99.8%
routeTypicalPrice and the price range83%Google does not compute an insight for every route and date

Limits

  • One search is one route and one date. Google Flights has no "cheapest month" feed behind this endpoint, so a 30-day sweep is 30 searches.
  • Round-trip fares are the total for the pairing Google shows. Choosing a specific return leg happens after booking starts, which is past the point this actor reads.
  • No per-itinerary booking link. bookingToken is Google's own opaque handle for the itinerary; resolving it into an airline or OTA deep link needs a second Google call this actor does not make. Every row does carry searchUrl, which reopens the exact search.
  • Dates beyond roughly 11 months are rejected by Google. The row explains it rather than failing the run.
  • Fares move. Two runs minutes apart can differ, because airline inventory does.
  • No seat maps, fare rules or baggage allowances. Google does not expose them here.

FAQ

Google Flights Scraper reads only public pages that anyone can open in a browser, with no account, no login and no cookies. It collects no personal data. Scraping publicly available information is generally lawful in the US and EU, but how you use the data is your responsibility, including compliance with Google's terms and with any local rules. If you are unsure, take legal advice. Apify's ethical scraping guidance is a good starting point.

Can I use Google Flights Scraper as an API?

Yes. Every actor on Apify is callable over HTTP. Start a run, poll it, and read the dataset, all from the Apify API. There is a ready-made API endpoint on the actor page with your token already filled in.

Can I use this in Python?

Yes, with apify-client:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cirkit/google-flights-scraper").call(run_input={
"origins": ["JFK"], "destinations": ["LAX"], "departureDates": ["+30d"], "maxItems": 100,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["price"], row["mainAirlineCode"], row["durationText"])

How do I schedule Google Flights Scraper to run automatically?

Use Apify Schedules and point it at a saved input. Set your departure dates as relative offsets such as +30d and +60d so a daily schedule always looks the same distance ahead instead of asking about a date that has already passed.

Can I integrate Google Flights Scraper with other apps?

Yes. Apify connects to Zapier, Make, n8n, Slack, Google Sheets, Airtable and plain webhooks, so a run can push new fares straight into a sheet or fire an alert when a price drops.

How do I watch a route for price drops?

Schedule the actor daily with includeOtherFlights set to false, which keeps only the best itineraries and costs about $0.003 per route and date. Each row carries routeTypicalPrice and routePriceLevel, so an alert can be as simple as "tell me when routePriceLevel is low".

Why did I get fewer results than expected?

Three common reasons. A maxStops filter of nonstop cuts most routes to a handful of itineraries. Business and first class have far less inventory than economy, so a business search on a thin route can return under ten rows. And maxItems applies across every search in the run, so a low cap with many routes stops before it reaches the later ones.

What happens if a route has no flights?

The run still succeeds and writes one row with noResults set to true and a message explaining why, so an empty result is never confused with a broken run. The same happens for an unrecognised airport code or a departure date in the past.

Do I need residential proxies?

No. The Apify datacenter proxy is enough, which is why this actor is cheap to run. The default proxy setting works as shipped.

Can I get a field that is not listed?

If it appears on the Google Flights results page, probably yes. Open an issue on the actor and say which field and which route shows it.

You might also like

Changelog

0.1 (2026-09-23) First release. One-way and round-trip search, city and airport codes, four cabin classes, stop filters, multi-passenger parties, any currency and market, per-segment detail, layovers, emissions and Google's own price insights.