Google Flights Scraper API - Prices, Cheapest Day, Any Route avatar

Google Flights Scraper API - Prices, Cheapest Day, Any Route

Pricing

from $1.00 / 1,000 flights

Go to Apify Store
Google Flights Scraper API - Prices, Cheapest Day, Any Route

Google Flights Scraper API - Prices, Cheapest Day, Any Route

Google Flights prices and schedules as JSON: airlines, flight numbers, times, stops, layovers, aircraft, CO2. Many routes and dates per run to find the cheapest day. One-way or round trip, any cabin, no browser.

Pricing

from $1.00 / 1,000 flights

Rating

0.0

(0)

Developer

TrendPulse Data

TrendPulse Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Share

✈️ Google Flights Scraper & API — prices, schedules and the cheapest day, no browser

Get Google Flights results as clean JSON, CSV or Excel: prices, airlines, flight numbers, departure and arrival times, duration, stops, layovers, aircraft, legroom and CO₂ — for one-way and round trips, any cabin, any currency. Search many routes and dates in one run to find the cheapest day to fly. No headless browser, so a search takes about 2 seconds.

✅ Prices (total for all passengers) in EUR, USD, GBP or any currency ✅ Google's "best flights" flagged, then all other itineraries sorted by price ✅ Every leg: flight number, airline, airports, local times, duration, aircraft, legroom ✅ Stops and layovers (airport and minutes) ✅ CO₂ emissions vs the typical emissions on the route ✅ Many routes × many dates in one run — price calendars and cheapest-day searches ✅ One-way and round trips, adults and children, economy to first class, nonstop filter ✅ A Google Flights link for every search, to open it and book


🚀 Why this Google Flights API is different

This ActorTypical flight scrapers
Price$0.002 per flight$0.015–$0.03 per results page
Speed~2 s per search, no browser20–60 s with headless Chrome
Routes × dates in one runYes (up to 300 searches)One search per run
Flight numbers, aircraft, legroom, CO₂YesPartial
Blocking handlingRetries, new IPs, automatic residential fallbackFails on cloud IPs
Charged for empty searchesNeverOften

💡 Use cases

  • Cheapest day to fly: add 30 departure dates and compare the lowest price per day.
  • Fare tracking & alerts: schedule a daily run on your routes and get notified when prices drop.
  • Travel agencies & startups: power a flight search, a deal newsletter or a "cheap flights from X" page.
  • Corporate travel: compare airlines, durations and CO₂ before booking.
  • Market research: airline competition, nonstop coverage and pricing per route and season.
  • AI travel agents: let Claude or ChatGPT fetch real fares through the Apify MCP server.

🛠️ How to scrape Google Flights (3 steps)

  1. Enter origin and destination codes (LIS, LHR, JFK… or city codes like LON, PAR, NYC).
  2. Add departure dates (and a trip length for round trips), passengers, cabin and stops.
  3. Click Start and download the flights as JSON, CSV, Excel or use the API.

📥 Input example

{
"origins": ["LIS", "OPO"],
"destinations": ["LON", "PAR"],
"departureDates": ["2026-12-10", "2026-12-11", "2026-12-12"],
"tripLengthDays": 7,
"adults": 2,
"cabin": "economy",
"maxStops": "nonstop",
"currency": "EUR",
"maxResultsPerSearch": 10
}

📤 Output example (real search, Lisbon → London, one-way)

{
"origin": "LIS",
"destination": "LHR",
"departureDate": "2026-12-10",
"returnDate": null,
"tripType": "one-way",
"cabin": "economy",
"price": 64,
"currency": "EUR",
"isBest": true,
"airlines": ["Iberia"],
"departureTime": "2026-12-10T06:30",
"arrivalTime": "2026-12-10T17:15",
"durationMinutes": 645,
"stops": 1,
"layovers": [{ "airport": "MAD", "airportName": "Adolfo Suárez Madrid-Barajas Airport", "minutes": 415 }],
"segments": [
{ "flightNumber": "IB540", "airline": "Iberia", "from": "LIS", "to": "MAD", "departure": "2026-12-10T06:30", "arrival": "2026-12-10T08:55", "durationMinutes": 85, "aircraft": "Airbus A321", "legroom": "29 in" }
],
"emissionsKg": 166,
"typicalEmissionsKg": 131,
"googleFlightsUrl": "https://www.google.com/travel/flights/search?tfs=…"
}

The run's RUN_SUMMARY record also lists the cheapest flight of every search — a ready-made price calendar.


⚙️ Input parameters

FieldTypeDefaultDescription
originsarray["LIS"]IATA codes, one per line: LIS, OPO, LHR, or city codes like LON, PAR, NYC. Every origin is searched to every destination.
destinationsarray["LHR"]IATA codes, one per line: LHR, CDG, JFK, or city codes like LON, PAR, NYC.
departureDatesarray—One date per line, YYYY-MM-DD. Add several dates to find the cheapest day. Past dates are skipped; empty = 30 days from today.
tripLengthDaysinteger00 = one-way. Otherwise the return flight is this many days after each departure date.
adultsinteger1Passengers aged 12+. Prices are totals for all passengers.
childreninteger0Passengers aged 2-11.
cabinstring"economy"Travel class. Values: economy, premium-economy, business, first.
maxStopsstring"any"Maximum number of stops. Values: any, nonstop, 1, 2.
currencystring"EUR"ISO currency code: EUR, USD, GBP, BRL…
languagestring"en"Language of airline and airport names, e.g. en, pt, fr, de.
maxResultsPerSearchinteger20Google's best flights come first, then the cheapest. Lower it to control cost.
onlyBestFlightsbooleanfalseKeep only the itineraries Google ranks as best (price, duration and stops balanced).
proxyConfiguration, maxRetriesobject, integerApify Proxy, autoProxy and retries; the defaults work for most runs.

