Google Flights Scraper — Fares, Stops, Layovers & CO₂
Pricing
from $3.00 / 1,000 flight itinerary returneds
Google Flights Scraper — Fares, Stops, Layovers & CO₂
Scrape Google Flights one-way and round-trip fares by route and date: price, airlines, stops, layovers, flight numbers, aircraft, carbon emissions and the Google Flights link. Filter by stops, airline and max price.
Pricing
from $3.00 / 1,000 flight itinerary returneds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
14
Total users
4
Monthly active users
a day ago
Last modified
Categories
Share
What is Google Flights Scraper?
Google Flights Scraper returns one dataset row per flight option from Google Flights for the route and dates you choose. Each row has the price, currency, airlines, stops, total duration, departure and arrival times, every segment with flight number and aircraft, layovers, carbon emissions and a link back to the Google Flights search. Travel agencies, fare analysts, travel managers and AI agents use it to compare fares and schedules, with no Google account.
Why travel teams use it
- One-way and round trip. Leave
returnDateempty for one-way; add it for round-trip prices. - Segment detail. Flight numbers, aircraft types, cabins and layover airports and durations.
- Carbon data.
carbonKgand how it compares with a typical flight on the route. - 32 currencies and markets. Set
currency,countryandlanguagefor local prices. - Relative dates. Use
+30 daysstyle dates for schedules that never go stale.
How to use it
One-way fares from Los Angeles to New York in a month:
{"origin": "LAX","destination": "JFK","departureDate": "+30 days","maxResults": 20}
Business-class round trip London to New York, priced in euros:
{"origin": "LHR","destination": "JFK","departureDate": "+45 days","returnDate": "+52 days","cabinClass": "business","currency": "EUR","country": "uk","maxResults": 10}
| Input | What it controls |
|---|---|
origin, destination | Airport codes such as LAX, JFK, LHR |
departureDate, returnDate | YYYY-MM-DD or relative such as +30 days; empty returnDate = one-way |
adults, children, infantsInSeat, infantsOnLap | Passengers |
cabinClass | economy (default), premium_economy, business or first |
maxStops | Most stops allowed; 0 for non-stop |
includeAirlines, excludeAirlines | Airline codes such as UA, BA or an alliance (STAR_ALLIANCE, SKYTEAM, ONEWORLD); use one or the other |
maxPrice | Highest total price to keep, in the chosen currency |
currency, country, language | Price currency and Google market |
maxResults | Most flight options to save (default 50) |
Output: flight data you receive
A real round-trip row (segments shortened to the first leg's two flights):
{"tripType": "round_trip","origin": "LHR","destination": "JFK","departureDate": "2026-11-16","returnDate": "2026-11-23","price": 2191,"currency": "EUR","isBestFlight": true,"cabinClass": "business","totalDurationMinutes": 645,"stops": 1,"airlines": ["Icelandair"],"outbound": {"departureTime": "2026-11-16T12:15:00","arrivalTime": "2026-11-16T18:00:00","segments": [{ "flightNumber": "FI 451", "aircraft": "Boeing 767", "origin": "LHR", "destination": "KEF", "cabin": "Business Class" },{ "flightNumber": "FI 615", "aircraft": "Boeing 737MAX 9 Passenger", "origin": "KEF", "destination": "JFK", "cabin": "Business Class" }],"layovers": [{ "airport": "KEF", "durationMinutes": 80, "overnight": false }]},"return": null,"carbonKg": 983,"carbonVsTypical": "-15%","googleFlightsUrl": "https://www.google.com/travel/flights?hl=en&gl=uk&curr=EUR&tfs=..."}
| Field | What it contains |
|---|---|
price, currency, isBestFlight | Fare and whether Google ranks it a best flight |
airlines, stops, totalDurationMinutes | The itinerary at a glance |
outbound.segments, outbound.layovers | Flight numbers, aircraft, cabins and connections |
carbonKg, carbonVsTypical | Emissions estimate |
googleFlightsUrl | The search on Google Flights |
bookingUrl | Google Flights booking-options page when Google returns one (mostly one-way); otherwise null |
tripType, departureDate, returnDate, cabinClass | Search context |
For round trips, price is the round-trip fare and outbound describes the first leg; Google Flights chooses the return flight on a second screen, so return stays null.
Example workflow: a fare tracker for a team trip
A travel manager watches fares for a team flying San Francisco to Seattle. Each Monday they collect non-stop options with maxStops 0 for the trip dates and record the lowest price per airline. When the price drops, they book. They continue with Kayak Flights Scraper for the same route to compare booking-site prices and baggage fees.
Pricing
This Actor uses Pay per event plus Apify platform usage. You pay a small start event, one event per completed search and one event per flight option saved, plus the platform usage of the job. The live Pricing tab on this page shows the current prices.
- 1 route with
maxResults20 = 1 search event + up to 20 flight events + platform usage. maxStops, airline filters,maxPriceandmaxResultsreduce the rows saved and charged.- Invalid input stops before any search and is not charged. If the search service is unavailable, the run ends with a clear status message instead of empty rows.
maxResultsis the cost ceiling per search.
Free Apify plan
Runs started from a free Apify plan return up to 50 results per run, with every input mode and output field available. Paid Apify plans have no per-run limit, so your usual result settings apply.
Flight data with AI agents (MCP)
Connect this Actor to an AI agent through Apify MCP and ask in plain language:
Find the cheapest non-stop flight from San Francisco to Seattle three weeks from today and tell me the airline and time.
Agent checklist:
- Set
origin,destinationanddepartureDate(relative dates such as+21 dayswork). - Add
returnDateonly for round trips. - Use
maxStops: 0for non-stop requests. - Read rows with
get-dataset-itemsand sort byprice.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~google-flights-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"origin": "SFO", "destination": "SEA", "departureDate": "+21 days", "maxStops": 0, "maxResults": 10}'
Related travel tools from the same developer
| Your next step | Use | Why |
|---|---|---|
| When you compare booking-site prices and bag fees | Kayak Flights Scraper | Booking options with baggage costs |
| When you look for award seats | Flight Award Availability Scraper | Points availability on routes |
| When you then price a hotel for the trip | Booking Scraper PRO | Hotel prices and review scores |
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| Regular tracking | Use relative dates such as +30 days | A schedule that never goes stale |
| A local market | Set currency and country together | Prices as locals see them |
| Non-stop only | Set maxStops to 0 | Direct flights only |
| Premium cabins | Set cabinClass | Business or first fares |
Builder's note
I found that people comparing flights look at stops, layover length and aircraft as much as price, so every row carries full segment and layover detail. I learned that saved searches with fixed dates go stale, so relative dates such as +30 days are accepted everywhere a date is.
FAQ
Do I need a Google account?
No. The Actor reads public Google Flights results.
Why is return empty on round trips?
Google Flights shows the round-trip price with the outbound flight first and lists return flights on a separate screen. The price covers the whole round trip.
Does it return booking links?
It returns Google Flights links, and airline or travel-agency offers stay on Google Flights. Every row links to the Google Flights search (googleFlightsUrl). When Google returns a booking-options page for an itinerary, mostly on one-way searches, its link is in bookingUrl; otherwise that field is null.
Which airport codes work?
IATA airport codes such as JFK, LHR or NRT.
Can I get prices in my currency?
Yes. Set currency (for example EUR, GBP, JPY) and the matching country.
What do the carbon fields mean?
carbonKg is Google's emissions estimate for the itinerary, and carbonVsTypical compares it with a typical flight on the route.
Responsible use
This Actor collects publicly visible Google Flights results. Use the data for fare research and travel planning, and follow Google's terms and the laws that apply to you. Read Apify's guide on whether web scraping is legal for more context. Google is a trademark of Google LLC. This independent Actor is not affiliated with, associated with, or endorsed by Google. For questions or bugs, open a ticket in the Issues tab.