ParseForge Scrapers

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.

Run this scraper See the API call
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?

ParseForge

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 isBest flag for Google's top flights and the original rank, 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

  1. Create a free Apify account with $5 in credit.
  2. Open the Google Flights Scraper.
  3. Enter origin, destination and departureDate (and returnDate for a round trip), or paste links in startUrls, set passengers, cabin and filters, and click Start.
  4. 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.

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?

FieldTypeWhat it doesDefault
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 forWhat it isPrice 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.

POST ยท run and get results
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.

input.json
{
  "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