📋 Output fields

FieldTypeDescription
originstringOrigin airport/city code
destinationstringDestination airport/city code
departureDatestringOutbound date
returnDatestringReturn date (round trips)
tripTypestringone-way or round-trip
cabinstringCabin class
priceinteger/numberTotal price for all passengers
currencystringCurrency of the price
isBestbooleanListed by Google among the best flights
airlinesarrayAirlines of the itinerary
departureTimestringLocal departure time
arrivalTimestringLocal arrival time
durationMinutesintegerTotal travel time
stopsintegerNumber of stops
layoversarrayLayover airports and minutes
segmentsarrayFlights: number, airline, airports, times, aircraft, legroom
emissionsKgintegerCO2 emissions per passenger (kg)
typicalEmissionsKgintegerTypical CO2 on this route (kg)
googleFlightsUrlstringOpen the search on Google Flights to book

Export as JSON, CSV, Excel, XML or HTML, or read it through the API.


💰 Pricing — pay per flight returned

What you runFlightsCost (free plan)
1 route, 1 date, top 1010$0.02
1 route, 30 dates, top 5 (cheapest-day search)150$0.30
10 routes daily, top 20200/day$0.40/day

Higher Apify plans pay less: $0.0017 (Bronze), $0.0014 (Silver), $0.001 (Gold and above). Platform usage and proxies are included. Lower maxResultsPerSearch to control cost; searches without flights are never charged.


🔌 API & integrations

Python

from apify_client import ApifyClient # pip install "apify-client>=3"
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("victorrodi/google-flights-scraper-api").call(
run_input={"origins": ["LIS"], "destinations": ["JFK"], "departureDates": ["2026-12-10"], "maxResultsPerSearch": 5}
)
for f in client.dataset(run.default_dataset_id).iterate_items():
print(f["price"], f["currency"], f["airlines"], f["departureTime"], f["stops"])

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('victorrodi/google-flights-scraper-api').call({
origins: ['NYC'], destinations: ['LON'], departureDates: ['2026-12-10'], tripLengthDays: 7,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((f) => `${f.price} ${f.currency} ${f.airlines.join('/')}`));

cURL

curl -X POST "https://api.apify.com/v2/acts/victorrodi~google-flights-scraper-api/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"origins": ["LIS"], "destinations": ["LHR"], "departureDates": ["2026-12-10"], "maxResultsPerSearch": 5}'

Also works with Make, Zapier, n8n, Google Sheets, Slack and MCP / AI agents: "Find the cheapest nonstop flight from Lisbon to Paris next Friday with the Google Flights scraper."


🤖 Use it from AI agents (Claude, ChatGPT, Cursor…)

This Actor is available to AI assistants through the Apify MCP server. Add the server to Claude Desktop, Claude Code, Cursor or any MCP client, then simply ask:

"Find the cheapest nonstop flight from Lisbon to London on December 10 with Google Flights."

"Compare round-trip prices from New York to Paris for each day of the first week of December."

The clean, flat output is designed to be read directly by LLMs.


🛡️ Reliability

  • Requests are paced and retried with a new IP and exponential backoff.
  • If the site keeps blocking, the Actor switches to residential IPs automatically.
  • One failing item never stops the run, and you are never charged for it.
  • Every run writes a RUN_SUMMARY record (results, failures, retries, blocks).
  • Measured on a real run: 8/8 searches answered with 0 blocks.
  • Past departure dates in saved tasks move forward automatically, so schedules never break.

More examples and docs for all our Actors: Vicshock/trendpulse-scrapers.


📌 Tips

  • City codes (LON, PAR, NYC, MIL) search all airports of the city at once.
  • For the cheapest day, add many departureDates and keep maxResultsPerSearch low (1–5), then read RUN_SUMMARY.cheapest.
  • Round-trip prices are totals for both directions; the itinerary shown is the outbound flight.
  • Prices change constantly; schedule the Actor to track them over time.

❓ FAQ

Is there an official Google Flights API? No — Google closed the QPX Express API in 2018. This Actor reads the public Google Flights results.

Can I book through it? It returns the data and a Google Flights link for each search; booking happens on Google Flights or the airline site.

Which currencies and languages? Any currency supported by Google Flights (EUR, USD, GBP, BRL, CHF…) and language for names (en, pt, fr, de…).

Is it legal? The Actor reads publicly displayed flight offers — no personal data. Make sure your use respects Google's terms and the laws that apply to you.

💬 Support

Missing a field or found an issue? Open an issue in the Issues tab — it is answered fast.