Google Flights Scraper (bulk searches) avatar

Google Flights Scraper (bulk searches)

Pricing

from $0.77 / 1,000 flight listeds

Go to Apify Store
Google Flights Scraper (bulk searches)

Google Flights Scraper (bulk searches)

Flight options from Google Flights for up to 200 searches per run: price, airlines, flight numbers, times, duration, stops and layovers, aircraft and CO2, in Google's order. One-way or round trip, any cabin class and currency. Pay only for delivered flights.

Pricing

from $0.77 / 1,000 flight listeds

Rating

0.0

(0)

Developer

Steadydata Team

Steadydata Team

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

32 minutes ago

Last modified

Share

Google Flights Scraper (prices, bulk searches)

Flight options from Google Flights for up to 200 route-and-date searches per run: price, airlines and flight numbers, departure and arrival times, duration, stops and layover airports, aircraft and Google's CO2 estimate, in the order Google Flights shows them ("Top options" first). One-way or round trip, any cabin class, any currency. You only pay for flight options that are actually delivered.

Why this scraper

  • The structured data, not a screenshot. Google Flights renders its results from an embedded data block; this actor reads that block, so times are exact, flight numbers are real and nothing is guessed from text.
  • Bulk by design. Paste 200 searches such as AMS LHR 2026-10-15 or JFK LAX 2026-11-03 2026-11-10 and get one flat table with the search and Google's rank on every row, ready for fare monitoring or route analysis.
  • Round trips priced as round trips. For a return search the price is Google's round trip total, exactly as the page shows it, with the outbound options listed.
  • No residential proxies. Google Flights serves its results page to Apify's standard datacenter pool; in testing on 13-09-2026 a search came back in about 3 seconds with 68 itineraries.
  • Only delivered flights are charged. A search with no results, or a badly formed one, comes back as a clear error record at no cost.

Who this is for

Fare monitoring for a set of routes and dates. Travel researchers and analysts comparing airlines, stops and prices across markets. Teams building price alerts or route datasets without scraping a browser.

Who this is not for

This actor returns Google's displayed options, not a booking: bookingUrl opens the search on Google Flights. Prices are the ones Google shows at the moment of the run and can change by the hour. Google decides how many itineraries to show for a search; the actor delivers what is on the page (10 to 70 in testing) and cannot force more. Only airport codes are accepted, not city names.

Input example

{
"searches": ["AMS LHR 2026-10-15", "JFK LAX 2026-11-03 2026-11-10"],
"seatClass": "economy",
"adults": 1,
"currency": "EUR",
"maxFlightsPerSearch": 50
}

A search is FROM TO YYYY-MM-DD for one-way, with a second date for a round trip.

Output example

{
"search": "AMS LHR 2026-10-15",
"rank": 1,
"group": "top",
"price": 117,
"currency": "EUR",
"airlines": ["British Airways"],
"airlineCodes": ["BA"],
"flightNumbers": ["BA443"],
"departureAirport": "AMS",
"departureTime": "2026-10-15T19:40",
"arrivalAirport": "LHR",
"arrivalTime": "2026-10-15T19:55",
"durationMinutes": 75,
"stops": 0,
"layoverAirports": [],
"aircraft": ["Airbus A320"],
"emissionsKg": 54.0,
"tripType": "one_way",
"seatClass": "economy",
"bookingUrl": "https://www.google.com/travel/flights?tfs=...&hl=en&curr=EUR",
"status": "ok"
}

layoverAirports lists the IATA codes of the stopovers in order and is an empty list on a nonstop flight; stops says how many there are. On a long-haul search such as AMS to SYD every row carries them.

A search that yields nothing produces an error record instead, and is not charged:

{
"input": "AMS LHR",
"status": "error",
"errorCode": "INVALID_SEARCH",
"error": "Expected 'FROM TO YYYY-MM-DD [YYYY-MM-DD]' with IATA codes, got 'AMS LHR'"
}

Error codes: INVALID_SEARCH, NO_FLIGHTS, BLOCKED. INPUT_TRUNCATED appears once when your input is longer than this actor accepts.

Pricing

Pay per event: one flight-listed event per delivered flight option. No charge for searches that fail, no separate platform-usage surcharge. maxFlightsPerSearch is your hard cost ceiling per search.

Free Apify plan: this actor delivers up to 25 rows per run for accounts on the Apify free plan, and then stops with a message. That limit is set by us, not by Apify. It exists so the actor keeps paying for itself for the people who do pay. Any paid Apify plan runs it at full size, billed per delivered row, with failed rows never charged.

FAQ

Times are local? Yes, local to each airport, as Google Flights shows them, without a timezone suffix.

What is group? Google's own split: top for its "Top options", other for the rest. rank counts across both, top first.

Does the price include baggage? It is the price Google Flights displays for the itinerary. Fare conditions such as overhead bin access differ per airline and are not part of this data.

Can I search by city or with flexible dates? No. One airport pair and one exact date (or two for a round trip) per row. For flexible dates, add one row per date.

Is personal data collected? No. Nothing on these pages is about a person.

What happens when Google changes something? The data block is positional and Google may reshuffle it. The actor is monitored daily and fixed fast, and while it is broken you are not charged, because only delivered flights cost anything.