Flight prices change every day, and checking them by hand gets old quickly. So I built a Google Flights scraper and fare tracker on Apify. You type routes the way you'd say them, pick dates, and get every flight back as a row in a table you can export. Put it on a schedule and each run gives you only new flights or lower prices.

The input

This is the run from the video:

{ "routes": ["New York to London"], "departureDates": ["+30"], "maxFlightsPerSearch": 20 } 

A route can be airport codes (JFK-LAX), a city code that covers all of a city's airports (NYC-LON), or plain city names. Dates can be one day, a range like 2026-12-01..2026-12-31, or +30, which means 30 days after the run date. That last one is what makes scheduled runs useful: a daily schedule always looks the same distance ahead.

There's also round trips (with the real return flights for the cheapest outbound options), passengers, cabin, nonstop or one-stop limits, airlines or alliances, 22 currencies and the country you're buying from.

The output

New York to London for December 5 came back with 20 flights in 3 seconds, from all three New York airports to three London airports. One row looks like this:

{ "route": "NYC-LON", "from": "JFK", "to": "LHR", "departure": "2026-12-05T18:00:00-05:00", "arrival": "2026-12-06T06:20:00+00:00", "duration": "7 h 20 min", "stops": 0, "airlines": "Virgin Atlantic", "flightNumbers": "VS4", "aircraft": "Airbus A330-900neo", "price": 300, "currency": "USD", "co2Kg": 369 } 

Each search also gets a row in a second table with the cheapest fare ($270 here), the cheapest nonstop ($300), Google's typical price for the trip ($279) and its verdict: low, typical or high. It includes Google's own price history for about the last 60 days. For this trip it was $197 two months ago and dipped to $109 one day.

The cheapest day in a month

One search per departure day from December 5 to January 4, keeping only the cheapest flight each day, turns the Searches table into a price calendar. December 8 to 10 cost $197. December 20 cost $512, and Google marked it high. That's 31 searches, which ran in 14 seconds.

What testing found

Time zones matter more than they look. An evening flight from New York lands in London the next morning. Each time keeps its UTC offset, so arrival above is Dec 6 even though the search was for Dec 5. I checked this on every row of a 300-search run: no arrival before its departure, and every duration matches the two timestamps.

Google's price level isn't three values. I first mapped it to low, typical and high, and an audit showed "high" days sitting inside Google's typical range. The real scale has five steps: one below the typical range, three inside it and one above. Comparing every search with its range made that obvious.

Not every city code works. City codes like NYC, LON, PAR and TYO cover several airports, but Google rejects Dallas's code and treats a few others as a single airport. I tested every code in the table and mapped those cities to their main airport. An example task that searched "Dallas to Cancun" caught it before release.

Memory. Google's result pages are 3.5 MB each, and the first version ran out of memory at 256 MB with six searches in parallel. It now decodes only the part of the page that holds the flights, about 70 KB, and peaks around 150 MB.

Pages sometimes arrive incomplete. About one page in twelve came back without flight data and worked on the next try, so every search retries a few times before it counts as failed. In a 300-search test, all 300 got an answer.

Tracking fares

Turn on "Only new flights or lower prices", give it a tracking name and schedule it. The first run saves everything it finds. Later runs save a flight only if it's new for that route and date, or its price dropped, with the previous price next to it. In my two test runs 12 minutes apart nothing had changed, so the second run saved nothing, and its Searches rows showed the cheapest fare at the same $270 and $384 as before.

Pricing

$1 per 1,000 flights saved and $0.50 per 1,000 searches, less on paid Apify plans. One route on one date with 20 flights costs about two cents. The search fee is there so scheduled checks that find nothing new still cover their cost; failed searches are free.

Try it

https://apify.com/cleanscrape/google-flights-scraper

Questions or ideas: contact.cleanscrape@gmail.com, or the Issues tab on the Actor page.

Niko, CleanScrape developer