Google Flights Scraper - Most Comprehensive
Pricing
from $0.05 / 1,000 flights
Google Flights Scraper - Most Comprehensive
๐ฅ ~$0.05/1K flights ๐ฅ Search one-way, round-trip, and multi-city flights, compare flexible dates and destinations, and add optional booking choices.
Pricing
from $0.05 / 1,000 flights
Rating
0.0
(0)
Developer
Kai
Maintained by CommunityActor stats
0
Bookmarked
171
Total users
66
Monthly active users
an hour ago
Last modified
Categories
Share
Google Flights Scraper
Search one-way, round-trip, and multi-city flights. The Actor returns structured prices, schedules, stops, airlines, layovers, emissions, flexible-date prices, and optional booking choices.
What you can do
- Search one route or a batch of routes
- Build multi-city trips with 2 to 5 ordered legs
- Filter by stops, price, duration, airline, alliance, and time
- Search economy, premium economy, business, or first class
- Include adults, children, and infants
- Request prices in a supported currency
- Compare nearby dates or fixed-length round trips
- Find destinations for a flexible month and trip length
- Add booking choices and baggage-policy links
Before you run
- Prices and price filters use the selected
currency, which defaults toUSD. Unsupported currencies are rejected instead of silently falling back. Prices are requested in that currency rather than converted locally; the amount or currency offered at checkout can still differ by provider. - Route airports use different three-letter IATA codes for origin and
destination.
airlinesaccepts two-character carrier codes orONEWORLD,STAR_ALLIANCE, andSKYTEAM. - Dates use
YYYY-MM-DD. Use current or future dates. Routes with past departures, or returns before departure, are skipped. - Passenger totals cannot exceed 9, and each lap infant requires an adult.
- Round trips require a return date. Multi-city legs must be in chronological order and cannot contain return dates.
showAllResultsreturns more flight choices and may increase runtime.- Round-trip and multi-city results do not list every possible leg combination. The Actor returns one complete set of earlier legs plus available alternatives for the final leg.
- Booking details can significantly increase runtime, especially with
showAllResults. - Calendar prices use the same route filters as flight results. Flight time
filters use exact minutes, while Calendar time bounds use whole hours. An
HH:MMboundary can therefore include additional prices from that hour. - Overnight Calendar ranges can take longer, especially in Picker mode when both departure and arrival ranges cross midnight.
- Set
calendarDaysfrom 1 to 90 to control the flexible-date window. Grid values must be odd because the window is centered on the requested date. - Search settings require at least one entry in
searches. Non-default Explore settings requireexploreOrigin; Calendar mode and window settings requireincludeCalendarPrices. - Unknown input fields are rejected so misspelled options cannot silently run a different search.
- Submitting
{}runs a sample SFO to LAX search for the first day of the next month.
Quick start
Paste one of these inputs into the Actor, select Run, then open the run's Dataset to view or export the results. Replace the sample dates with current or future dates.
One-way
{"searches": [{"origin": "SFO","destination": "LAX","departureDate": "2026-09-17"}]}
Round-trip
{"searches": [{"origin": "SFO","destination": "NRT","departureDate": "2026-10-01","returnDate": "2026-10-15"}]}
You can add more entries to searches to run a batch. Every entry in a batch
must be one-way or every entry must be round-trip.
Multi-city
For multi-city trips, searches is one ordered journey.
{"tripType": "multi-city","searches": [{"origin": "SFO","destination": "LAX","departureDate": "2026-09-15"},{"origin": "LAX","destination": "LAS","departureDate": "2026-09-18"},{"origin": "LAS","destination": "SFO","departureDate": "2026-09-21"}]}
Filters and booking choices
{"searches": [{"origin": "SFO","destination": "LAX","departureDate": "2026-09-15"}],"maxStops": "0","currency": "EUR","maxPrice": 200,"maxDuration": 180,"airlines": ["UA", "AA"],"departureTimeEarliest": "08:00","departureTimeLatest": "18:00","sortBy": "cheapest","showAllResults": true,"includeBookingDetails": true}
Flexible dates
Graph checks a forward one-way window starting on the requested date and returns the available prices. It defaults to 61 days.
{"searches": [{"origin": "SFO","destination": "LAX","departureDate": "2026-09-01"}],"includeCalendarPrices": true,"calendarMode": "graph","calendarDays": 30}
Grid checks a window centered on the requested one-way date and returns the available prices. It defaults to 7 days. The departure date must be far enough in the future to include the first date in the window.
Picker requires a round trip. It checks a forward series of departure and return date pairs, keeps the requested trip length, and returns the available prices. It defaults to 61 date pairs.
{"searches": [{"origin": "SFO","destination": "LAX","departureDate": "2026-09-01","returnDate": "2026-09-08"}],"includeCalendarPrices": true,"calendarMode": "picker"}
Flexible destinations
Set exploreOrigin and use searches: [] to run only a destination search. If
searches also contains routes, the Actor runs both.
{"searches": [],"exploreOrigin": "SFO","tripDuration": "1-week","exploreMonth": "next-6-months","adults": 2,"children": 1}
Input
Routes and dates
| Field | Type | Default | Description |
|---|---|---|---|
searches | array | conditional | Routes containing different three-letter IATA origin and destination codes, departureDate, and optional returnDate; defaults to a sample route when exploreOrigin is absent, otherwise [] |
tripType | string | inferred | one-way, round-trip, or multi-city; applies to Flight Searches |
exploreOrigin | string | Three-letter IATA airport code for a flexible destination search | |
tripDuration | string | 1-week | weekend for 1โ4 days, 1-week for 6โ9 days, or 2-weeks for 13โ16 days; non-default values require exploreOrigin |
exploreMonth | string | next-6-months | next-6-months or departure month: january, february, march, april, may, june, july, august, september, october, november, or december; named months require exploreOrigin |
If omitted, tripType is round-trip when any entry has returnDate;
otherwise it is one-way. Every entry in a batch must match the inferred or
explicit type. Multi-city input requires 2 to 5 ordered entries.
Passengers
| Field | Type | Default | Description |
|---|---|---|---|
cabinClass | string | economy | economy, premium-economy, business, or first |
adults | integer | 1 | Adults, from 1 to 9 |
children | integer | 0 | Children, from 0 to 9 |
infantsOnLap | integer | 0 | Infants traveling on an adult's lap; cannot exceed adults |
infantsInSeat | integer | 0 | Infants traveling in their own seat |
Filters
Route filters and non-default sorting require at least one entry in searches.
currency also applies to Explore-only runs.
| Field | Type | Default | Description |
|---|---|---|---|
maxStops | string | any | 0 for nonstop, 1 for up to one stop, or 2 for up to two stops |
currency | string | USD | Currency used for Search, Calendar, Explore, booking prices, and maxPrice |
maxPrice | positive integer | Maximum total price in the selected currency | |
maxDuration | positive integer | Maximum duration per leg, in minutes | |
airlines | string[] | Up to 20 two-character carrier codes or supported alliance names | |
departureTimeEarliest | string | Earliest departure, as 0 to 23 or HH:MM | |
departureTimeLatest | string | Latest departure, as 0 to 23 or HH:MM | |
arrivalTimeEarliest | string | Earliest arrival, as 0 to 23 or HH:MM | |
arrivalTimeLatest | string | Latest arrival, as 0 to 23 or HH:MM | |
sortBy | string | best | best, cheapest, fastest, departure-time, or arrival-time |
A latest time given as a whole hour includes that entire hour. For example,
18 includes departures through 18:59. When the earliest time is later than
the matching latest time, the range crosses local midnight: 22 through 6
means 22:00โ23:59 or 00:00โ06:59. Time filters use each leg's local
departure or arrival clock.
best keeps the recommended order. cheapest places quoted fares from lowest
to highest, followed by schedules without a quoted fare. fastest uses total
itinerary duration.
For round trips and multi-city trips, maxStops, maxDuration, and time limits
apply to every leg. Each leg must include a matching airline. maxPrice,
cheapest, and fastest use the complete itinerary. Departure and arrival
sorting use the varying final-leg alternatives.
Optional details
| Field | Type | Default | Description |
|---|---|---|---|
showAllResults | boolean | false | Return more available flight choices before applying filters; requires at least one route |
includeCalendarPrices | boolean | false | Return flexible-date prices for each route; requires at least one route and is unavailable for multi-city |
calendarMode | string | graph | graph, grid, or picker; non-default modes require includeCalendarPrices |
calendarDays | integer | mode-specific | Number of dates or Picker date pairs from 1 to 90; requires includeCalendarPrices; defaults to 61 for Graph and Picker or 7 for Grid; Grid requires an odd value |
includeBookingDetails | boolean | false | Add booking choices and baggage-policy links; requires at least one route |
proxyConfiguration | object | Apify Proxy enabled | Optional connection settings; by default no proxy group is selected |
Output
This complete Dataset record came from a successful live run using the one-way input above. Prices and availability change.
{"origin": "SFO","destination": "LAX","departureDate": "2026-09-17","returnDate": null,"tripType": "one-way","cabinClass": "economy","price": 23,"currency": "USD","pricePerPassenger": null,"totalDuration": 96,"stops": 0,"airlines": ["Frontier"],"airlineCodes": ["F9"],"outbound": {"duration": 96,"stops": 0,"segments": [{"airline": "Frontier","airlineCode": "F9","flightNumber": "F92858","aircraft": "Airbus A320neo","departureAirport": "SFO","arrivalAirport": "LAX","departureTime": "2026-09-17T12:07:00-07:00","arrivalTime": "2026-09-17T13:43:00-07:00","duration": 96,"layover": null}]},"return": null,"co2Emissions": 59599,"co2EmissionsLabel": null,"fareClass": null,"bookingDetails": null,"calendarPrices": null}
Round-trip and multi-city results also contain legs. outbound is always the
first leg. return is the second leg for round trips and remains null for
multi-city trips. totalDuration and stops summarize all legs, while the
corresponding filters apply to each leg.
Durations and layovers use minutes. co2Emissions uses grams. Departure and
arrival timestamps use local airport times and include the exact UTC offset for
that flight date. price is null when a schedule is available without a
quoted fare. The reserved fields pricePerPassenger, co2EmissionsLabel, and
fareClass are currently always null.
When searches and exploreOrigin are supplied together, their results share
one Dataset. Flight records contain outbound, destination records contain
destinationId, and standalone Calendar records have
recordType: "calendar".
Explore results are saved before flight results when both are requested. Batch routes follow input order.
Calendar prices
When requested, calendarPrices is added to the first flight result for each
route. Each item contains date and price. Picker items also contain
returnDate. Calendar prices respect the stops, price, duration, airline,
passenger, cabin, and time options supplied with the route.
Calendar prices are returned in date order. Picker entries with the same departure date are ordered by return date.
calendarPrices is an empty array when the Calendar check completes without
matching prices. It remains null when Calendar prices were not requested or
could not be checked.
If no matching flight is returned but the Calendar request completes, the Actor
returns a separate recordType: "calendar" record. It contains the route,
passenger settings, mode, resolved calendarDays, currency, and
calendarPrices.
Booking details
bookingDetails.bookingOptions can contain:
- Provider name, provider code, and whether booking is airline-direct, when known
- Flight numbers, price, and currency
- Display URL text when available; it may not be a navigable link
- A
bookingFormwith anactionandfields
Submit a booking form using its action and all supplied fields together.
baggagePolicies contains airline policy links. bookingOptions can be empty
when no provider choices are available. A result keeps bookingDetails as
null when booking details were not requested or were unavailable.
googleFlightsUrl is included inside booking details and can be null.
Flexible destination results
Destination results contain destinationId, city, country, airport,
departureDate, returnDate, price, cheapestPrice, currency, airline,
airlineCode, stops, and duration.
Use price as the quoted result price. cheapestPrice is an optional comparison
value and may be higher or lower. Results with an itinerary quote are listed
before comparison-only results. departureDate and returnDate are always
present. Either price field can be null, but every result contains at least one
price value. airline, airlineCode, stops, and duration can be null.
Region results can have an empty airport, and airlineCode can be "multi"
for itineraries with more than one airline.
Failed and partial runs
A valid request with no matching flights or destinations can succeed with an empty Dataset. A past route is skipped without failing the run. When Calendar prices were requested and checked successfully, the standalone Calendar record described above can still be returned without a matching flight.
For batch inputs, successful routes remain in the Dataset when another route or optional detail fails. The overall run is marked failed when any requested operation fails, and the log identifies the affected route or feature.