Google Flights Scraper — Cheapest Dates, Fares & Price Alerts
Pricing
from $0.04 / 1,000 cheapest fare (route × date)s
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
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); aROUTESsummary 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_uporunchanged, 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_downfares 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:
| View | What you get |
|---|---|
| Cheapest fares | One 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 route | Every date of each route with its price and how much more it costs than the route's cheapest date |
| Alternatives | The next-cheapest itineraries, one per row |
| Flight legs | Each flight of the cheapest itinerary: flight number, operating carrier, airports, times, aircraft, legroom |
| Price insights | Google's price level, typical range, cheapest nonstop, fastest option and CO₂ |
| Price alerts | Monitor 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:
| errorCode | Meaning |
|---|---|
INVALID_ROUTE | The line is not ORIGIN-DESTINATION (e.g. JFK-LAX) |
INVALID_LOCATION | Unknown airport code or city name |
SAME_ORIGIN_DESTINATION | Origin and destination are the same |
INVALID_DATE | The date line can't be read |
NO_FLIGHTS | Google Flights has no priced flights for that route, date and filters |
BLOCKED | Google showed an anti-bot check — lower Parallel searches or use the RESIDENTIAL proxy group |
CONSENT_REQUIRED | European IP sent to Google's cookie page — use a US proxy |
SOURCE_ERROR / UNPARSABLE | Google 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 plan | Price 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 readROUTES. - Deal hunting: schedule a daily run with a monitor name, turn on Output only price changes and filter
priceLevel = loworisBelowTarget = true. - City vs airport:
NYC,LON,PAR,TYO,BUEand other city codes search every airport of the city;JFK/EWRsearches 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
BLOCKEDrows, lower Parallel searches. - Integrations: run it from Make, Zapier, n8n or the Apify API and send
price_downfares 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.