Google Flights Scraper - Prices, Emissions & Booking Options
parseforge/google-flights-scraper
TravelAutomationDeveloper tools
Scrape Google Flights fares, airlines, times, stops, layovers, CO2 and price insights, plus per-seller booking options. Export to CSV, Excel, JSON or XML.
- Total runs
- 4
- Bookmarked
- 0
- Last modified
- 2 days ago
This scraper was last updated on .
What does the Google Flights Scraper - Prices, Emissions & Booking Options return?
Google Flights Scraper & Price Tracker: Fares, Emissions, Booking Options & Cheapest Dates
Scrape Google Flights for any route and date: 30 flight options for New York to Los Angeles came back from a single request in under a second of scraping in our last test run. Every option carries its price, airlines, flight numbers, times with UTC offsets, stops and layovers, aircraft, legroom, onboard amenities, CO2 emissions and the "best" flag Google puts on its top flights. No login, no API key. Export to CSV, JSON, Excel, or XML.
Google Flights has no public API. This Actor reads the same result set the Google Flights page shows, keeps Google's own ranking, adds the price insights (low, typical or high, with the typical range and a 60-day price history), and can go one step further: the per-seller booking options for a flight (airline and travel agency prices, fare names, bag fees, booking links) and the price graph with the cheapest fare for about 60 dates around your trip.
| Who uses it | What they scrape Google Flights for |
|---|---|
| Travel startups and fare alert apps | A Google Flights price tracker: the same routes every day, alerting when a fare drops below the typical range |
| Revenue and pricing analysts | Competitor fares by airline, cabin and date, with the exact price in cents |
| Travel agencies and OTAs | Which sellers Google lists for a flight and at what price, next to the airline's own fare |
| Corporate travel and sustainability teams | CO2 per itinerary against the route's typical emissions |
| Data scientists | Airfare datasets for demand, seasonality and price forecasting models |
What it does
The Actor takes an origin, a destination and a date (plus an optional return date), or pasted Google Flights links, and returns one flat row per flight option.
- ๐ฐ Price: the total for your whole party (
price), the exact amount in cents (priceExact), the currency, and whether the fare is low, typical or high right now. - โ๏ธ Itinerary: airlines, flight numbers, departure and arrival airports and times (ISO 8601 with UTC offset), total duration and number of stops.
- ๐งณ Layovers: airport, city and layover duration for every connection.
- ๐ Per segment: aircraft and aircraft code, legroom (inches and Google's average / above / below label), Wi-Fi, power, video, the "often delayed by 30+ min" warning, operating carrier and contrail warming potential.
- ๐ฑ Emissions: CO2 in kg for the itinerary, the typical CO2 for the route and the difference in percent.
- โญ Google's ranking: the
isBestflag for Google's top flights and the originalrank, or your own sort by price, duration, departure, arrival or emissions. - ๐ Links: the Google Flights search URL and the booking page URL for each option, plus Google's booking token.
- โ Optional extras, each off by default: return flights for round trips, 60-day price history, booking options per seller, and the price graph of cheapest dates.
What you can do with Google Flights data
๐ Run a Google Flights price tracker.
Schedule the same routes every morning and keep the cheapest option per route. priceLevel tells you when Google itself calls the fare low, and typicalPriceLow / typicalPriceHigh give you the range to alert against.
๐ Find the cheapest dates to fly.
Turn on the price graph and get one row per date with the cheapest fare Google shows, about two months around your date, for one-way or round trips.
๐ท Compare sellers for the same flight.
Turn on booking options to see every seller Google lists for a flight: the airline's fare families (Basic, Main, Flex) next to travel agencies, with first and second checked bag fees.
๐ Report on flight emissions.
Every row carries CO2 in kg and how it compares with the typical flight on the route, so you can pick the lower-emission option at a given price.
Why choose this scraper
| What you get | |
|---|---|
| Fast and light | One HTTP request returns the full result set for a search. No browser unless you ask for booking options or the price graph. |
| Every field on the card | Price, times with UTC offsets, layovers, aircraft, legroom, Wi-Fi, power, video, delay warnings, emissions and the best-flight flag, in one schema. |
| Exact prices | priceExact carries the fare to the cent, next to the rounded price Google displays. |
| Price insights on every row | Low, typical or high, the typical range, and optionally the 60-day price history. |
| Round trips done right | Outbound options priced as round trips, and optionally the matching return flights, each with a booking link for the pair. |
| Your Google Flights links work | Paste any one-way or round-trip search URL and it runs as is, passengers and cabin included. |
| Every market | 71 currencies, 72 languages and 186 countries, the same lists Google Flights offers. |
How it compares
All the scrapers below read Google Flights. This one adds Wi-Fi, power, video, delay warnings and contrail data per segment, exact prices to the cent, and price insights with history, with no browser for the main search. It does not do multi-city or departure-time windows yet. The comparison uses each rival's public input and README on September 24, 2026.
| Feature | ParseForge | kaix/google-flights-scraper | memo23/google-flights-scraper | automation-lab/google-flights-scraper |
|---|---|---|---|---|
| Legroom per segment | Yes | Not listed | Yes | Not listed |
| Wi-Fi, power, video and delay warnings per segment | Yes | Not listed | Not listed | Not listed |
| CO2 per itinerary and vs. typical | Yes | Yes | Not listed | Yes |
| Price insights (low / typical / high) | Yes, with 60-day history | Not listed | Yes | Not listed |
| Booking options per seller | Optional | Optional | Optional | No |
| Cheapest dates | Optional price graph | Calendar prices | No | Not listed |
| Paste Google Flights URLs | Yes | No | Yes | No |
| Multi-city | No | Not listed | Yes | No |
| Departure and arrival time windows | No | Yes | No | No |
What a Google Flights row looks like
One unedited row from a verified run on September 24, 2026 (JFK to LAX, one way, November 17):
{
"imageUrl": "https://www.gstatic.com/flights/airline_logos/70px/DL.png",
"title": "JFK to LAX, Delta DL 713",
"id": "2026-11-17_DL713",
"rank": 1,
"isBest": "Yes",
"price": 194,
"priceExact": 193.4,
"currency": "USD",
"airlines": ["Delta"],
"airlineCodes": ["DL"],
"flightNumbers": ["DL 713"],
"departureAirport": "JFK",
"departureAirportName": "John F. Kennedy International Airport",
"arrivalAirport": "LAX",
"arrivalAirportName": "Los Angeles International Airport",
"departureTime": "2026-11-17T08:00:00-05:00",
"arrivalTime": "2026-11-17T11:19:00-08:00",
"durationMinutes": 379,
"durationText": "6 hr 19 min",
"stops": 0,
"layovers": [],
"aircraft": ["Airbus A330-900neo"],
"amenities": ["Free Wi-Fi", "In-seat power & USB outlets", "On-demand video"],
"oftenDelayed": "No",
"co2EmissionsKg": 253,
"co2TypicalForRouteKg": 347,
"co2DifferencePercent": -27,
"emissionsLevel": "Lower than typical",
"segments": [
{
"flightNumber": "DL 713",
"airline": "Delta",
"airlineCode": "DL",
"operatedBy": "N/A",
"departureAirport": "JFK",
"departureAirportName": "John F. Kennedy International Airport",
"arrivalAirport": "LAX",
"arrivalAirportName": "Los Angeles International Airport",
"departureTime": "2026-11-17T08:00:00-05:00",
"arrivalTime": "2026-11-17T11:19:00-08:00",
"durationMinutes": 379,
"aircraft": "Airbus A330-900neo",
"aircraftCode": "339",
"legroom": "31 in",
"legroomLabel": "Average legroom",
"amenities": ["Free Wi-Fi", "In-seat power & USB outlets", "On-demand video"],
"oftenDelayed": "No",
"co2EmissionsKg": 253,
"contrailWarmingPotential": "Low"
}
],
"bookingToken": "CjRIR2xYSmJYdDRCZEFBQWh3UVFCRy0tLS0tLXZ3bG0xNy1uMkFBQUFBR3ExamdnR0NKQTBBEgVETDcxMxoLCIyXARACGgNVU0Q4HXCMlwE=",
"rowType": "flight",
"legType": "outbound",
"tripType": "One way",
"cabinClass": "Economy",
"passengers": 1,
"priceNote": "Total one-way price for all passengers",
"priceLevel": "Typical",
"typicalPriceLow": 85,
"typicalPriceHigh": 225,
"searchOrigin": "JFK",
"searchDestination": "LAX",
"searchDepartureDate": "2026-11-17",
"searchReturnDate": "N/A",
"outboundFlightId": "N/A",
"googleFlightsUrl": "https://www.google.com/travel/flights/search?tfs=Gh4SCjIwMjYtMTEtMTdqBwgBEgNKRktyBwgBEgNMQVhAAUgBmAEC&hl=en-US&gl=US&curr=USD",
"bookingUrl": "https://www.google.com/travel/flights/booking?tfs=Gj8SCjIwMjYtMTEtMTciHwoDSkZLEgoyMDI2LTExLTE3GgNMQVgqAkRMMgM3MTNqBwgBEgNKRktyBwgBEgNMQVhAAUgBmAEC&tfu=CmxDalJJUjJ4WVNtSllkRFJDWkVGQlFXaDNVVkZDUnkwdExTMHRMWFozYkcweE55MXVNa0ZCUVVGQlIzRXhhbWRuUjBOS1FUQkJFZ1ZFVERjeE14b0xDSXlYQVJBQ0dnTlZVMFE0SFhDTWx3RT0SAggAIgA&hl=en-US&gl=US&curr=USD",
"scrapedAt": "2026-09-24T20:54:32.790Z",
"error": null
}
With booking options on, a row also carries bookingOptions. For JetBlue B6 423 in the same run: Main Base $204, Main $259, Main Flex $344, Even More Base $388 and Even More $443, all sold by JetBlue, first checked bag $45, each with its booking link.
With the price graph on, the run adds one row per date:
{ "rowType": "date-price", "title": "JFK to LAX on 2026-11-10", "departureDate": "2026-11-10", "returnDate": "N/A", "price": 194, "currency": "USD", "tripType": "One way", "cabinClass": "Economy" }
Configure the run
Give an origin, a destination and a date, or paste Google Flights links. City codes (NYC, LON) cover every airport in the city, and several airports can be combined with commas (JFK,EWR). The Input tab lists every option.
Cheapest nonstop business-class seats for two, in euros:
{ "origin": "NYC", "destination": "LON", "departureDate": "2026-11-17", "adults": 2, "cabinClass": "business", "maxStops": "0", "currency": "EUR", "sortBy": "price" }
A round trip with the return options for the top two outbound flights and their booking options:
{ "origin": "JFK", "destination": "LAX", "departureDate": "2026-11-17", "returnDate": "2026-11-24", "includeReturnFlights": true, "returnFlightsForTopOutbound": 2, "includeBookingOptions": true }
Cheapest dates around a trip, only on SkyTeam airlines:
{ "origin": "BOS", "destination": "MIA", "departureDate": "2026-12-05", "airlines": ["SKYTEAM"], "includePriceGraph": true }
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Google Flights Scraper.
- Enter
origin,destinationanddepartureDate(andreturnDatefor a round trip), or paste links instartUrls, set passengers, cabin and filters, and click Start. - Export the results as CSV, Excel, JSON, or XML from the Dataset tab, or schedule the run to track fares every day.
Run it programmatically through the Apify API or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live Google Flights search through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/google-flights-scraper"
Then prompt it in plain language:
- "Find the cheapest nonstop flight from Boston to Miami on December 5 and tell me if the price is low for that route."
- "Compare business class fares from New York to London next month across airlines, with CO2 per flight."
- "Which dates around mid November have the cheapest round trip from Chicago to Denver?"
Copy this into ChatGPT, Claude, or Cursor to start:
Use the Apify Actor "parseforge/google-flights-scraper" to search Google Flights. Input: { "origin": "<IATA>", "destination": "<IATA>", "departureDate": "<YYYY-MM-DD>", "returnDate": "<YYYY-MM-DD or empty>", "adults": <n>, "cabinClass": "<economy|premium-economy|business|first>", "maxStops": "<any|0|1|2>", "sortBy": "<best|price|duration>", "maxItems": <n> }. Rows come back with price, currency, airlines, flightNumbers, departureTime, arrivalTime, durationMinutes, stops, layovers, co2EmissionsKg, priceLevel and bookingUrl. Call it with the ApifyClient and my APIFY_TOKEN.
Troubleshooting
Why am I getting no results?
Check the codes and the date: origin and destination must be IATA airport or city codes (JFK, NYC), and the date must be today or later. Google Flights shows nothing for routes with no service on that day, and a strict stops or airline filter can empty a search. The run says so in its log.
Why do I get about 30 results per search?
That is what Google Flights shows for a search: its top flights plus the other flights, usually 15 to 40 options. For more rows, add dates, routes or return flights. maxItems caps the total.
Why is the price for a round trip so high?
Google Flights prices a round trip as a pair, so each outbound row carries the total round-trip price for all passengers. Turn on return flights to see which returns go with it.
Why is a field "Not Disclosed" or "N/A"?
"Not Disclosed" means Google did not publish it for that flight (for example legroom on some regional carriers). "N/A" means it does not apply, such as returnDate on a one-way search or operatedBy when the marketing carrier flies the plane itself.
Why did the booking options come back empty?
Some itineraries are only sold as part of a round trip, and a few cannot be booked on Google at that moment. The row is still delivered, and booking options are billed only when they come back.
FAQ
| Question | Answer |
|---|---|
| Do I need a Google account or API key? | No. It reads the public Google Flights pages, logged out. |
| Is there an official Google Flights API? | No. Google retired QPX Express in 2018. This Actor returns the same data the Google Flights page shows. |
| Does it support round trips and multi-city? | One-way and round trips, yes. Multi-city is not supported: run each leg as a one-way search. |
| Which filters are applied by Google? | Stops, airlines and alliances, cabin and passengers go into the Google Flights search itself. Max price and max duration are applied to the returned options. |
| Can I track prices over time? | Yes. Schedule the same input daily and use priceLevel, the typical range, and the optional 60-day price history. |
| Are prices per person? | No, price is the total for all passengers in the party, in the currency you choose. |
| How exact is the price? | price is the rounded amount Google shows. priceExact is the fare to the cent from Google's own itinerary data. |
| What are booking options? | The sellers Google lists for a flight (the airline and travel agencies) with their prices, fare names, bag fees and booking links. |
| Can I paste a Google Flights link? | Yes. One-way and round-trip search links with tfs= in the address run with their own passengers and cabin. |
| How many results per run? | Free plan: 10. Paid: up to 1,000,000, across as many searches as you give it. |
| Is this an official Google product? | No. It is unofficial and reads only public Google Flights data. |
- KAYAK Flight Scraper: flight prices and routes from KAYAK.
- Skyscanner Flight Scraper: live fares, airlines, stops and timings by airport pair and date.
- Momondo Flight Prices Scraper: Momondo airfare by origin, destination and date.
- Google Maps Contacts Scraper: places and their contact details from Google Maps.
Browse the full ParseForge collection for more scrapers.
๐ Need help? Open our contact form with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Google LLC. It collects only publicly available Google Flights data. Prices change constantly and must be confirmed with the seller before booking. You are responsible for using the data in compliance with Google's terms and applicable laws.
What input does the Google Flights Scraper - Prices, Emissions & Booking Options accept?
| Field | Type | What it does | Default |
|---|---|---|---|
| origin | string | IATA airport or city code the trip starts from, e.g. JFK, LHR or NYC (all New York airports). Several airports can be combined with commas: JFK,EWR,LGA. | JFK |
| destination | string | IATA airport or city code of the destination, e.g. LAX, CDG or LON (all London airports). Several airports can be combined with commas. | LAX |
| departureDate | string | Outbound date, YYYY-MM-DD. Must be today or later. | 2026-11-17 |
| returnDate | string | Fill it for a round trip. Leave it empty for a one-way search. Round-trip prices are the total for both directions. | not set |
| startUrls | array | Paste Google Flights search links (the ones with tfs= in the address). One-way and round-trip links are supported. Each link runs as its own search, next to the route above. | not set |
| maxItems | integer | Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 | 10 |
| cabinClass | string (4 options) | Cabin to price. | economy |
| adults | integer | Passengers aged 12 or older. | 1 |
| children | integer | Passengers aged 2 to 11. | 0 |
| infantsInSeat | integer | Infants under 2 with their own seat. | 0 |
| infantsOnLap | integer | Infants under 2 travelling on an adult lap. | 0 |
| maxStops | string (4 options) | Google Flights stops filter. | any |
| airlines | array | Only show flights from these carriers. Use 2-letter IATA airline codes (DL, BA, LH) or an alliance: ONEWORLD, SKYTEAM, STAR_ALLIANCE. Leave empty for all airlines. | not set |
| maxPrice | integer | Drop options above this total price, in the selected currency. | not set |
| maxDurationMinutes | integer | Drop options whose total travel time, layovers included, is longer than this. | not set |
| sortBy | string (6 options) | Order of the results. "Best" keeps the order Google Flights shows, with its top flights first. | best |
| currency | string (71 options) | Currency for every price. | USD |
| language | string (72 options) | Language for airport names and labels. | en-US |
| country | string (186 options) | Market Google Flights prices the search for. Fares can differ between countries. | US |
| includeReturnFlights | boolean | For round trips, also collect the return options for the top outbound flights, each with the full round-trip price and a booking link for the pair. Each return option is a result. | false |
| returnFlightsForTopOutbound | integer | How many of the top outbound flights get their return options collected. | 1 |
| includePriceHistory | boolean | Add the 60-day price history Google Flights shows for this search to every row. | false |
| includeBookingOptions | boolean | For the top flights, open the Google Flights booking page and collect every seller (airline and travel agencies) with its price, fare name, bag fees and booking link. Billed per flight that returns booking options. | false |
| maxBookingOptionFlights | integer | How many flights get their booking options collected, starting from the top of your sort order. | 5 |
| includePriceGraph | boolean | Add one row per date with the cheapest fare Google Flights shows for about two months around your date. Billed per date row. | false |
| proxyConfiguration | object | Google Flights usually answers without a proxy. Switch on Apify Proxy for large volumes. | {"useApifyProxy":false} |
How much does the Google Flights Scraper - Prices, Emissions & Booking Options cost?
from $1.33 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.04228 to $0.0475 |
| Flight option | Each flight option (or return option) written to the dataset, with price, airlines, times, stops, layovers, amenities, CO2 and price insights. | $0.001335 to $0.0015 |
| Booking options | Each flight whose per-seller booking options (airline and travel agency prices, fare names, bag fees, links) were collected, when "Include booking options" is on. | $0.0089 to $0.01 |
| Price graph date | Each date row with the cheapest fare from the Google Flights price graph, when "Include price graph" is on. | $0.00445 to $0.005 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
How do I call the Google Flights Scraper - Prices, Emissions & Booking Options API?
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~google-flights-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"origin": "JFK",
"destination": "LAX",
"departureDate": "2026-11-17",
"maxItems": 10,
"cabinClass": "economy"
}' What example inputs can I use?
Use these inputs to see how a run is configured.
{
"origin": "JFK",
"destination": "LAX",
"departureDate": "2026-11-17",
"maxItems": 10,
"cabinClass": "economy"
} What do users say about the Google Flights Scraper - Prices, Emissions & Booking Options?
No reviews yet. Be the first.
How do I report an issue with the Google Flights Scraper - Prices, Emissions & Booking Options?
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
What related scrapers can I use?
Run Google Flights Scraper - Prices, Emissions & Booking Options on Apify All scrapers
