Google Flights Scraper - Airfare, Price Calendar & Alerts
Pricing
from $1.28 / 1,000 flight delivereds
Google Flights Scraper - Airfare, Price Calendar & Alerts
Get Google Flights prices by origin, destination and date: fares with a booking link per flight, cheapest price for every date up to 10 months ahead, typical price range and alerts below your target or cheaper than the last run. Airline, stops and cabin filters. No login. Free input checks.
Pricing
from $1.28 / 1,000 flight delivereds
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Google Flights Scraper
Google Flights Scraper turns Google Flights airfare into clean JSON, CSV or Excel, without login or an API key: flight prices with a real booking link per flight, the cheapest price for every departure date, Google's typical price range, and price alerts that charge only for the fares you want. It returns three kinds of rows:
- Flights: price, airlines, stops, layovers, every leg with its flight number and aircraft, CO2, and a booking link for that flight.
- Price calendar: the cheapest price for every departure date up to about 10 months ahead, as in Google's date grid.
- Price insight: Google's typical price range for the route (low, typical or high) and about 60 days of price history.
Routes can be one way or round trip, from airport or city codes (NYC, LON). You can choose any cabin, passenger count, airline and currency.
Google Flights scraper pricing at a glance
| Event | Free plan | Bronze | Silver | Gold and above |
|---|---|---|---|---|
| Flight delivered, per 1,000 | US$ 1.50 | US$ 1.43 | US$ 1.35 | US$ 1.28 |
| Calendar date delivered, per 1,000 | US$ 1.00 | US$ 0.95 | US$ 0.90 | US$ 0.85 |
No start fee and no monthly fee. Price insight rows, input checks and error rows are free.
- 43 fields across the three row types (28 on a flight row, plus 8 more with price tracking), all in the output fields.
- Booking link per flight:
bookingUrlopens Google Flights with that flight selected, showing the airline and travel agency offers at the price in the row - Price alerts:
alertBelowPriceandonlyPriceDropsdeliver, and charge, only fares below your target or cheaper than in the previous run - Price calendar: cheapest price per departure date, up to ~290 dates per route in one run
- Price insight: typical price range, low/typical/high, ~60 days of history, free
- Routes: airport or city codes, several origins × destinations × dates in one run
- Filters: cabin, adults, children, max stops, airlines, currency, country
- Free input checks: past dates, unknown airport codes and a return before departure are free rows with an
errorCode, and the rest of the input still runs
What data the Google Flights scraper returns
Run on 2026-10-14, JFK to LHR, one way, 2 adults, airline BA. The booking link was opened in a browser: Google Flights showed "Book with British Airways, $735", the same total as the row.
{"type": "flight","origin": "JFK","destination": "LHR","departureDate": "2026-11-28","price": 735,"currency": "USD","isBest": true,"airlines": ["British Airways"],"stops": 0,"legs": [{ "flightNumber": "BA 178", "from": "JFK", "to": "LHR" }],"bookingUrl": "https://www.google.com/travel/flights/booking?tfs=CBwQAho_EgoyMDI2LTExLTI4Ih8KA0pGSxIKMjAyNi0xMS0yOBoDTEhSKgJCQTIDMTc4MgJCQWoFEgNKRktyBRIDTEhSQAFAAUgBmAEC&hl=en&gl=us&curr=USD"}
Calendar date (round trip of 7 days, run on 2026-09-30, the cheapest of 288 dates):
{ "type": "calendar_day", "origin": "NYC", "destination": "LON", "departureDate": "2026-11-09", "returnDate": "2026-11-16", "tripLengthDays": 7, "price": 429, "currency": "USD" }
Price insight for a search: {"lowestPrice": 733, "typicalPriceLow": 490, "typicalPriceHigh": 670, "priceLevel": "high", "flightsFound": 31}, with 61 days of priceHistory.
Google Flights booking links
- One way:
bookingUrlopens the Google Flights booking page of that flight, with the offers from the airline and travel agencies. In our tests the airline offer matched the row price (US$ 295 for a JetBlue nonstop, US$ 319 for a two-leg ITA flight, US$ 735 for 2 adults on British Airways). - Round trip: Google prices the outbound flight with the whole trip.
bookingUrlopens Google Flights with that outbound flight already chosen, on the screen where you pick the return; the cheapest return shown there gives the row price. - The link carries the passengers, cabin, currency and country of your input, so the price on screen is for the same trip. Fares move during the day, so a link opened hours later can show a new price.
googleFlightsUrlis the search page for the route and date, also on every calendar row.
Google Flights price alerts: pay only for the fares you want
Set a target and schedule the run. Every fare is checked, but only the ones that pass are saved and charged.
| Input | What is delivered and charged |
|---|---|
alertBelowPrice: 400 | Flights and calendar dates priced below 400 in your currency |
onlyPriceDrops: true | Flights and dates cheaper than in the previous run, plus new flights cheaper than anything that search had before. The first run of a search is the baseline |
| both | Below 400 and new or cheaper than last time: you pay once when a fare crosses your target, and again only if it drops further |
{ "origins": ["JFK"], "destinations": ["LHR"], "departureDates": ["2026-12-08"], "tripLengthDays": 7, "includePriceCalendar": true, "calendarDays": 30, "alertBelowPrice": 700, "onlyPriceDrops": true }
Each delivered row says why in alertReason: below_target, price_drop, new_cheaper_option or first_run, with previousPrice and priceChange. A search where nothing passes returns one free row:
{ "type": "error", "errorCode": "NO_PRICE_ALERT", "error": "15 flights checked: 14 at or above your target 700 USD, 1 not cheaper than in the previous run (not charged)", "cheapestPriceSeen": 697 }
Save the input as a Task with fixed dates and attach a daily Schedule. Add a webhook or an integration (email, Slack) on "run succeeded" and the dataset only has rows when there is news.
What you can do with Google Flights data
- Fare alerts: a daily Task that only charges when a route drops under your budget.
- Find the cheapest dates: one calendar run shows the whole season for a route. Sort by price.
- Travel content and deal sites: "cheapest month to fly to London" pages from real data, with a booking link per fare.
- Airline and route analysis: who flies the route, with how many stops, on which aircraft, at what price and CO2.
Google Flights scraper input
| Field | What it does |
|---|---|
origins, destinations | 3-letter airport or city codes (JFK, NYC, LHR, LON). Every origin is combined with every destination |
departureDates | YYYY-MM-DD or a number of days from today (30) |
tripLengthDays | 0 = one way; 7 = return 7 days later (flights and calendar) |
returnDate | Fixed return date for the flight search (optional) |
scrapeFlights | Flight rows (default on) |
includePriceCalendar, calendarDays | Cheapest price per departure date, from the earliest departure date, up to 330 days |
adults, children, cabinClass, maxStops | Filters. Prices are the total for all passengers |
airlines | Only flights where every leg is flown by these airlines (BA, AA, LH) |
currency, country, language | USD, EUR, GBP...; the Google Flights site country; names language |
maxFlightsPerSearch | Default 50 (Google shows up to ~40 per route and date) |
alertBelowPrice, onlyPriceDrops | Price alerts, see above |
compareWithPreviousRun, onlyChanged | Price tracking between runs, see below |
{ "origins": ["NYC"], "destinations": ["LON", "PAR"], "departureDates": ["30"], "tripLengthDays": 7, "includePriceCalendar": true, "calendarDays": 180, "currency": "USD" }
Free input checks
Every value is checked before any search. A bad value becomes one free row with an errorCode and a message that says what to fix, and the rest of the input still runs. Nothing is charged for these rows.
"departureDates": ["2026-01-10"]givesPAST_DATE: "the departure date 2026-01-10 is in the past (today is 2026-10-14 UTC); use a future date, or a number of days from today such as 30 so a saved Task never goes stale"."returnDate": "2026-11-01"with a departure on 2026-11-28 givesRETURN_BEFORE_DEPARTURE, and only that date is skipped.QQQgivesINVALID_AIRPORT: "Google Flights does not recognize QQQ as an airport or city code".2026-02-30givesINVALID_DATE, a date over 331 days ahead givesDATE_TOO_FAR.
Tip: in a saved Task, use a number of days (30) instead of a fixed date, unless the Task is a price monitor.
Track Google Flights prices between runs
compareWithPreviousRun keeps the last price of every flight and calendar date in a key-value store on your own account, google-flights-scraper-price-history, and adds to each row previousPrice, previousSeenAt, priceChange, priceChangePct, isNew, isNewLowest, lowestSeenPrice and firstSeenAt.
onlyChangeddelivers, and charges, only new rows and fare changes up or down. A search with no change returns one free row witherrorCode: NO_PRICE_CHANGES.- A flight is matched by its flight numbers and times, one record per route and dates; a calendar date by its departure and return dates, one record per route, so the calendar keeps tracking the same dates as the window moves forward.
- A relative date such as
30moves every day, so every run is a new flight search; use fixed dates for a monitor. Rows that leave the result stay in the history for 90 days.
Google Flights output fields
- Flight rows (
type: "flight"):price,currency,isBest,airlines,stops,durationMinutes,departureAirport,arrivalAirport,departureTime,arrivalTime,layovers,legs(flightNumber,airline,from,to,departure,arrival,durationMinutes,aircraft,legroom),co2Grams,co2TypicalGrams,co2DiffPercent,bookingUrl,googleFlightsUrl. - Calendar rows (
type: "calendar_day"):departureDate,returnDate,tripLengthDays,price,currency,googleFlightsUrl. - Price insight rows (
type: "price_insight", free):lowestPrice,typicalPriceLow,typicalPriceHigh,priceLevel,priceHistory,flightsFound. - With alerts or tracking:
alertReason,alertBelowPrice,previousPrice,priceChange,priceChangePct,isNew,isNewLowest,lowestSeenPrice,firstSeenAt,previousSeenAt.
Error codes (never charged)
| errorCode | Meaning |
|---|---|
PAST_DATE, INVALID_DATE, DATE_TOO_FAR | A departure date in the past, not a real date, or more than 331 days ahead |
RETURN_BEFORE_DEPARTURE | The fixed return date is before that departure date |
INVALID_AIRPORT | Not a 3-letter code, or a code Google Flights does not know |
NO_FLIGHTS, NO_CALENDAR | Google Flights has nothing for this route and date (or for your airline and stops filters) |
NO_PRICE_ALERT | Every fare was checked and none passed your price alert; cheapestPriceSeen says how close it got |
NO_PRICE_CHANGES | With onlyChanged: nothing is new or changed since the previous run |
BLOCKED | Google blocked the request on several IPs; run again |
NOT_REACHED, UNEXPECTED | The run timeout arrived, or something unforeseen broke; only that search is lost |
Google Flights scraper pricing
Prices per plan are in At a glance. On the Free plan, a daily alert on one route that finds 3 fares under your target costs US$ 0.0045 that day, and a day with nothing under the target costs nothing. A 180 date calendar costs US$ 0.18, and 40 flights cost US$ 0.06. Price insight, input check and error rows are free, and there is no Apify compute bill on top.
Integrations, scheduling and AI agents
Video guides from Apify: how to schedule an Actor and how to connect it to other apps.
- Schedule a Task with fixed dates and
alertBelowPriceoronlyPriceDropsin Apify schedules: the dataset only has rows when a fare is worth your attention. - Export as JSON, CSV, Excel, XML or HTML, or read the dataset from the Apify API.
- Connect it to Make, n8n, Zapier, Google Sheets, Slack, email or a webhook through Apify integrations, for example a Slack message when a route drops under your budget.
- AI agents: the Actor works as a tool through the Apify MCP server in Claude, ChatGPT, Cursor and other MCP clients, for example "find the cheapest week in December to fly from New York to Lisbon".
- API call:
scrapewise/google-flights-scraperwith the Apify API or the Python and JavaScript clients.
Google Flights scraper FAQ
Do I need a Google account or an API key? No. The Actor reads public Google Flights pages.
Is there an official Google Flights API? No. Google Flights has no public API; Google closed its flight search API (QPX Express) in 2018. This Actor reads the public Google Flights pages and returns prices, legs, CO2, a booking link per flight and the price calendar.
Is the price the same one I see on Google Flights? Yes, at the time of the run, for the passengers, cabin, currency and country in your input. In our tests the booking link opened with the same total as the row. Fares move during the day.
How do I find the cheapest day to fly?
Turn on includePriceCalendar, set calendarDays (up to 330) and sort the calendar_day rows by price.
Can I get multi-city itineraries? No. One way and round trip only, from any number of origins, destinations and dates in one run.
Does it return the airline or agency checkout page?
No. bookingUrl opens Google Flights on that flight, with the airline and agency offers; the purchase happens on the site you choose there.
Google Flights scraper limitations
- On round trips, Google lists the outbound flights with the total round trip price. Return flight options are chosen on Google's next screen, which is where the round trip
bookingUrllands. - The booking link opens Google Flights; the final purchase happens on the airline or agency site that you choose there.
- The calendar goes up to about 324 days from today, the limit of Google's own date grid. The airline filter applies to flight rows, not to the calendar.
- Prices are what Google Flights shows at the time of the run. This Actor reads public pages only.
Related scrapers
- Google Hotels Search Scraper: hotel prices by booking site from Google Hotels.
- Booking.com Scraper: hotel prices, availability and reviews.
- GetYourGuide Scraper: tours, prices, ratings and duration.
- Viator Scraper: tours, prices, ratings and duration.
- Trip.com and Ctrip Hotel Reviews Scraper: hotel reviews from Trip.com and Ctrip.
Changelog
- 16 Oct 2026: price per plan in At a glance, integrations and FAQ on this page; the pricing section no longer lists a start fee the Actor does not charge.
- 2026-10-14, 0.2: Real booking links, price alerts below your target, friendly date errors.
bookingUrlon every flight (tested to open with the same price),alertBelowPriceandonlyPriceDropsfor alerts that charge only the fares you want,airlinesfilter,googleFlightsUrlon calendar rows, and free per-value input checks (PAST_DATE,RETURN_BEFORE_DEPARTURE,INVALID_AIRPORT,INVALID_DATE,DATE_TOO_FAR) instead of stopping the whole run. - 2026-10-04: price tracking between runs with
compareWithPreviousRunandonlyChanged. - 2026-09-30, 0.1: first release. Flights with legs, layovers and CO2, price calendar up to ~10 months, free price insight rows, city codes, any currency.