Google Flights Scraper: Flight Prices & Fare Deals avatar

Google Flights Scraper: Flight Prices & Fare Deals

Pricing

from $0.40 / 1,000 results

Go to Apify Store
Google Flights Scraper: Flight Prices & Fare Deals

Google Flights Scraper: Flight Prices & Fare Deals

Google Flights scraper: live one-way and round-trip prices for any route or pasted Google Flights link. Airline, stops, times, airports, duration, layovers, CO2 and Google's price outlook. Compare up to 14 departure dates; filter by cabin, passengers, stops and airlines.

Pricing

from $0.40 / 1,000 results

Rating

0.0

(0)

Developer

Philip Kirkbride

Philip Kirkbride

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Get live flight prices from Google Flights for any route, one-way or round trip. Give a route (airport codes or city names) with optional dates, or paste a Google Flights link, and every itinerary on the results page becomes one row: price in your currency, airline, stops, departure and arrival airports with codes, times and dates, total duration, each layover with its airport and length, estimated CO2 emissions, a basic-economy flag and Google's price outlook for the search ("low", "typical" or "high").

Compare up to 14 departure dates in one run and get the cheapest fare for each day. Filter by cabin class, number of passengers, maximum stops and airlines. Each itinerary is returned once, even though Google lists some of them twice, so you never pay for a repeated fare.

Use it as a Google Flights API: send routes and dates, get back a clean dataset you can download as JSON, CSV or Excel, read from your own code, or refresh on a schedule for fare alerts. Every run fetches fresh prices.

Quick Start

{
"origin": "JFK",
"destination": "LHR",
"departDate": "2027-01-12",
"returnDate": "2027-01-19",
"currency": "USD"
}

This run returns the round-trip itineraries Google Flights shows for New York to London, 10 to 17 December: airline, stops, times, duration, layovers and the round-trip total for each. Leave out returnDate for a one-way search. Use routes to search several routes in one run, or searchUrls to reuse a search you already set up on Google Flights.

Use cases

  • Fare alerts and price tracking: re-run the same routes every day and watch the cheapest price and Google's price outlook (low, typical, high). Send an alert when a fare drops below your target.
  • Flexible-date search: compare up to 14 departure dates and pick the cheapest day to fly, like a fare calendar.
  • Travel agencies and deal newsletters: scan many routes from your home airports and publish the best fares.
  • Corporate travel and budgeting: price recurring business trips by cabin, airline and number of stops.
  • Airline and route research: fares, durations and nonstop availability by airline across routes, dates and currencies.
  • Greener trips: compare itineraries by CO2 estimate and layover time.

Input recipes

One-way fares for a single day

{"origin": "JFK", "destination": "LAX", "departDate": "2027-01-19"}

A weekend round trip priced in euros

{"origin": "LHR", "destination": "BCN", "departDate": "2027-01-22", "returnDate": "2027-01-25", "currency": "EUR"}

Cheapest day to fly: one row per departure date for a week

{"origin": "LIM", "destination": "MAD", "departDate": "2027-02-02", "departDateWindowDays": 7, "currency": "PEN"}

A round trip of fixed length across two weeks of departure dates

{"origin": "MEX", "destination": "CUN", "departDate": "2027-02-02", "returnDate": "2027-02-09", "departDateWindowDays": 14, "currency": "MXN"}

Each date keeps the same 7-night trip: the return date moves with the departure.

Nonstop business class for two

{"origin": "JFK", "destination": "LAX", "departDate": "2027-01-19", "cabinClass": "business", "adults": 2, "maxStops": 0}

Only certain airlines, at most one stop

{"origin": "SCL", "destination": "BOG", "departDate": "2027-01-12", "maxStops": 1, "airlines": ["LA", "AV"], "currency": "COP"}

Several routes in one run

{"routes": [{"origin": "MEX", "destination": "CUN"}, {"origin": "Lima", "destination": "Bogotá", "departDate": "2027-02-02"}], "currency": "MXN"}

