Google Flights Scraper — Fares, Itineraries & Cheapest Dates
Pricing
from $0.79 / 1,000 itineraries
Google Flights Scraper — Fares, Itineraries & Cheapest Dates
Google Flights scraper for one-way, round-trip, and multi-city itineraries plus a cheapest-date calendar. Export prices, airlines, stops, times, aircraft, CO2, and booking options as JSON. Call from Python, Node.js, or MCP — a Google Flights API alternative.
Pricing
from $0.79 / 1,000 itineraries
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Share
Unofficial tool for publicly accessible Google Flights search results. Google and Google Flights are trademarks of Google LLC. Not affiliated with, sponsored by, or endorsed by Google. For informational, research, and fare-monitoring use only. Respect applicable terms of use and law.
Google Flights Scraper ◄── you are here
Google Flights scraper for live fares, itineraries, and a cheapest-date calendar. Pull one-way, round-trip, or multi-city results into a JSON dataset: price, airline, stops, times, aircraft, legroom, CO2, price insights, and optional booking options. A practical Google Flights API alternative — scrape with Python, Node.js, cURL, or Apify MCP. No official API key. Export the dataset as JSON, CSV, or Excel from Apify.
Built for fare alerts, OTA comparison, airline pricing snapshots, and AI travel agents.
| Google Flights (fares & dates) | Airbnb (stays occupancy) |
|---|---|
| Google Flights Scraper ◄── you are here | Airbnb Occupancy Scraper |
When to use this Actor
- You need a Google Flights scraper for one-way, round-trip, or multi-city itineraries as JSON
- You want a cheapest-date calendar (lowest fare per departure day) without one search per date
- You monitor a route on a schedule and store price, stops, duration, CO2
- You want a Google Flights API alternative from Python, Node.js, or an MCP / AI assistant
- You compare several origin/destination pairs in one run via batch searches
When not to use this Actor
- Stay occupancy / blocked nights — use Airbnb Occupancy Scraper
- Live checkout, seat maps, or ticket purchase — public shopping results only
- Official airline GDS / NDC contracts (Amadeus, Sabre) — this Actor reads Google Flights, not a CRS
Modes
| Mode | What it does |
|---|---|
search | Itineraries for a date (best + other flights, not just the top few) |
calendar | Lowest price per departure date across a window (one request per ~61 days) |
both | Itineraries for the chosen date and the cheapest-date grid |
Key features
- HTTP only — shopping + calendar endpoints (no browser, no CAPTCHA solver)
- Full result set — Google's best bucket plus the rest of the ranked list
- One-way, round-trip, multi-city — comma-separated metros (
JFK,EWR) supported - Cheapest-date calendar — flag
isCheapeston the low day(s) in the window - Filters — stops, airlines include/exclude, cabin, max price, duration, bags, sort
- Nested JSON — per-segment aircraft, flight number, legroom, layovers, CO2
- Optional booking options — airline/OTA seller, fare name, booking URL
- Price insights — lowest / typical / usual range when Google sends them
- Residential proxy recommended — Google often returns empty lists to datacenter IPs
- MCP / AI ready — call from assistants via Apify MCP
Input
| Parameter | Description |
|---|---|
mode | search / calendar / both |
origin / destination | IATA codes (comma-separated metros ok) |
departDate / returnDate | YYYY-MM-DD; omit return for one-way |
multiCityLegs | ORIGIN-DEST-YYYY-MM-DD rows; overrides the single route |
searches | Extra {origin, destination, departDate, returnDate} objects |
cabinClass / adults / children / infants | Passenger mix |
maxStops / airlines / maxPrice / sortBy | Filters |
calendarDays / calendarFrom / calendarTo | Date grid window |
resolveBookingOptions | Extra request per top itinerary |
maxItems | Cap on itinerary rows (calendar rows follow the date window) |
currency / market / language | curr / gl / hl |
proxyConfiguration | Use Apify Residential (US) |
Example — JFK → LAX one-way
{"mode": "search","origin": "JFK","destination": "LAX","departDate": "2026-09-20","adults": 1,"cabinClass": "economy","maxItems": 50,"currency": "USD","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
Example — cheapest dates, round-trip week
{"mode": "calendar","origin": "LHR","destination": "JFK","departDate": "2026-10-01","calendarDays": 60,"calendarTripDays": 7,"cabinClass": "economy","currency": "GBP","market": "GB"}
Output
One dataset row per itinerary or calendar date. Download as JSON, CSV, or Excel from the run dataset.
| Field | Description |
|---|---|
type | itinerary or calendar_date |
bucket | best or other (search mode) |
price / currency | Displayed fare |
airline / airlineName | Primary carrier |
origin / destination | IATA |
departAt / arriveAt | Local times |
stops / durationMinutes | Routing |
legs | Per-segment aircraft, flight number, legroom, CO2 |
layovers | Wait, overnight, change-of-airport |
co2Grams / emissionsTag | Itinerary carbon vs typical |
priceInsights | Lowest / typical / usual high-low |
bookingToken / bookingOptions | Handoff + optional OTA list |
isCheapest | Calendar row is the low date in the window |
flightsUrl | Google Flights search link |
Example itinerary (abbreviated)
{"type": "itinerary","bucket": "best","price": 178,"currency": "USD","airline": "B6","airlineName": "JetBlue","origin": "JFK","destination": "LAX","departAt": "2026-09-20T12:00","arriveAt": "2026-09-20T18:30","stops": 1,"durationMinutes": 567,"legs": [{"origin": "JFK","destination": "FLL","airline": "B6","flightNumber": "2201","aircraft": "Airbus A321","legroom": "32 inches"}]}
Use cases
| Use case | What you get |
|---|---|
| Fare-alert products | Schedule a route and notify when the cheapest itinerary drops |
| Travel apps / OTAs | Seed a comparison page without an enterprise GDS contract |
| Airline pricing teams | Snapshot competitor fares, stops, cabin mix, and CO2 |
| Cheapest-month content | Calendar grid for “cheapest dates to fly X→Y” |
| AI travel agents | Ranked JSON via Apify MCP for trip-planning prompts |
| Batch route watch | Several origin/destination pairs in one run |
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/google-flights-scraper').call({origin: 'JFK',destination: 'LAX',departDate: '2026-09-20',maxItems: 40,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 5));
Python
from apify_client import ApifyClientclient = ApifyClient(token="YOUR_TOKEN")run = client.actor("crawloop/google-flights-scraper").call(run_input={"origin": "JFK","destination": "LAX","departDate": "2026-09-20","maxItems": 40,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items[:5])
cURL
curl "https://api.apify.com/v2/acts/crawloop~google-flights-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d "{\"origin\":\"JFK\",\"destination\":\"LAX\",\"departDate\":\"2026-09-20\",\"maxItems\":40}"
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store ID / name.
Example prompts:
- "Run Google Flights Scraper for JFK to LAX on 2026-09-20 and return the 20 cheapest itineraries as JSON"
- "Scrape Google Flights calendar for LHR-JFK over the next 60 days and list the cheapest dates"
- "Chain Google Flights Scraper then Airbnb Occupancy Scraper for a long-weekend in Los Angeles"
Suite next step
After you have fares, measure stay occupancy at the destination with Airbnb Occupancy Scraper — listing calendars, occupancy %, and booking pace.
FAQ
Is there an official Google Flights API?
No public one. This Actor is a Google Flights API alternative that reads the same shopping and calendar results the website uses. Call it from Python, Node.js, cURL, or MCP.
Can I scrape Google Flights with Python or Node.js?
Yes. Use the Apify client examples above, or start a run from the Console and download the dataset.
Why residential proxy?
Google often serves empty itinerary lists to datacenter IPs. US residential is on by default.
Does round-trip return a combined outbound+return itinerary?
The first shopping page prices outbound options as round-trips (same as the website). Return-leg expansion per outbound is not a separate row type in this version.
City names or only IATA?
Use IATA / metro codes (JFK, LON, NYC). Comma-separate several airports.
How do I export CSV or Excel?
Every run writes a dataset. In Apify Console, open the dataset and export JSON, CSV, or Excel.
Related Actors
- Airbnb Occupancy Scraper — public availability calendars and occupancy %