Google Flights Scraper (bulk searches)
Pricing
from $0.77 / 1,000 flight listeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
32 minutes ago
Last modified
Categories
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-15orJFK LAX 2026-11-03 2026-11-10and 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.
Related actors from steadydata
- google-flights-price-calendar: the cheapest day to fly: one row per departure day over a range
- google-hotels-city: the hotels at the destination: ratings, reviews, indicative price
- google-trends-batch: when interest in a destination peaks
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.