A search you set up on Google Flights

{"searchUrls": ["https://www.google.com/travel/flights?q=Flights%20to%20CDG%20from%20JFK%20on%202027-01-12%20through%202027-01-19"], "currency": "USD"}

Set up the search on google.com/travel/flights with the filters you want, copy the link from the address bar and paste it. The link keeps its own route, dates, passengers, cabin and filters; prices come back in the currency you choose.

Input

InputTypeDefaultMeaning
routesarray[]Routes to search. Each has origin and destination (airport code or city name) and optional departDate and returnDate (YYYY-MM-DD). One-way without returnDate, round trip with it.
origin, destinationstringLIM, MADShortcut for a single route. Ignored when routes is set.
departDate, returnDatestringemptyDates for the single-route shortcut (YYYY-MM-DD). Leave departDate empty to let Google Flights pick a date.
departDateWindowDaysinteger1Search this many consecutive departure dates from departDate (up to 14). The return date moves with it. With more than 1, each date returns its cheapest itinerary.
searchUrlsarray[]Google Flights links (google.com/travel/flights...) for one-way or round-trip searches. Each link is one search, with its own filters.
maxResultsinteger25Maximum itineraries per search (1-100).
currencystringUSDUSD, EUR, GBP, PEN, MXN, BRL, COP, ARS or CLP.
cabinClassstringeconomyeconomy, premium-economy, business or first.
adults, childreninteger1, 0Passengers. Prices are the total for everyone (up to 9).
maxStopsintegerempty0 for nonstop only, 1 or 2 for at most that many stops. Empty means any number of stops.
airlinesarray[]Only these airlines, as 2-character codes (DL, IB, LA, ...).
requestDelaySecsnumber2Seconds to wait between searches.

Cabin class, passengers, airlines and a 1 or 2 stop limit need 3-letter airport codes and a departDate on every route. Nonstop works with city names and without dates.

What it returns

One row per itinerary:

FieldMeaning
routeThe route searched, e.g. LHR→BCN, or the route of a pasted link.
urlThe Google Flights search the row comes from.
price, currencyTotal price for all passengers in the requested currency. Round trips show the round-trip total.
tripone-way or round-trip, always the trip type you searched.
stops, airlineNonstop, 1 stop, 2 stops ..., and the airline shown on the itinerary.
depart_airport, depart_airport_code, depart_time, depart_date, depart_date_isoDeparture airport name and code, clock time, date as shown and as YYYY-MM-DD.
arrive_airport, arrive_airport_code, arrive_time, arrive_date, arrive_date_isoThe same for arrival. The arrival date shows overnight flights.
duration, duration_minutesTotal travel time as shown and in minutes.
layoversOne entry per stop: airport, airport_code, city, duration, duration_minutes, overnight.
co2_kg, co2_vs_typical_pctEstimated emissions in kg, and percent versus a typical flight on the route (0 = average).
is_basic_economyTrue for fares without overhead bin access.
is_top_flightTrue when Google lists the itinerary among its top flights.
price_level, cheapest_time_to_bookGoogle's price outlook for the search (low, typical, high) and when booking is usually cheapest, when shown.
search_depart_date, cabin_class, passengersWhat was searched: departure date, cabin and passenger count.
source, scraped_atgoogle.com/travel/flights and the collection time (UTC, ISO 8601).

Output example

A real row from the Quick Start search (New York JFK to London Heathrow, round trip 10 to 17 December 2026, collected on 20 October 2026):

