Google Flights Scraper — Real-Time Prices & Itineraries
Pricing
from $1.50 / 1,000 itinerary scrapeds
Google Flights Scraper — Real-Time Prices & Itineraries
Live flight prices, airlines, durations, stops, plane types, departure/arrival times, and carbon emissions from Google Flights. One-way, round-trip, multi-city. Economy through First. Adults, children, infants. 30+ languages. No API key, no quotas. Pay per itinerary scraped.
Pricing
from $1.50 / 1,000 itinerary scrapeds
Rating
0.0
(0)
Developer
Pika Choo
Maintained by CommunityActor stats
1
Bookmarked
13
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Google Flights Scraper — Live Prices & Itineraries, No API Key
Google Flights Scraper pulls live flight prices, airlines, durations, layovers, plane types and carbon emissions straight from Google Flights for $1.50 per 1,000 itineraries. No API key, no quotas, no sales call.
Search any route on any date, in any cabin class, and get clean JSON you can drop into a fare tracker, a travel site, a pricing model or an AI travel agent. Works from the Apify Console, the Apify API, the Python and JavaScript clients, and MCP.
Google does not publish a public Google Flights API. This actor is the practical Google Flights API alternative: it reads the same public search results a traveler sees and returns them as structured data.
Why this actor
- Real-time data. Every run queries Google Flights live, not a cached snapshot.
- No API key. Zero setup, zero quota anxiety, nothing to renew.
- Full itinerary detail. Multi-segment legs, plane types, exact departure and arrival times, carbon emissions.
- All cabins. Economy, premium economy, business, first.
- All trip types. One-way, round-trip, multi-city.
- Pay per itinerary. You only pay for results that land in your dataset.
Who uses this Google Flights scraper
| Buyer | Use case |
|---|---|
| Corporate travel teams | Daily fare monitoring on key routes for policy compliance and budgeting |
| Travel media and bloggers | "Cheapest day to fly" content, price comparison tables, seasonal fare guides |
| AI travel agents | Real-time fare lookup inside chatbots, assistants and agent pipelines via MCP |
| Pricing and revenue analysts | Track airline pricing strategy, seasonality and competitor fares |
| Indie SaaS and deal sites | Power flight-deal alerts without a Skyscanner or Amadeus contract |
| Sustainability researchers | Compare CO2 emissions per itinerary against the typical figure for the route |
What you get
Each dataset row is one itinerary. Fields come straight from the dataset schema:
| Field | Type | Description |
|---|---|---|
from_airport / to_airport | string | IATA codes used in the search |
date / return_date | string | Outbound and return dates (return_date is null for one-way) |
trip / seat / passengers | string / object | Trip type, cabin class and passenger counts echoed from the input |
airline_codes | array | IATA airline codes (e.g. B6, DL, UA) |
airline_names | array | Human-readable airline names |
price | number | Total price in the displayed currency (typically USD) |
stops | integer | Number of layovers (0 = direct) |
duration_min_total | integer | Total trip time in minutes |
departure / arrival | ISO datetime | First-segment departure and last-segment arrival |
segments | array | Per-leg detail: airports (code and name), times, duration, plane type |
carbon_emission_g | number | This itinerary's CO2 emissions in grams |
carbon_typical_on_route_g | number | Typical CO2 for the route, for spotting greener picks |
scraped_at | ISO datetime | UTC timestamp of the scrape |
How to configure a search
You need two things: a departure airport and a destination airport, both as three-letter IATA codes. Everything else has a sensible default.
- Route:
from_airportandto_airport(for exampleJFKandLAX). - Dates:
dateinYYYY-MM-DD. Leave it empty and the actor searches 30 days from today. Addreturn_datefor round trips. - Trip type:
one-way(default),round-tripormulti-city. - Cabin class:
economy(default),premium-economy,businessorfirst. - Passengers:
adults(1 to 9),children(ages 2 to 11),infants_in_seat,infants_on_lap. - Language: two-letter ISO code such as
en,es,fr,de,jaorzh-TW. Airline and airport names come back localized. - Max itineraries:
max_resultsfrom 1 to 200 (default 25). Google Flights typically surfaces 30 to 80 itineraries per query.
Example input
{"from_airport": "JFK","to_airport": "LAX","date": "2026-06-15","trip": "one-way","seat": "economy","adults": 1,"max_results": 50}
Sample output (one itinerary)
{"from_airport": "JFK","to_airport": "LAX","date": "2026-06-15","return_date": null,"trip": "one-way","seat": "economy","passengers": {"adults": 1, "children": 0, "infants_in_seat": 0, "infants_on_lap": 0},"airline_codes": ["B6"],"airline_names": ["JetBlue"],"price": 149,"stops": 0,"duration_min_total": 353,"departure": "2026-06-15T06:00:00","arrival": "2026-06-15T08:53:00","segments": [{"from_airport": {"code": "JFK", "name": "John F. Kennedy International Airport"},"to_airport": {"code": "LAX", "name": "Los Angeles International Airport"},"departure": "2026-06-15T06:00:00","arrival": "2026-06-15T08:53:00","duration_min": 353,"plane_type": "Airbus A320"}],"carbon_emission_g": 407000,"carbon_typical_on_route_g": 363000,"scraped_at": "2026-04-30T10:18:06.919Z"}
Supported features
| Feature | Supported |
|---|---|
| One-way searches | Yes |
| Round-trip searches | Yes |
| Multi-city itineraries | Yes |
| Economy, Premium Economy, Business, First | Yes |
| Adults, children, infants (seat and lap) | Yes |
| 30+ result languages | Yes |
| Carbon emissions data | Yes |
| Plane type per segment | Yes |
| Layover detection | Yes (via stops and segments) |
| Automatic retry when Google throttles | Yes (3 attempts with backoff) |
| Budget cap | Yes (honors the max total charge you set on the run) |
Pricing: how much does it cost to scrape 1,000 flights?
Billing is pay-per-event. The main event is Itinerary Scraped at $0.0015, charged once per itinerary written to your dataset. There is no charge for a run that returns nothing.
Worked example for 1,000 itineraries:
| Item | Quantity | Unit price | Cost |
|---|---|---|---|
| Itinerary Scraped | 1,000 | $0.0015 | $1.50 |
| Dataset item (platform) | 1,000 | $0.00001 | $0.01 |
| Actor start (platform) | 5 runs of 200 | $0.00005 | $0.00025 |
| Total | about $1.51 |
Standard Apify platform usage (compute time) for the run is billed separately at your plan's rate; a typical single-route search finishes in well under a minute. Set Max total charge on the run and the actor stops pushing itineraries once that budget is reached, so a runaway schedule can never surprise you.
For comparison, commercial flight data APIs commonly start at several hundred dollars per month with fixed quotas. Here, 10,000 itineraries a month costs about $15.
Use with AI agents and MCP
The actor is available as a tool on the Apify MCP server, so Claude, ChatGPT, Cursor or any MCP-compatible agent can search flights on demand:
https://mcp.apify.com/?tools=fetch-actor-details,openclawai/google-flights-scraper
Add that URL as an MCP server in your client and the agent can call the scraper with a route, date and cabin class, then reason over the returned itineraries (cheapest, fastest, fewest stops, lowest CO2). Step-by-step setup, prompt examples and agent recipes are in the Datapika guide: datapika.com/actors/google-flights-scraper.
Integrations
- Apify API. Start a run with
POST /v2/acts/openclawai~google-flights-scraper/runsand read results from the run's default dataset as JSON, CSV, Excel, XML or RSS. - Python client.
ApifyClient(token).actor("openclawai/google-flights-scraper").call(run_input={...})then iteratedataset(run["defaultDatasetId"]).iterate_items(). - JavaScript client.
await client.actor("openclawai/google-flights-scraper").call(input)thenclient.dataset(run.defaultDatasetId).listItems(). - Schedules and webhooks. Run the same route every morning from the Apify scheduler and post results to Slack, a Google Sheet, a database or your own endpoint.
- Zapier, Make, n8n. Use the Apify app in each platform to trigger runs and fan out the dataset.
FAQ
Does Google Flights have an official API?
No. Google retired its public QPX Express flights API in 2018 and has not replaced it. Google Flights Scraper fills that gap by reading the public search results page and returning structured JSON, so you get a Google Flights API alternative with no partnership or key.
How much does it cost to scrape 1,000 Google Flights itineraries?
$1.50 for the itineraries plus roughly one cent of platform events, so about $1.51 in total. See the pricing table above for the breakdown.
How many results can I get per run and how fast is it?
Up to 200 itineraries per run (max_results), and Google usually returns 30 to 80 per query. A single-route search typically completes in under a minute, including the automatic retries the actor performs if Google throttles the request.
Is it legal to scrape Google Flights data?
The actor collects only publicly displayed search results, involves no login and no personal data. Scraping public data is generally lawful for research, monitoring and analytics, but you are responsible for complying with the laws in your jurisdiction and with Google's terms of service. Use the data responsibly.
What output formats are available?
Every run writes to an Apify dataset that you can download as JSON, CSV, Excel, XML, HTML table or RSS from the Console, the API or the clients.
How does this compare to Skyscanner, Amadeus or Kiwi APIs?
Those products require a partner agreement or a subscription with monthly quotas, and they return their own inventory rather than what Google Flights shows. This actor reads Google Flights directly, bills per itinerary with no minimum, and includes plane types and carbon data that many commercial APIs omit.
Can I track flight prices over time?
Yes. Put the actor on an Apify schedule (hourly, daily, weekly) for the routes you care about. Each row carries scraped_at, so you can build price history, fare-drop alerts and "best day to book" analysis from the datasets.
Why did a run return zero itineraries?
Usually one of three things: the IATA code is wrong, the date is in the past, or Google Flights temporarily blocked the request. The actor retries three times with backoff before failing with a clear message, and you are never charged for empty runs. Try again in a few minutes or change the route.
Legal and ethics
This actor extracts publicly available data from Google Flights search results. No login, personal data or paid API is involved. Use the data in compliance with applicable laws and Google's terms of service. Intended for research, price monitoring, analytics and travel-product development.