Google Flights Scraper & API: Google Flights Prices & Routes avatar

Google Flights Scraper & API: Google Flights Prices & Routes

Pricing

from $1.20 / 1,000 flight itineraries

Go to Apify Store
Google Flights Scraper & API: Google Flights Prices & Routes

Google Flights Scraper & API: Google Flights Prices & Routes

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.20 / 1,000 flight itineraries

Rating

0.0

(0)

Developer

Pika Choo

Pika Choo

Maintained by Community

Actor stats

1

Bookmarked

23

Total users

0

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

Google Flights Scraper API — Real-Time Prices & Itineraries

Google Flights API and scraper for live flight prices: airlines, durations, layovers, plane types and carbon emissions straight from Google Flights for $1.50 per 1,000 itineraries ($1.35 on the Scale plan, $1.20 on Business and up). 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.
  • Trip types. One-way and round-trip; multi-city searches the leg you enter (run one search per leg).
  • Pay per itinerary. You only pay for results that land in your dataset.

Who uses this Google Flights scraper

BuyerUse case
Corporate travel teamsDaily 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 agentsReal-time fare lookup inside chatbots, assistants and agent pipelines via MCP
Pricing and revenue analystsTrack airline pricing strategy, seasonality and competitor fares
Indie SaaS and deal sitesPower flight-deal alerts without a Skyscanner or Amadeus contract
Sustainability researchersCompare 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:

FieldTypeDescription
from_airport / to_airportstringIATA codes used in the search
date / return_datestringOutbound and return dates (return_date is null for one-way)
trip / seat / passengersstring / objectTrip type, cabin class and passenger counts echoed from the input
airline_codesarrayIATA airline codes (e.g. B6, DL, UA)
airline_namesarrayHuman-readable airline names
pricenumberTotal price in the displayed currency (typically USD)
stopsintegerNumber of layovers (0 = direct)
duration_min_totalintegerTotal trip time in minutes
departure / arrivalISO datetimeFirst-segment departure and last-segment arrival
segmentsarrayPer-leg detail: airports (code and name), times, duration, plane type
carbon_emission_gnumberThis itinerary's CO2 emissions in grams
carbon_typical_on_route_gnumberTypical CO2 for the route, for spotting greener picks
scraped_atISO datetimeUTC timestamp of the scrape

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_airport and to_airport (for example JFK and LAX).
  • Dates: date in YYYY-MM-DD. Leave it empty and the actor searches 30 days from today. Add return_date for round trips.
  • Trip type: one-way (default), round-trip or multi-city (searches the leg you enter).
  • Cabin class: economy (default), premium-economy, business or first.
  • 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, ja or zh-TW. Airline and airport names come back localized.
  • Max itineraries: max_results from 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

FeatureSupported
One-way searchesYes
Round-trip searchesYes
Multi-city itinerariesOne leg per search
Economy, Premium Economy, Business, FirstYes
Adults, children, infants (seat and lap)Yes
30+ result languagesYes
Carbon emissions dataYes
Plane type per segmentYes
Layover detectionYes (via stops and segments)
Automatic retry when Google throttlesYes (3 attempts with backoff)
Clear message for impossible searchesYes (past date, unknown airport, too many passengers)
Budget capYes (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 Flight itinerary at $0.0015 ($0.00135 on the Scale plan, $0.0012 on Business and up), charged once per itinerary written to your dataset. There is no charge for a run that returns nothing.

Worked example for 1,000 itineraries on the Free and Starter plans:

ItemQuantityUnit priceCost
Flight itinerary1,000$0.0015$1.50
Dataset item (platform)1,000$0.00001$0.01
Actor start (platform)5 runs of 200, 2 GB each$0.00005 per GB$0.0005
Totalabout $1.51

On the Scale plan the same 1,000 itineraries cost $1.35, and on Business and higher plans $1.20, plus the same cent of platform events.

Platform usage (compute time) is included: you pay only the events above. A typical single-route search finishes in about 5 to 10 seconds. 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 ($12 on Business plans).

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/runs and 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 iterate dataset(run["defaultDatasetId"]).iterate_items().
  • JavaScript client. await client.actor("openclawai/google-flights-scraper").call(input) then client.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 on the Free and Starter plans ($1.35 on Scale, $1.20 on Business and up), plus roughly one cent of platform events, so about $1.51 in total at the list price. 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 25 to 80 per query. A single-route search typically completes in 5 to 10 seconds (measured October 28, 2026: 25 itineraries in 5 seconds), plus the automatic retries the actor performs if Google throttles the request.

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 the IATA code is wrong, the date is in the past or too far ahead, or the passenger mix is impossible (more than 9 people, or more lap infants than adults). The run then ends with a status message that names the problem, and you are never charged for empty runs. If Google Flights temporarily throttles the request, the actor retries three times with backoff before reporting it.

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.