Google Flights Scraper - All Fares, Price History, Calendar avatar

Google Flights Scraper - All Fares, Price History, Calendar

Pricing

from $0.70 / 1,000 flights

Go to Apify Store
Google Flights Scraper - All Fares, Price History, Calendar

Google Flights Scraper - All Fares, Price History, Calendar

Returns the flights Google Flights lists for a route and date: price, airlines, flight numbers, times, stops, layovers, aircraft, legroom and CO2, with Google's price insights (usual price, typical range, 60 days of history). Whole lists, fare calendars, round trips. No browser, no login.

Pricing

from $0.70 / 1,000 flights

Rating

0.0

(0)

Developer

Ben

Ben

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

✈️ Google Flights Scraper

Returns the flights Google Flights lists for a route and a date, without a browser or a login. One row per itinerary: price, airlines, flight numbers, departure and arrival times, stops and layovers, aircraft, legroom and CO2. Every row also carries Google's price insights for its search: the usual price, the typical range and whether today's price is low, typical or high. Search many routes and days in one run to get a fare calendar.

Price: $1.00 per 1,000 flights on the Apify Free plan, down to $0.70 from the Gold plan up. A search without flights costs nothing. Export to JSON, CSV or Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

🔎 What is the Google Flights Scraper?

A Google Flights search page carries its results inside the page. This Actor builds the search the way Google's own links encode it, loads that page once and reads the results from it. One search is one request of about two seconds. No browser runs, so 512 MB of memory is enough, and several searches go side by side.

It reads the page in the state Google shows after "View more flights". In a test of Frankfurt to Bangkok the page held 9 itineraries at first and 54 in that state; New York to Los Angeles gave 120.

What data does it extract?

  • Price: as Google shows it for the search, in the currency you choose
  • Flights: airlines, flight numbers, aircraft and legroom of every leg
  • Times: local departure and arrival time of the trip and of each leg, travel time in minutes
  • Stops: number of stops, and for each layover the airport, city and waiting time
  • CO2: Google's estimate per passenger, the typical value for the route and the difference in percent
  • Price insights: the lowest price of the search, the usual price, the typical range, a level (low, typical, high) and, on request, about 60 days of price history
  • Link: the search on Google Flights, to open and compare

What to know before you compare

The issue page of the most used Google Flights Actor on Apify was read on October 4, 2026. The complaint that returns there is "fares do not match Google's price". Three things explain most differences, and this Actor states them on every row: prices depend on the currency and country of the search (currency, shown on the row), they are the total for all passengers (one adult $295, two adults $589 on the same flights in a test), and for a round trip they are the price of the whole trip. searchUrl opens the very search the row came from.

⬇️ Input

