Google Flights Scraper – Prices, Dates, Routes, CO2 · Apify
Google Flights Scraper 💰$0.80/1K – Prices, Dates, Routes, CO2 avatar

Google Flights Scraper 💰$0.80/1K – Prices, Dates, Routes, CO2

Pricing

from $0.32 / 1,000 flights

Go to Apify Store
Google Flights Scraper 💰$0.80/1K – Prices, Dates, Routes, CO2

Google Flights Scraper 💰$0.80/1K – Prices, Dates, Routes, CO2

Flight prices and schedules from Google Flights for any route and date: airlines, flight numbers, times, stops and layovers, aircraft, legroom, CO2 emissions. One way or round trip, cabin, passengers, nonstop filter, date ranges for price tracking. No login.

Pricing

from $0.32 / 1,000 flights

Rating

0.0

(0)

Developer

RT SOLUTIONS

RT SOLUTIONS

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

Google Flights Scraper – Prices, Dates, Routes, CO2

Get flight prices and schedules from Google Flights for any route and date: airlines, flight numbers, departure and arrival times, duration, stops and layovers, aircraft, legroom, codeshares and CO2 emissions. One way or round trip, any cabin, any number of passengers, nonstop filter, 30 currencies. Compare many routes × many dates in one run to track prices day by day.

No Google account, no API key, no browser. $0.80 per 1,000 flights on the free plan.

What is Google Flights Scraper?

Google Flights has no public API. This Actor reads the same results you see on google.com/travel/flights and returns them as clean JSON, CSV or Excel. You give it origins, destinations and dates; it builds every combination, opens each search the way Google Flights does in its own share links, and returns one row per flight with the full itinerary.

It is built for fare tracking: run it every day on the routes and dates you care about and keep the cheapest price per route, or load thousands of fares into a spreadsheet, a database or an AI agent.

What data can Google Flights Scraper extract?

FieldExampleNotes
price298Total for all passengers, in currency
currencyUSD30 currencies (USD, EUR, GBP, CAD, AUD, JPY, INR, AED…)
rank, bucket4, otherPosition on the page; top = Google's "best flights", other = the rest
airlines["Aer Lingus"]All airlines of the itinerary
departure, arrival2026-12-10T17:00Local times
durationMinutes605Door-to-door, layovers included
stops10 = nonstop
layovers[{airport: "DUB", city: "Dublin", durationMinutes: 125}]Airport, name, city, waiting time
co2Kg, typicalCo2Kg, co2VsTypicalPercent392, 434, -10Emissions of this itinerary vs the typical value for the route
legs[]see belowOne entry per flight segment
legs[].flightNumberEI 104
legs[].aircraftAirbus A330
legs[].legroom31 inches
legs[].operatedAlsoAs["IB 4218", "BA 1511"]Codeshare numbers
legs[].departureAirportName, arrivalAirportNameDublin Airport
legs[].co2Kg340Per segment
origin, destination, departureDate, returnDate, tripType, cabinClass, adults, childrenThe search that produced the row
searchQueryFlights from JFK to LHR on 2026-12-10 one wayHuman-readable search
googleFlightsUrlhttps://www.google.com/travel/flights/search?tfs=…Opens the same search on Google Flights

How much does it cost to scrape Google Flights?

Apify planPrice per 1,000 flights
Free$0.80
Starter$0.40
Scale$0.36
Business and higher$0.32

You pay only for flights that have a price. Searches with no flights, flights shown without a price ("price unavailable") and errors are free. There is no start fee per search.

Real runs — 3 November 2026

We ran three typical jobs on the Apify platform today (default settings, free plan):

JobSearchesFlights returnedRun timePlatform usage
One way, JFK → LHR, 10 Dec 20261202.5 s$0.0002
Paris → New York, 7 departure dates (1–7 Dec), round trips of 7 days, EUR712715 s$0.0001
LHR and MAN → BCN, LIS and FCO, nonstop only, GBP63613 s$0.0001

The cheapest fares found: $298 JFK → LHR (Aer Lingus via Dublin), €441 Paris → New York round trip (TAP Air Portugal, departing 7 Dec), £23 Manchester → Barcelona nonstop (Ryanair). Fares change constantly; these are the values of that day.

Bulk example: what 50,000 flights cost

A daily check of 10 routes × 30 departure dates is about 300 searches and, at ~20 flights per search, ~6,000 flights per day. Over a month that is ~180,000 flights = $144 on the free plan, $72 on Starter, $64.80 on Scale. Restricting with stops: "nonstop" or maxFlightsPerSearch lowers the count — and the cost — further.

Price compared with other Google Flights Actors — 31 October 2026

