Google Flights Scraper - Live Fares, Airlines & Layovers
Pricing
from $0.88 / 1,000 flight searches
Google Flights Scraper - Live Fares, Airlines & Layovers
Scrape live Google Flights fares for any route: price, airline, departure and arrival times, duration, stops and full layover detail. 32 itineraries per search, from $1 per 1,000.
✈️ Google Flights Scraper — Live Fares, Airlines & Layovers
🔎 What is the Google Flights Scraper — and when should you use it?
The Google Flights Scraper turns live Google Flights fares for a route and date, with airlines, times and layovers into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.
Use it when you need: itinerary rows for one origin, destination and date. Each row carries the fare in US dollars, the operating airlines, departure and arrival times with their dates, total journey duration as both a label and minutes, and the stop count. Every connection adds a layover entry giving the airport, the city and the wait in minutes. Cabin class and a maximum-stops cap narrow the search at the source, and one search returns up to 32 itineraries.
Use something else when: you want accommodation, a different travel platform, or a booked-fare feed. Use Agoda Flight Scraper for flight results from Agoda's own inventory, including bulk route lists. Use Booking.com Scraper for Booking.com stays, reviews and forward availability. Use Agoda Hotel Scraper for Agoda listings with nightly price, guest score, rooms and reviews. Use Tripadvisor Hotel Scraper for Tripadvisor hotels with price, rating, city ranking and reviews. This actor covers one-way Google Flights searches only. It cannot return round-trip or multi-city fares — Google composes those in the browser, so they are absent from the served page for any reader. It also does not book, and does not return seat maps or fare rules.
🤖 Use with AI agents
Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/google-flights-scraper
Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.
Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want live airfares for a route and date, with airlines, times, stops and layovers using the Apify Actor `sian.agency/google-flights-scraper`.Use it when I need: itinerary rows for one origin, destination and date. Each row carries the fare in US dollars, the operating airlines, departure and arrival times with their dates, total journey duration as both a label and minutes, and the stop count. Every connection adds a layover entry giving the airport, the city and the wait in minutes. Cabin class and a maximum-stops cap narrow the search at the source, and one search returns up to 32 itineraries.Don't use it when: you want accommodation, a different travel platform, or a booked-fare feed — use agoda-flight-scraper or booking-com-scraper or agoda-hotel-scraper or tripadvisor-hotel-scraper instead.How to call it: set `origin` and `destination` to IATA codes and `departureDate` to YYYY-MM-DDorigin / destination -> three-letter airport codes (LHR, JFK). City codes work too:LON covers all five London airports, NYC covers JFK/LGA/EWRdepartureDate -> YYYY-MM-DD, up to about eleven months aheadcabinClass -> economy | premium | business | first (default economy)maxStops -> any | 0 (nonstop only) | 1 | 2 (default any)adults -> passenger count; fares are quoted per passengermaxResults -> caps itineraries returned, and so caps what the run chargesOne search returns up to 32 itineraries. For a return journey, run each directionseparately and treat the total as an upper bound — published round-trip fares areoften cheaper than two one-way tickets..Start with this input:{"origin": "LHR","destination": "JFK","departureDate": "2026-10-15","cabinClass": "economy","maxStops": "any","adults": 1}Ask me which airports and which departure date, and whether I care about cabin class or nonstop only, then run the Actor and summarise the results as a table.
Things you can ask your agent for:
- Price London to New York on 15 October and show me the cheapest nonstop next to the cheapest option overall.
- Run these twelve routes for the same date and tell me which ones have no nonstop service at all.
- Track this route daily for two weeks and flag any day the fare drops more than 15% below the running median.
- Compare business class against economy on this route and tell me what the premium actually buys in journey time.
Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/google-flights-scraper.md.
Overview
Pull live airfares for any route from Google Flights and get them back as clean, structured rows.
Give it an origin, a destination and a date. You get up to 32 itineraries, each with the fare in US dollars, the operating airlines, departure and arrival times, total journey duration, the number of stops, and full layover detail — which airport, which city, and how long you wait there — for every connection.
Fares move constantly. Every run fetches the route fresh and stamps each row with the moment it was collected, so you always know how old a price is.
Features
- 32 itineraries per search — the cheapest, the fastest, and the whole spread in between, rather than the single result a search page leads with.
- Full layover detail on every row — airport, city and wait time per connection, included in the base result rather than sold as an add-on.
- Real filters, not cosmetic ones — cabin class (economy, premium economy, business, first) and a maximum-stops cap both narrow the result set at the source.
- Worldwide coverage — any airport pair Google Flights serves. City codes such as
LONandNYCwiden a search to every airport in that city. - Fares in one currency — everything is quoted in USD so routes and runs are directly comparable.
- You are billed per itinerary returned — a search that finds nothing costs you nothing beyond the run start.
- An HTML run report with every row, what you paid, and a fix for anything that failed.
Quick start
- Open the Actor and press Start — the default input searches London Heathrow to New York JFK.
- Swap
origin,destinationanddepartureDatefor the route you care about. - Read the results in the Output tab, or export to JSON, CSV or Excel.
{"origin": "LHR","destination": "JFK","departureDate": "2026-10-15","cabinClass": "economy","maxStops": "any","adults": 1}
Getting started
Airports are given as three-letter IATA codes — LHR, JFK, CDG, NRT. City codes work too:
LON covers Heathrow, Gatwick, Stansted, Luton and City, and NYC covers JFK, LaGuardia and
Newark. Using a city code is usually the right move when you care about the price rather than the
terminal.
Dates are YYYY-MM-DD. Google publishes fares about eleven months ahead; ask for a date past that
window and you get no itineraries rather than an error.
To price a return journey, run each direction as its own search. Be aware that published round-trip fares are frequently cheaper than two one-way tickets, so treat the sum of two legs as an upper bound rather than the true return price.
Input configuration
| Field | Type | Default | What it does |
|---|---|---|---|
origin | string | LHR | IATA airport or city code to depart from |
destination | string | JFK | IATA airport or city code to fly to |
departureDate | string | 2026-10-15 | Departure date, YYYY-MM-DD |
cabinClass | select | economy | economy, premium, business or first |
maxStops | select | any | any, 0 (nonstop only), 1, or 2 |
adults | integer | 1 | Adult passengers; fares are quoted per passenger |
maxResults | integer | 32 | Upper bound on itineraries returned, and so on what a run can charge |
Output
One row per itinerary:
| Field | Type | Example |
|---|---|---|
priceUsd | number | 463 |
currency | string | USD |
airlines | array | ["Brussels Airlines", "Lufthansa"] |
stops | integer | 1 |
stopsLabel | string | 1 stop |
originAirport | string | Heathrow Airport |
destinationAirport | string | John F. Kennedy International Airport |
departureTime | string | 12:20 PM |
departureDate | string | Thursday, October 15 |
arrivalTime | string | 8:05 PM |
arrivalDate | string | Thursday, October 15 |
durationLabel | string | 12 hr 45 min |
durationMinutes | integer | 765 |
layovers | array | [{ "airport": "Vienna International Airport", "city": "Vienna", "duration": "1 hr 20 min", "durationMinutes": 80, "position": 1, "of": 1 }] |
cabinClass | string | Economy |
route | string | LHR → JFK |
originCode / destinationCode | string | LHR / JFK |
searchDate | string | 2026-10-15 |
searchUrl | string | the exact search this row came from |
scrapedAt | string | ISO timestamp the fare was collected |
Use cases
- Fare tracking — run a route on a schedule and keep every quoted fare. Because each row carries the airline, times and stop count next to the price, you can tell a genuinely cheaper fare from a worse itinerary that happens to cost less.
- Airline competitive pricing — see every carrier on a route for a date side by side, including the connections that undercut the nonstops.
- Travel content and deal feeds — power a deals site, newsletter or channel with current fares for the routes you cover.
- Corporate travel benchmarking — check what a city pair actually costs before approving a booking, and keep the evidence.
- Route and market research — measure how many carriers serve a pair, what the nonstop premium is, and what a connection saves.
Integration examples
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('sian.agency/google-flights-scraper').call({origin: 'LHR',destination: 'JFK',departureDate: '2026-10-15',cabinClass: 'economy',});const { items } = await client.dataset(run.defaultDatasetId).listItems();const cheapest = items.sort((a, b) => a.priceUsd - b.priceUsd)[0];console.log(`Cheapest: $${cheapest.priceUsd} with ${cheapest.airlines.join(' + ')}`);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("sian.agency/google-flights-scraper").call(run_input={"origin": "LHR","destination": "JFK","departureDate": "2026-10-15",})rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())nonstop = [r for r in rows if r["stops"] == 0]print(f"{len(nonstop)} nonstop options, from ${min(r['priceUsd'] for r in nonstop)}")
cURL
curl -X POST "https://api.apify.com/v2/acts/sian.agency~google-flights-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"origin":"LHR","destination":"JFK","departureDate":"2026-10-15"}'
Automation workflows — the Actor works as a step in n8n, Make or Zapier through Apify's connectors. A common pattern is a daily schedule that runs a set of routes, appends the rows to a sheet or database, and alerts you when a fare drops below a threshold you set.
FAQ
Does this return round-trip or multi-city fares? No. It searches one direction and one date at a time. Google composes round-trip and multi-city prices in the browser rather than in the page it serves, so those fares are not present in the response at all. Run each direction separately for a return journey, and treat the total as an upper bound — published round-trip fares are often cheaper than two one-ways.
How many itineraries does one search return? Up to 32. That is the source's own ceiling for a single search, not a limit we impose. Narrowing by cabin class or stops returns fewer because fewer itineraries qualify.
Are the prices live? Yes. Every run fetches the route at the moment you run it, and every row records when it was collected. Airfares move constantly, so a fare read an hour ago may no longer be bookable.
Can I book through this? No. It reports what Google Flights publicly displays for a search. Booking happens with the airline or an agent.
Which currency are fares in? US dollars, so routes and runs stay directly comparable.
How far ahead can I search? Roughly eleven months, which is how far fares are published. A later date returns no itineraries rather than an error.
Why did my search return nothing?
Usually there are genuinely no flights for that pair on that date. Try a nearby date, use a city
code such as LON or NYC instead of a single airport, or allow more stops.
Troubleshooting
| What you see | What it means | What to do |
|---|---|---|
| No itineraries, run succeeded | No flights published for that route and date | Try a nearby date, a city code, or a higher maxStops |
Origin "..." is not a three-letter airport code | The code was rejected before anything was charged | Use an IATA code such as LHR, not a city name |
Origin and destination are the same airport | Both fields hold the same code | Set two different airports |
... is not in YYYY-MM-DD form | Date format | Use 2026-10-15, not 15/10/2026 |
| Fewer rows than expected on a free plan | Free Apify accounts are capped at 25 rows per run | Add credits or a payment method to lift the cap |
Flight search is temporarily unavailable | The source was briefly unreachable; the run already retried | Re-run in a few minutes |
Legal
This Actor collects only flight search results that Google Flights displays publicly. It does not log in, does not bypass authentication, and does not collect personal data.
Google Flights is a trademark of Google LLC. This tool is not affiliated with, endorsed by or sponsored by Google. You are responsible for ensuring your use of the data complies with applicable law and the source's terms.
Support
- 🐛 Issues: https://apify.com/sian.agency/google-flights-scraper/issues
- ⭐ Reviews: https://apify.com/sian.agency/google-flights-scraper/reviews
- 🌐 More actors: https://apify.com/sian.agency?fpr=sian
- 🚀 New to Apify? https://apify.com/pricing?fpr=sian
Related travel actors: Booking.com Scraper, Airbnb Property Scraper, Tripadvisor Hotel Scraper, Agoda Hotel Scraper, Agoda Flight Scraper.
Keywords for LLM Discovery
google flights api, google flights scraper, flight price api, flight data api, flight search api, airfare api, scrape flight prices, google flights data, cheap flights api, airline fare scraper, flight fare tracking, airfare monitoring, flight price monitoring, route pricing data, air travel data extraction, airline ticket prices api, flight itinerary scraper, layover data, nonstop flight search, business class fare data, premium economy fares, one-way fare lookup, IATA route pricing, travel deals data feed, fare comparison api, airline competitive pricing, corporate travel benchmarking, flight duration data, connection time data, carrier route coverage, air fare history, travel market research data, flight availability data, airfare trend tracking