Google Flights Scraper — Cheapest Dates, Fares & Price Alerts avatar

Google Flights Scraper — Cheapest Dates, Fares & Price Alerts

Pricing

from $0.04 / 1,000 cheapest fare (route × date)s

Go to Apify Store
Google Flights Scraper — Cheapest Dates, Fares & Price Alerts

Google Flights Scraper — Cheapest Dates, Fares & Price Alerts

Find the cheapest Google Flights fare for many routes and flexible dates (a range or a whole month): price, airline, stops, times, Google's low/typical/high signal and 60-day history. Price alerts between runs. Pay per route × date.

Pricing

from $0.04 / 1,000 cheapest fare (route × date)s

Rating

0.0

(0)

Developer

Cleancut Data

Cleancut Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Find the cheapest Google Flights fare for every route and every date you care about: one route or hundreds, a single day, a date range or any day of the month. Each route × date gives you the cheapest price, airline, stops, duration and times, the next-cheapest alternatives, Google's price signal (low / typical / high) with the typical price range and 60-day price history, and the cheapest date of each route. Schedule it with a monitor name and get price-drop alerts between runs.

You only pay for fares delivered: one route × date = one result, not one row per flight. Routes or dates that can't be priced are reported for free.

What can it do?

  • 🗺️ Many routes in one run — one per line (EZE-MAD, NYC → LON, Buenos Aires - Madrid) or an origins × destinations matrix (3 origins × 4 destinations = 12 routes).
  • 📅 Flexible dates — single dates, ranges (2026-12-01..2026-12-15), whole months (2026-12) or days from today (+30..+36).
  • 💸 The cheapest fare per route × date — price, airline and logo, flight numbers, stops, layovers, duration, local departure and arrival times, bags included, CO₂ and a link that opens that exact search on Google Flights.
  • 🥇 The cheapest date of each route — every row says if it is the cheapest date (isCheapestDate) and how much more it costs (priceVsCheapestDate); a ROUTES summary gives the cheapest, most expensive and average price per route.
  • 📉 Google's price insights, free — priceLevel (low / typical / high), the typical price range and the lowest price on each of the last 60 days.
  • 🔁 One-way or round trip — round trips return after N nights; the price is the total for both flights and the cheapest return flight comes with it, free.
  • 🔔 Price alerts (monitor mode) — every fare is compared with the previous run: new, price_down, price_up or unchanged, the previous price and the change in $ and %. Mark fares under your target price, or output only the changes (unchanged fares are not charged).
  • 🧭 Free plan mode — check your routes and dates and see every search with its Google Flights link and the maximum cost, before paying anything.
  • 🎛️ Passengers, cabin and filters — adults, children, infants, economy to first, max stops, airlines or alliances to include or exclude, max duration, departure time window, any currency and country.
  • ⚡ Fast & lightweight — plain HTTP, no browser: 30 fares in about 30 seconds on Apify. Airport codes, city codes and city names (Buenos Aires, Londres, Bariloche) all work.

Who is it for?

  • ✈️ Travel agencies & OTAs — publish the best fare per route and date, or quote a client the cheapest day of the month.
  • 📰 Flight-deal sites & newsletters — scan dozens of routes every morning and keep only the fares Google marks as low.
  • 🔔 Price-alert apps — schedule a monitor and push price_down fares or fares under a target to your users.
  • 🧳 Frequent travelers — watch your routes and buy when the price drops.
  • 🤖 AI travel agents — call it through the Apify MCP server; every field is documented for the model.

Flight + hotel: pair it with Google Hotels Rate Shopper to price the hotel for the same dates on every booking site — a complete trip quote from two scheduled runs.

Input example

{
"routes": ["NYC-LON", "Buenos Aires - Madrid"],
"departureDates": ["2026-12"],
"tripType": "round-trip",
"nights": 7,
"adults": 2,
"cabinClass": "economy",
"maxStops": "1",
"currency": "USD",
"country": "US",
"monitorName": "europe-december",
"targetPrice": 600
}

Every field also accepts the names other flight Actors use (origin, destination, departureDate, returnDate, cabin, stops, maxResults), so existing integrations work as they are.

Output example

A real fare (Buenos Aires → Madrid, searched on 4 Nov 2026), shortened:

{
"status": "ok",
"route": "BUE → MAD",
"origin": "Buenos Aires",
"destination": "Madrid",
"departureDate": "2026-12-04",
"tripType": "one-way",
"currency": "USD",
"googleFlightsUrl": "https://www.google.com/travel/flights?tfs=CBwQAhoeEgoyMDI2LTEyLTA0agcIARIDQlVFcgcIARIDTUFEQAFIAXABmAEC&hl=en&gl=US&curr=USD",
"airlineLogoUrl": "https://www.gstatic.com/flights/airline_logos/70px/AZ.png",
"price": 560,
"airline": "ITA, Air Europa",
"flightNumbers": ["AZ 683", "UX 1048"],
"stops": 1,
"durationMinutes": 1125,
"departureAirport": "EZE",
"arrivalAirport": "MAD",
"departureTime": "2026-12-04T22:20",
"arrivalTime": "2026-12-05T21:05",
"layovers": [{ "airport": "FCO", "city": "Rome", "durationMinutes": 205 }],
"emissionsKg": 766,
"priceLevel": "low",
"typicalPriceLow": 620,
"typicalPriceHigh": 960,
"priceHistory": [{ "date": "2026-11-03", "price": 734 }, { "date": "2026-11-04", "price": 734 }],
"cheapestNonstopPrice": 754,
"flightsFound": 12,
"alternatives": [{ "price": 560, "airline": "ITA", "flightNumbers": ["AZ 681", "AZ 64"], "stops": 1, "durationMinutes": 1810 }],
"routeCheapestDate": "2026-12-04",
"routeCheapestPrice": 560,
"isCheapestDate": true,
"priceVsCheapestDate": 0,
"scrapedAt": "2026-11-04T12:32:03.978Z"
}