Main-event prices as listed on the Apify Store that day. Event definitions differ (some Actors charge per flight, others per search or per result page), so compare what one run of your job would cost, not only the number.

ActorMonthly users (31 Oct)Listed price of the main event
lergassy/google-flights-scraper402$0.001 per flight
johnvc/Google-Flights-Data-Scraper369$0.03 per event
kaix/google-flights-scraper263$0.00006 per event
memo23/google-flights-scraper157$0.002 per flight
automation-lab/google-flights-scraper46$0.00023 per event
mtnrabi/google-flights-real-time-api32$0.003 per event
This Actornew$0.0008 per flight

Who this is not for

Be sure this Actor fits before you run it:

  • You need booking links and every seller's price (Expedia, airline site, OTA…). This Actor returns the flights and the Google Flights price, plus a link to the same search — not the list of sellers.
  • You need the price calendar or "cheapest day of the month" view. Use a date range instead (2026-12-01..2026-12-31) and keep the minimum per day — it gives the same answer with full flight details, but one search per day.
  • You need multi-city trips (A → B → C). One way and round trip only.
  • You need baggage fees or fare classes. Not shown by Google Flights in the results list.
  • You need live seat availability or to book. This is price and schedule data only.

What's new

  • 2 November 2026 — Ready-to-run Python price tracker published on GitHub (google-flights-price-tracker).
  • 1 November 2026 — FAQ, use cases and AI-agent (MCP) documentation.
  • 25 October 2026 — Flights shown without a price are no longer charged. Major city names (New York, London, Paris, Tokyo, Casablanca…) are mapped to their IATA city codes, so every airport of the city is searched. Searches are sent in Google Flights' own structured format (the one used in its share links), which supports cabin, passengers and the stops filter for any code. Empty result pages are retried automatically with a new IP. Clear warnings (free) for impossible inputs: invalid or past dates, dates more than ~11 months ahead, same origin and destination, return before departure, too many searches.
  • 25 October 2026 — First release.

How to scrape Google Flights with Google Flights Scraper

  1. Open the Actor and click Try for free (an Apify account is free; the free plan includes monthly credits).
  2. Enter one or more origins and destinations (airport codes like JFK, city codes like NYC, or city names like New York).
  3. Enter departure dates — single dates or ranges like 2026-12-01..2026-12-14.
  4. For round trips, set a fixed return date or a trip length in days.
  5. Optionally choose cabin, passengers, stops and currency.
  6. Click Start. Download the results as JSON, CSV, Excel or HTML, or connect them to Google Sheets, a webhook or your code.

⬇️ Input examples

One way, one date
{ "origins": ["JFK"], "destinations": ["LHR"], "departureDates": ["2026-12-03"] }
Round trip with a fixed return date
{ "origins": ["LHR"], "destinations": ["JFK"], "departureDates": ["2026-12-18"], "returnDate": "2027-01-04" }
Cheapest dates over two weeks (round trips of 7 days)
{
"origins": ["Paris", "Lyon"],
"destinations": ["NYC"],
"departureDates": ["2026-12-01..2026-12-14"],
"tripLengthDays": 7,
"currency": "EUR"
}

Every departure date gets its own search with a return 7 days later; sort by price to see the cheapest day.

Many routes in one run, nonstop only
{
"origins": ["LHR", "MAN"],
"destinations": ["BCN", "LIS", "FCO"],
"departureDates": ["2026-12-12"],
"stops": "nonstop",
"currency": "GBP"
}

2 origins × 3 destinations × 1 date = 6 searches.

Business class, two adults and one child
{
"origins": ["DXB"], "destinations": ["LHR"], "departureDates": ["2027-02-10"], "returnDate": "2027-02-20",
"cabinClass": "business", "adults": 2, "children": 1, "currency": "AED"
}
{ "origins": ["SFO"], "destinations": ["TYO"], "departureDates": ["2027-03-01..2027-03-07"], "stops": "one_stop_or_fewer", "maxFlightsPerSearch": 5 }
Airport and airline names in another language
{ "origins": ["CMN"], "destinations": ["PAR"], "departureDates": ["2026-12-20"], "language": "fr", "currency": "MAD" }
Track a fare every day

Save any of the inputs above as an Apify Task, open Schedules, and run it daily. Each run is a new dataset; append the cheapest price per route and date to a sheet or database to build your own price history.