{
"route": "JFK→LHR",
"url": "https://www.google.com/travel/flights?q=flights+from+JFK+to+LHR+on+2026-12-10+through+2026-12-17&hl=en-US&gl=US&curr=USD",
"price": 794,
"currency": "USD",
"trip": "round-trip",
"stops": "1 stop",
"airline": "Aer Lingus",
"depart_airport": "John F. Kennedy International Airport",
"depart_airport_code": "JFK",
"depart_time": "6:50 PM",
"depart_date": "Thursday, December 10",
"depart_date_iso": "2026-12-10",
"arrive_airport": "Heathrow Airport",
"arrive_airport_code": "LHR",
"arrive_time": "9:15 AM",
"arrive_date": "Friday, December 11",
"arrive_date_iso": "2026-12-11",
"duration": "9 hr 25 min",
"duration_minutes": 565,
"layovers": [
{
"airport": "Shannon Airport",
"airport_code": "SNN",
"city": "Shannon",
"duration": "1 hr 40 min",
"duration_minutes": 100,
"overnight": false
}
],
"co2_kg": 429,
"co2_vs_typical_pct": 0,
"is_basic_economy": false,
"is_top_flight": true,
"price_level": "typical",
"cheapest_time_to_book": "earlier, about 2–5 months before takeoff",
"search_depart_date": "2026-12-10",
"cabin_class": "economy",
"passengers": 1,
"source": "google.com/travel/flights",
"scraped_at": "2026-10-20T00:54:14.917854+00:00"
}

Use it as a Google Flights API

Run it from your own code with the Apify API and read the itineraries straight back. For example, with curl:

curl -X POST "https://api.apify.com/v2/acts/barefoot_grade~google-flights-deals-monitor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"origin": "JFK", "destination": "LAX", "departDate": "2027-01-19", "maxResults": 10}'

The same works from the Apify Python and JavaScript clients and from Make, Zapier and n8n. For fare alerts, save your routes as a task, schedule it daily in the Apify Console and send the results to a webhook, Slack, email or Google Sheets.

FAQ

Is there an official Google Flights API? No. Google retired its public flight-search API (QPX Express) in 2018. This Actor returns the same itineraries and prices you see on google.com/travel/flights, as structured data.

How fresh are the prices? Every run searches Google Flights at run time. Nothing is cached between runs, so each row is the price shown at scraped_at.

Are the prices for one person or everyone? For everyone you set in adults and children. On a round trip, price is the round-trip total and the row describes the outbound flight.

How do I find the cheapest day to fly? Set departDate to the first date and departDateWindowDays to up to 14. Each date returns its cheapest itinerary, so the rows read like a fare calendar. Add returnDate to keep a fixed trip length.

How many itineraries does one search return? The ones Google Flights shows on its results page, usually 8 to 35 per search, capped by maxResults.

Can I use city names instead of airport codes? Yes, for plain searches and nonstop-only searches. Cabin class, passengers, airlines and a 1 or 2 stop limit need 3-letter airport codes and a departDate.

Which currencies are supported? USD, EUR, GBP, PEN, MXN, BRL, COP, ARS and CLP.

Can I search multi-city trips or add lap infants? No. Google Flights shows no prices for those searches here, so use one-way or round-trip searches, one per leg if needed.

Does it include flight numbers, aircraft or baggage fees? No. Rows carry what Google shows on the results list: airline, times, stops, layovers, duration, emissions and the basic-economy flag (no overhead bin).

Why does price_level differ between two currencies for the same route? It is Google's own outlook as shown for that search and currency at that moment.

What happens if a route returns nothing? That route emits no rows; check the spelling of city names or use airport codes. A search that briefly comes back without prices is retried before it is skipped. If every search in the run comes back empty, the run fails instead of finishing with an empty dataset.

Good to know

  • With departDateWindowDays above 1, each date is a separate search and returns one row (its cheapest itinerary). Dates Google cannot price are skipped.
  • Leaving out returnDate always runs a true one-way search with one-way prices.
  • Many routes times 14 dates is many searches; at a few seconds each, keep large runs within the run timeout or split them into several tasks.
  • Prices change constantly. Every run fetches fresh prices; nothing is stored between runs.

Price

$0.40 per 1,000 itineraries ($0.0004 per row), plus $0.00005 per run start. A start is charged once per GB of memory, so the default 512 MB run is one start. Searches that return nothing add no row charge. Platform usage is included in these prices.