With a monitor name, each fare also has changeType, previousPrice, priceChange, priceChangePercent and isBelowTarget. Round trips add returnDate, nights and returnFlight.

Output views

The Output tab (and the API, with ?view=) offers ready-made tables:

ViewWhat you get
Cheapest faresOne row per route and date: airline logo, price, airline, stops, duration, times, price level, cheapest-date flag and the Google Flights link
Cheapest date per routeEvery date of each route with its price and how much more it costs than the route's cheapest date
AlternativesThe next-cheapest itineraries, one per row
Flight legsEach flight of the cheapest itinerary: flight number, operating carrier, airports, times, aircraft, legroom
Price insightsGoogle's price level, typical range, cheapest nonstop, fastest option and CO₂
Price alertsMonitor mode: change vs the previous run and fares below your target
Errors (free)Why a route or date could not be priced

Every field is documented in the dataset schema (type, description and example), so AI agents and integrations know exactly what they get. The key-value store has a ROUTES record (cheapest date, most expensive date and average price per route) and a SUMMARY of the run.

Errors (free)

Routes or dates that can't be priced produce a free row with status: "error" at the end of the dataset:

errorCodeMeaning
INVALID_ROUTEThe line is not ORIGIN-DESTINATION (e.g. JFK-LAX)
INVALID_LOCATIONUnknown airport code or city name
SAME_ORIGIN_DESTINATIONOrigin and destination are the same
INVALID_DATEThe date line can't be read
NO_FLIGHTSGoogle Flights has no priced flights for that route, date and filters
BLOCKEDGoogle showed an anti-bot check — lower Parallel searches or use the RESIDENTIAL proxy group
CONSENT_REQUIREDEuropean IP sent to Google's cookie page — use a US proxy
SOURCE_ERROR / UNPARSABLEGoogle kept returning an internal error or an incomplete page (each search is retried up to 8 times, with a new IP, and once more at the end of the run)

Pricing

Pay per event — you only pay for fares delivered (one route × date, with its alternatives, price insights, history and return flight). Errors, plan mode and unchanged fares with “Output only price changes” are free.

Your Apify planPrice per 1,000 fares
Every plan (Free, Starter, Scale, Business…)$0.04

Plus a start fee of $0.0003 per run (at the default 256 MB of memory). Example: the cheapest day to fly in December on one route (31 dates) costs about $0.0015; a daily price alert on 10 routes × 30 dates costs about $0.36 a month. Other flight scrapers charge per flight row, and one search returns 15–70 of them. Set “Max fares in total” or the run's maximum cost to cap spending, or run plan mode first to see the maximum.

Tips

  • Find the cheapest day: put a whole month (2026-12) in Departure dates and open the Cheapest date per route view, or read ROUTES.
  • Deal hunting: schedule a daily run with a monitor name, turn on Output only price changes and filter priceLevel = low or isBelowTarget = true.
  • City vs airport: NYC, LON, PAR, TYO, BUE and other city codes search every airport of the city; JFK/EWR searches exactly those airports.
  • Proxy: searches go direct first (fastest) and only Google's temporary errors are retried through the proxy (Apify US datacenter by default) with a new IP. If you see BLOCKED rows, lower Parallel searches.
  • Integrations: run it from Make, Zapier, n8n or the Apify API and send price_down fares to Slack, email or your app.

Responsible scraping

The Actor only reads Google Flights' public search page (/travel/flights?tfs=…), which robots.txt allows. It does not open booking pages (/travel/flights/booking, disallowed), does not solve captchas or imitate a browser's fingerprint, and collects no personal data.

FAQ

Is the price the same as on Google Flights? Yes: it is the lowest price Google Flights lists for that search, in your currency and country. Prices change constantly; the googleFlightsUrl opens the same search so you can check and book.

What if I call it with an empty input? It runs a one-date demo search (NYC → LON) instead of failing, so AI agents and quick API tests always get a result. Add your own routes to search them.

Does it show where to book (airline vs. agency)? No. Booking options live on Google's booking pages, which robots.txt disallows for automated access. Use the link to open the search on Google Flights.

Why one result per route × date instead of per flight? Because that is what you need to find the cheapest fare. You still get the alternatives, and you pay one result instead of 15–70 rows.

Multi-city trips? Not yet: Google loads them only through its signed internal API. Search each leg as a one-way route.

How far ahead? Up to about 330 days, like Google Flights itself.

Changelog

  • 0.1 — First release: many routes and an origins × destinations matrix, flexible dates (ranges, whole months, days from today), one-way and round trip with the return flight, alternatives, bags included, Google's price level, typical range and 60-day history, cheapest date per route, price alerts with a target price, free plan mode and 7 output views.

More from Cleancut Data

  • 🏨 Google Hotels Rate Shopper: what every booking site charges for your hotels and dates, with taxes, free cancellation and rate-parity gaps. Pair it with this Actor for flight + hotel quotes.
  • 🎬 YouTube Transcript Scraper: transcripts in bulk from videos, channels, playlists and search, with SRT/VTT, AI-ready chunks, likes and publish dates.