Input reference
FieldTypeDefaultDescription
originslist["JFK"]Airport codes (JFK), city codes (NYC) or city names (New York). Several = every combination is searched.
destinationslist["LHR"]Same format as origins.
departureDateslistYYYY-MM-DD, or a range YYYY-MM-DD..YYYY-MM-DD (one search per day).
returnDatetextemptyFixed return date for round trips. Empty = one way.
tripLengthDaysnumber0Round trip of N days for every departure date. 0 = one way.
adultsnumber1Prices are the total for all passengers.
childrennumber0Children aged 2–11.
cabinClasschoiceeconomyeconomy, premium_economy, business, first.
stopschoiceanyany, nonstop, one_stop_or_fewer.
currencychoiceUSD30 currencies.
languagetextenLanguage of airport and airline names.
maxFlightsPerSearchnumber00 = all flights Google shows (usually 10–30).
maxSearchesnumber200Safety cap on routes × dates.
maxConcurrencynumber3Searches run at the same time (max 6).
proxyConfigurationproxyApify ProxyDefault works; residential is used automatically only if needed.

⬆️ Output

One row per flight. A real row from the 3 November run (shortened googleFlightsUrl):

{
"searchQuery": "Flights from JFK to LHR on 2026-12-10 one way",
"origin": "JFK", "destination": "LHR", "departureDate": "2026-12-10", "returnDate": null,
"tripType": "one_way", "cabinClass": "economy", "adults": 1, "children": 0, "currency": "USD",
"rank": 4, "bucket": "other", "price": 298,
"airlines": ["Aer Lingus"],
"departureAirport": "JFK", "arrivalAirport": "LHR",
"departure": "2026-12-10T17:00", "arrival": "2026-12-11T08:05",
"durationMinutes": 605, "stops": 1,
"layovers": [{ "airport": "DUB", "airportName": "Dublin Airport", "city": "Dublin", "durationMinutes": 125 }],
"co2Kg": 392, "typicalCo2Kg": 434, "co2VsTypicalPercent": -10,
"legs": [
{ "flightNumber": "EI 104", "airline": "Aer Lingus", "departureAirport": "JFK", "departureAirportName": "John F. Kennedy International Airport",
"arrivalAirport": "DUB", "arrivalAirportName": "Dublin Airport", "departure": "2026-12-10T17:00", "arrival": "2026-12-11T04:30",
"durationMinutes": 390, "aircraft": "Airbus A330", "legroom": "31 inches", "operatedAlsoAs": [], "co2Kg": 340 },
{ "flightNumber": "EI 152", "airline": "Aer Lingus", "departureAirport": "DUB", "departureAirportName": "Dublin Airport",
"arrivalAirport": "LHR", "arrivalAirportName": "Heathrow Airport", "departure": "2026-12-11T06:35", "arrival": "2026-12-11T08:05",
"durationMinutes": 90, "aircraft": "Airbus A320neo", "legroom": "29 inches", "operatedAlsoAs": [], "co2Kg": 52 }
],
"googleFlightsUrl": "https://www.google.com/travel/flights/search?tfs=…"
}

Searches that return nothing produce one row with status: "no_flights" and a message (free). Errors produce a row with status: "error" (free) so nothing fails silently.

Use cases for Google Flights data

Fare tracking and fare-drop alerts

Schedule a daily run over a date range and keep the cheapest price per route; alert yourself (email, Slack, Telegram) when it drops below a threshold.

Travel agencies and travel startups

Feed live fares into quotes, deal pages or comparison tools; check which airlines fly a route and when.

Route and pricing research

Compare routes, seasons and cabins; measure price spreads between nearby airports (LHR vs LGW vs STN) or between direct and 1-stop itineraries.

Sustainability and corporate travel reporting

Every itinerary comes with CO2 per segment and its difference to the typical value for the route.

Travel content, newsletters and AI agents

Generate "cheapest days to fly" articles, deal newsletters or let an AI agent answer "what is the cheapest way from Paris to New York in December?".

Integrations and Google Flights API

Python (full script: google-flights-price-tracker on GitHub):

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("rt-solutions/google-flights-scraper").call(run_input={
"origins": ["JFK"], "destinations": ["LHR"], "departureDates": ["2026-12-01..2026-12-07"], "stops": "nonstop",
})
for f in client.dataset(run.default_dataset_id).iterate_items():
if f.get("price"):
print(f["departureDate"], f["price"], f["currency"], "/".join(f["airlines"]))