FieldTypeDefaultWhat it does
originsarrayThree-letter airport or city codes (JFK, LHR, NYC). Every origin is searched with every destination
destinationsarrayThree-letter airport or city codes
departureDatestringFirst departure day (YYYY-MM-DD)
departureInDaysinteger30Used without a date: start this many days from today
daysinteger1Number of departure days in a row, up to 90
returnDatestringMakes it a round trip
stayDaysintegerOr: return this many days after each departure
maxResultsinteger20Flights to save per route and day, up to 500
sortBystringbestbest (Google's order), price, duration, departure, arrival, emissions
stopsstringany0 nonstop only, 1 or 2 at most that many stops
cabinClassstringeconomyeconomy, premium_economy, business, first
adults, children, infantsInSeat, infantsOnLapinteger1, 0, 0, 0Passengers
onlyAirlinesarrayTwo-character airline codes (DL, BA)
currencystringUSDThree-letter currency code
includePriceHistorybooleanfalseAdds about 60 daily values of the lowest price to each row
linksarraySearch links copied from Google Flights

An empty input searches New York (JFK) to Los Angeles 30 days from today.

Example input

One route on one day, the 50 best options:

{
"origins": ["JFK"],
"destinations": ["LAX"],
"departureDate": "2026-11-03",
"maxResults": 50
}

A fare calendar: the cheapest flight of each day for four routes over 30 days (120 searches, 120 rows):

{
"origins": ["JFK", "ORD"],
"destinations": ["LAX", "MIA"],
"departureInDays": 14,
"days": 30,
"maxResults": 1,
"sortBy": "price"
}

A round trip with a week's stay, in euros:

{
"origins": ["BER"],
"destinations": ["PMI"],
"departureDate": "2026-11-18",
"stayDays": 7,
"currency": "EUR",
"maxResults": 30
}

Nonstop business class for two, on two airlines:

{
"origins": ["JFK"],
"destinations": ["LHR"],
"departureInDays": 30,
"stops": "0",
"cabinClass": "business",
"adults": 2,
"onlyAirlines": ["BA", "VS"],
"currency": "GBP"
}

Coming from another Google Flights Actor?

These input names of the most used Google Flights Actors are read as they are: departure_id, arrival_id, outbound_date, return_date, max_stops, airlines, hl, gl, and origin, destination, departDate, returnDate, maxStops, maxItems, market, language, startUrls, flightUrl. An input like this one runs here unchanged:

{
"departure_id": "LAX",
"arrival_id": "JFK",
"outbound_date": "2026-11-04",
"return_date": "2026-11-09",
"adults": 1,
"currency": "USD",
"max_stops": 1,
"airlines": "AA,DL"
}

⬆️ Output

One row per itinerary. The first row of the sample search:

{
"origin": "JFK",
"destination": "LAX",
"departureDate": "2026-11-03",
"returnDate": null,
"tripType": "one_way",
"cabinClass": "economy",
"currency": "USD",
"price": 179,
"isBest": true,
"airlines": ["JetBlue"],
"flightNumbers": ["B6 618", "B6 387"],
"departureAirport": "JFK",
"departureTime": "2026-11-03T15:14",
"arrivalAirport": "LAX",
"arrivalTime": "2026-11-03T21:34",
"durationMinutes": 560,
"stops": 1,
"layovers": [
{ "airport": "BOS", "airportName": "Boston Logan International Airport", "city": "Boston", "minutes": 61, "changeOfAirport": false }
],
"legs": [
{
"flightNumber": "B6 618",
"airline": "JetBlue",
"airlineCode": "B6",
"departureAirport": "JFK",
"departureAirportName": "John F. Kennedy International Airport",
"departureTime": "2026-11-03T15:14",
"arrivalAirport": "BOS",
"arrivalAirportName": "Boston Logan International Airport",
"arrivalTime": "2026-11-03T16:59",
"durationMinutes": 105,
"aircraft": "Airbus A220-300 Passenger",
"legroom": "32 inches"
},
{
"flightNumber": "B6 387",
"airline": "JetBlue",
"airlineCode": "B6",
"departureAirport": "BOS",
"departureAirportName": "Boston Logan International Airport",
"departureTime": "2026-11-03T18:00",
"arrivalAirport": "LAX",
"arrivalAirportName": "Los Angeles International Airport",
"arrivalTime": "2026-11-03T21:34",
"durationMinutes": 394,
"aircraft": "Airbus A320",
"legroom": "33 inches"
}
],
"co2Kg": 480,
"co2TypicalKg": 346,
"co2DifferencePercent": 39,
"lowestPrice": 179,
"usualPrice": 144,
"typicalPriceLow": 85,
"typicalPriceHigh": 240,
"priceLevel": "typical",
"searchUrl": "https://www.google.com/travel/flights/search?tfs=GhoSCjIwMjYtMTEtMDNqBRIDSkZLcgUSA0xBWEIBAUgBmAEC&tfu=EgQIABABIgA&hl=en&gl=us&curr=USD",
"position": 1,
"scrapedAt": "2026-10-04T14:14:45.153409+00:00"
}

Times are local times of the airports. lowestPrice, usualPrice, the typical range and priceLevel describe the search and are the same on all of its rows; priceLevel is low below the typical range, high above it. With includePriceHistory each row also has priceHistory, a list of { "date": "2026-08-05", "price": 174 }. The run writes a SUMMARY record with the number of flights per search and the searches without flights.

💰 What a run costs

Apify planPer 1,000 flights
Free$1.00
Bronze$0.90
Silver$0.80
Gold, Platinum, Diamond$0.70

Apify's standard start event ($0.00005) is the only other charge; proxies are included. A fare calendar with one row per search costs one flight per route and day: 120 searches are 12 cents on the Free plan. Not charged: a search without flights and a search Google did not serve. Set the run's maximum charge and the Actor stops at it with the rows it has saved.

⏱️ Measured (October 4, 2026)

RunFlightsTime
Empty input (sample search)202 s
The whole list of one busy route (29 nonstop, 87 with one stop, 4 with two)1203 s
Two routes on seven days, the cheapest flight of each146 s
Four routes on thirty days, the cheapest flight of each12044 s
A round trip with a week's stay283 s
Nonstop business class for two on two airlines173 s

A run of 80 searches that was killed after nine seconds and started again ended with 400 rows from 80 searches, none of them twice.

🤖 For AI agents

Smallest useful call:

{"origins": ["JFK"], "destinations": ["LAX"], "departureDate": "2026-11-03", "maxResults": 10, "sortBy": "price"}

Each row is one itinerary with price, currency, airlines, flightNumbers, departureTime, arrivalTime, durationMinutes, stops, layovers and priceLevel. Add returnDate for a round trip. Add "days": 7 to search a week of departures. A route without flights returns no rows; the status message and the SUMMARY record name it. No credentials are needed.

💡 Use cases

  • 📉 Fare tracking: a daily schedule over your routes and dates, with Google's own judgement whether a price is low.
  • 🗓️ Cheapest day to fly: one row per day over the next months.
  • 🧳 Travel apps and agents: real itineraries with times, layovers and aircraft for an itinerary planner.
  • 🌱 Emissions reporting: CO2 per itinerary against the typical value of the route.

⚠️ Limits, stated plainly

  • Airports and cities are given as codes. JFK, LHR, NYC; names such as "New York" are skipped with a note.
  • A round trip lists the outbound flights. Each row has Google's price for the whole trip; the return flights to choose from are not listed.
  • No booking links and no fares of single sellers. searchUrl opens the search on Google Flights.
  • The price is the total for all passengers of the search, as Google shows it.
  • The airline filter is Google's: it keeps code-share partners. A search for British Airways and Virgin Atlantic also returned flights sold by American and Delta.
  • Price insights as Google gives them. When Google publishes no typical range for a search, priceLevel is empty.
  • 90 departure days and 2,000 searches per run. A departure date in the past is moved to today.
  • The Actor reads Google's page. If Google changes it, a search ends as "another shape" in the status message and is not charged.

❓ FAQ

Do I need a Google account, an API key or a proxy? No.

How many flights does a search return? As many as Google lists after "View more flights": about 120 on a busy route, fewer on small ones. maxResults cuts the list after sorting.

How do I get the cheapest price per day? Set days, maxResults to 1 and sortBy to price. Each day of each route gives one row.

Why does my price differ from what I see in the browser? Check the currency, the number of passengers and whether you compare a one-way with a round trip. Open searchUrl to see the same search.

Can I search several routes at once? Yes. Every origin is combined with every destination, four searches at a time.

Does it support city codes? Yes, Google's own: NYC or LON cover all airports of the city.

Can I schedule it? Yes. Use departureInDays instead of a fixed date, so the search moves with the calendar.

What does priceLevel mean? Google publishes a typical price range for many searches. The level says whether the lowest price of your search is below it, inside it or above it.

How do I call it from code? With the Apify API or the Python and JavaScript clients; every run returns a dataset you can fetch as JSON or CSV. It also works as a tool through Apify's MCP server.

Is it legal? The Actor reads flight offers that Google shows to everyone without a login. It collects no personal data. Google's terms apply to you as well.

🔗 You might also like

Keywords: google flights scraper, google flights api, flight price api, flight search data, cheap flights data, fare calendar, flight price tracker, flight price history, airfare data, flight prices csv, google flights price insights, flight emissions data, travel api, flight data for ai agents, no browser google flights