Google Flights Scraper — Fares, Multi-City & Price Calendar avatar

Google Flights Scraper — Fares, Multi-City & Price Calendar

Pricing

from $10.00 / 1,000 flight searches

Go to Apify Store
Google Flights Scraper — Fares, Multi-City & Price Calendar

Google Flights Scraper — Fares, Multi-City & Price Calendar

Scrape Google Flights fares, schedules, multi-city itineraries and the cheapest-date price calendar. No API key, no headless browser.

Pricing

from $10.00 / 1,000 flight searches

Rating

0.0

(0)

Developer

Mahmudul Hasan

Mahmudul Hasan

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Share

Pull live fares, schedules and cheapest-date data straight from Google Flights. No API key, no Google Cloud project, no headless browser — the Actor talks to Google's own endpoints, so searches are fast and cheap.

What you get

ActionWhat it returns
Flight searchEvery itinerary for a one-way or round-trip route: price, airlines, stop count, full segment list (airports, times, duration, aircraft type) and carbon emissions
Multi-city searchThe same itinerary data across 2+ legs in a single trip
Price calendarThe cheapest fare for every departure date across a range — the Google Flights date grid

Results land in the run's dataset and export to JSON, CSV, Excel, XML or via the API.

Pricing

$0.01 per search. Flat. However many itineraries come back — 3 or 60 — one search is one charge.

You pay forPrice
Flight search (one-way or round-trip)$0.01
Multi-city search$0.02
Price calendar range$0.03
Actor start$0.05 per 1,000 runs

A typical search returns 20–40 itineraries, so this works out to about $0.33 per 1,000 flights — roughly 3× cheaper than per-result flight scrapers on Apify Store, and 20× cheaper than other per-search Actors.

Searches that return nothing are not charged. Set a maximum cost per run in the run options and the Actor stops cleanly the moment it gets there. Platform compute is included — you are never billed separately for usage.

Input

{
"action": "search",
"searches": [
{ "origin": "JFK", "destination": "LAX", "date": "2026-09-10" },
{ "origin": "JFK", "destination": "LHR", "date": "2026-09-10", "returnDate": "2026-09-17" }
],
"seat": "economy",
"adults": 1,
"currency": "USD"
}

Multi-city:

{
"action": "multi_city",
"searches": [
{ "legs": [
{ "origin": "JFK", "destination": "LHR", "date": "2026-09-10" },
{ "origin": "LHR", "destination": "CDG", "date": "2026-09-14" },
{ "origin": "CDG", "destination": "JFK", "date": "2026-09-20" }
] }
]
}

Price calendar:

{
"action": "calendar",
"searches": [
{ "origin": "JFK", "destination": "LAX", "startDate": "2026-09-01", "endDate": "2026-10-31" }
],
"calendarTrip": "one-way"
}
FieldDescription
actionsearch, multi_city or calendar
searchesOne object per search. Batch them — one run with 50 searches beats 50 separate runs.
seateconomy, premium-economy, business or first
adults / children / infantsInSeat / infantsOnLapPassenger counts
maxStopsLeave empty for any. 0 = nonstop only.
currencyISO code for prices, e.g. USD, EUR, GBP
tripDays / calendarTripCalendar options — trip length and one-way vs round-trip
proxyConfigurationOptional. Enable if you run many searches back to back.
requestDelaySecondsPause between Google requests (default 2)

Any of the trip options can be set per search to override the global value.

Output

One dataset item per itinerary:

{
"type": "flight",
"trip": "one-way",
"origin": "JFK",
"destination": "LAX",
"date": "2026-09-10",
"price": 148,
"currency": "USD",
"airlines": ["JetBlue"],
"stops": 0,
"departure": "2026-09-10 08:15",
"arrival": "2026-09-10 11:42",
"duration": 387,
"segments": [
{
"from_airport": { "code": "JFK", "name": "John F. Kennedy International" },
"to_airport": { "code": "LAX", "name": "Los Angeles International" },
"departure": "2026-09-10 08:15",
"arrival": "2026-09-10 11:42",
"duration_minutes": 387,
"plane_type": "Airbus A321"
}
],
"carbon_emissions": { "emission_grams": 428000, "typical_on_route_grams": 455000 },
"google_flights_url": "https://www.google.com/travel/flights?tfs=..."
}

Calendar items are {"type": "calendar_price", "date": ..., "price": ...}. Failed searches are written as {"type": "error", ...} items rather than killing the run, and are not charged.

Common uses

  • Track fares on your routes daily and alert when a price drops
  • Find the cheapest departure date across a whole month before booking
  • Feed live fare data into a travel site, comparison tool or booking assistant
  • Benchmark competitor pricing on the routes you sell
  • Give an AI travel agent real fares (this Actor supports agentic payments via x402 and Skyfire)

Integrations

Run on a schedule, or wire the output to Google Sheets, Airtable, Slack, Make, Zapier, or your own webhook. Everything is reachable through the Apify API and the JavaScript and Python clients.

Notes and limits

  • This is an unofficial scraper. Google occasionally changes its internal response layout; when a parse comes back empty the Actor logs it and moves on rather than failing the run.
  • For round-trip searches Google returns outbound options priced as complete round-trips — the same behaviour as the first step on the Google Flights website.
  • The price calendar uses an undocumented internal endpoint and is marked experimental. It is the most likely of the three actions to drift when Google changes something.
  • Prices are what Google shows for the query as sent; they can move between the search and a booking attempt.
  • Scrape only public data and use the output in line with Google's terms and applicable law.

Support

Found a bug or need a field that is not extracted yet? Open an issue on the Actor's Issues tab.