JavaScript / Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('rt-solutions/google-flights-scraper').call({ origins: ['LHR'], destinations: ['JFK'], departureDates: ['2026-12-18'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((f) => f.price).map((f) => `${f.price} ${f.currency} ${f.airlines.join('/')}`));

HTTP (one call, results in the response):

curl -X POST "https://api.apify.com/v2/acts/rt-solutions~google-flights-scraper/run-sync-get-dataset-items?timeout=120" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"origins":["JFK"],"destinations":["LHR"],"departureDates":["2026-12-10"]}'

No-code: Make, n8n and Zapier can call the same HTTP endpoint (n8n: HTTP Request node, POST, Header Auth Authorization: Bearer …). Apify's Google Sheets integration can push every run into a sheet, and webhooks can notify your system when a run finishes.

Use it from Claude, ChatGPT, Cursor or any MCP agent

Connect the Apify MCP server (https://mcp.apify.com) to your AI client and allow the Actor rt-solutions/google-flights-scraper. Then ask in plain language, for example: "Find the 5 cheapest nonstop flights from London to Barcelona on 12 December and tell me the airlines and times."

🤖 For AI Agents & LLM Apps

  • What the tool does: returns Google Flights results (price, airlines, times, stops, layovers, CO2, legs) for given origins, destinations and dates.
  • Minimal input: {"origins": ["<IATA or city>"], "destinations": ["<IATA or city>"], "departureDates": ["YYYY-MM-DD"]}.
  • Round trip: add returnDate or tripLengthDays.
  • Ranges: departureDates: ["2026-12-01..2026-12-14"] → one search per day; aggregate by departureDate and take min(price).
  • Output contract: one JSON object per flight; price is a number in currency for all passengers; rows with status (no_flights, error) contain no flight and are free.
  • Good prompts: "cheapest day to fly X→Y in
  • Cost guard: set maxSearches (and maxFlightsPerSearch) to bound a run; cost = flights with a price × $0.0008 on the free plan.

❓ FAQ

The Actor reads public search results that anyone can open without an account and collects no personal data. Use the data responsibly and in line with the laws that apply to you.

Does Google Flights have a public API?

No. Google retired its QPX Express flight API in 2018; this Actor is a practical way to get the same data as JSON.

As far as airlines sell — about 11 months ahead. Past dates are skipped and dates beyond ~11 months get a warning (they usually return no flights, which is not charged).

Can I use city names instead of airport codes?

Yes. Major cities (New York, London, Paris, Tokyo, Milan, Rome, Dubai, Casablanca, Madrid, Barcelona…) are converted to IATA city codes so all their airports are searched. You can also use city codes directly (NYC, LON, PAR). Other city names still work as a simple text search, but premium economy, the "1 stop or fewer" filter and non-English names then need airport or city codes (you get a warning).

How do I find the cheapest day to fly?

Give a date range (2026-12-01..2026-12-31) and keep the lowest price per departureDate.

Are round-trip prices per direction or total?

Total round-trip price for all passengers, as shown by Google Flights with the outbound flight.

Does the price include all passengers?

Yes — price is the total for adults + children.

Which currencies are supported?

30, including USD, EUR, GBP, CAD, AUD, JPY, CNY, INR, AED, SAR, CHF and MAD.

Why did a run return fewer flights than expected?

Google Flights usually shows 10–30 flights per search. Filters (stops, cabinClass) and maxFlightsPerSearch reduce the number. Some routes simply have few flights on a given day.

What happens if a route has no flights?

You get one free row with status: "no_flights" and a link to the same search on Google Flights.

Can I scrape many routes in one run?

Yes. Every origin × destination × date is searched (up to maxSearches, default 200).

No — see "Who this is not for". You get the Google Flights price and a link to the same search.

Do I need proxies?

No. The default Apify Proxy works; residential IPs are used automatically only when needed.

How often are prices updated?

Every run reads Google Flights live; schedule runs as often as you need.

Can I use it through the Apify API or an MCP server?

Yes — see "Integrations" above (Python, Node.js, HTTP, Make, n8n, Zapier, MCP).

Can I export to Excel or Google Sheets?

Yes: download JSON, CSV, Excel or HTML from the run, or use Apify's Google Sheets integration.

How is this different from other Google Flights Actors?

One of the lowest listed prices per flight on the Store on 31 October 2026 (see the comparison table — event definitions differ between Actors), free rows for empty searches and unpriced flights, city names mapped to all their airports, and CO2 for every segment. If you need booking links, a price calendar or multi-city trips, other Actors cover that (see "Who this is not for").

Limits

  • One way and round trip only (no multi-city).
  • No booking links, sellers, baggage or fare classes.
  • maxConcurrency is capped at 6 to stay reliable.
  • Prices are what Google Flights shows at the time of the run; airlines change fares constantly.

Run health

  • 3 November 2026: 3 runs, 14 searches, 183 flights, 0 errors, 0 failed runs (see "Real runs" above).

Your feedback

Missing a field or found a wrong result? Open an issue in the Issues tab — we answer fast and ship fixes quickly (see "What's new"). If the Actor saved you time or money on a fare, a short review helps other travelers find it.

Code example: Google Flights price tracker in Python — ready-to-run script on GitHub.