Google Flights Scraper - Airfare Prices & Price Tracker avatar

Google Flights Scraper - Airfare Prices & Price Tracker

Pricing

from $1.40 / 1,000 results

Go to Apify Store
Google Flights Scraper - Airfare Prices & Price Tracker

Google Flights Scraper - Airfare Prices & Price Tracker

Google Flights scraper for live flight prices: airlines, times, duration, stops, layover airports, aircraft and CO2. One-way or round-trip, scan up to 31 dates for the cheapest day, bulk routes, target-price flags and stable itinerary IDs for fare tracking. No API key.

Pricing

from $1.40 / 1,000 results

Rating

0.0

(0)

Developer

Group Oject

Group Oject

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

Scrape live Google Flights results for any route and date: prices, airlines, departure and arrival times, duration, stops, layover airports, aircraft, and CO2 emissions. Search one-way or round-trip, scan up to 31 departure dates to find the cheapest day, bulk-search up to 100 route/date combinations per run, and flag fares below your target price. No Google API key, no login.

Google Flights Scraper output in Apify: type, rank, from, to, departure date, return date, price

Real output from a default run of Google Flights Scraper in Apify Console.

What can this Google Flights scraper do?

  • Live airfare search - every itinerary Google Flights shows for a route and date, ranked from cheapest.
  • Cheapest-day finder - set a departure date range (up to 31 days) and get each day's fares plus a summary row per day.
  • Bulk routes - add more origin/destination/date combinations in the same run.
  • Round-trip or one-way - add a return date for round-trip pricing.
  • Travelers and cabin - adults, children, infants in seat or on lap; economy, premium economy, business, or first.
  • Filters - direct flights only, maximum stops, airline codes, maximum price.
  • Fare alerts - set a target price and every row gets belowTargetPrice: true/false; each fare also gets a price tier (lowest, good, typical, high) relative to that search.
  • Stable itinerary IDs - itineraryId stays the same when only the price changes, so you can track one flight's fare across scheduled runs.
  • Any currency and language - USD, EUR, GBP, MAD, ... and Google language codes.

What flight data can I extract?

FieldDescription
price, currency, pricePerTravelerTotal fare for all travelers and per-traveler fare
priceTier, belowTargetPrice, rankFare tier within the search, target-price flag, rank by price
airlines, airlineCodeMarketing airline names and code
origin, destination, departureDate, returnDate, tripTypeSearch route
departureAt, arrivalAt, durationMinutesLocal departure and arrival times, total travel time
stops, isDirect, layoverAirportsConnections
segments[]Each leg: from/to airport code and name, times, duration, aircraft
carbonGrams, carbonVsTypicalPercentCO2 estimate and difference vs. typical for the route
cabinClass, adults, children, infantsSearch settings
itineraryIdStable ID for price tracking across runs
googleFlightsUrl, scrapedAtLink to the same search on Google Flights, timestamp

With Include route summary on (default), each search also adds one route_summary row with lowestPrice, medianPrice, averagePrice, directFlightCount, and cheapestDirectPrice.

How much does it cost to scrape Google Flights?

Pay per result row saved: $2.00 per 1,000 rows ($0.002 per flight or summary row), plus an Actor start event of $0.01 per GB of memory (one event at the default 512 MB).

ExampleRowsApprox. price
1 route, 1 date, up to 100 flights + summaryup to 101up to $0.21
1 route, 30-day scan, 20 flights per day + summariesup to 630up to $1.27
1,000 rows1,000$2.01

Lower Maximum flights per search to pay only for the cheapest fares you need. See the Pricing tab for current rates.

How to scrape Google Flights prices

  1. Enter Origin airport and Destination airport as three-letter IATA codes (JFK, LHR, CDG, DXB, CMN).
  2. Enter a future Departure date (YYYY-MM-DD). Add a Return date for round trips.
  3. Optional: set Scan departure dates through to compare every day in a range.
  4. Optional: travelers, cabin, filters, target price, currency.
  5. Click Start and export as JSON, CSV, or Excel.

Input example: cheapest day to fly

{
"origin": "JFK",
"destination": "LAX",
"departureDate": "2026-12-01",
"departureDateEnd": "2026-12-14",
"maxResultsPerSearch": 10,
"currency": "USD"
}

Input example: round trip with filters and a fare alert

{
"origin": "LHR",
"destination": "DXB",
"departureDate": "2026-12-18",
"returnDate": "2027-01-03",
"adults": 2,
"cabinClass": "economy",
"maxStops": 1,
"targetPrice": 900,
"currency": "GBP"
}

Input example: several routes in one run

{
"origin": "CMN",
"destination": "CDG",
"departureDate": "2026-12-20",
"additionalRoutes": [
{ "origin": "CMN", "destination": "MAD", "departureDate": "2026-12-20" },
{ "origin": "RAK", "destination": "LGW", "departureDate": "2026-12-21" }
],
"directOnly": true
}

Output example

{
"recordType": "flight",
"itineraryId": "3f1c2a9b8d7e6f5a4b3c",
"rank": 1,
"price": 129,
"currency": "USD",
"pricePerTraveler": 129,
"priceTier": "lowest",
"belowTargetPrice": null,
"airlines": ["JetBlue"],
"airlineCode": "B6",
"origin": "JFK",
"destination": "LAX",
"departureDate": "2026-12-01",
"returnDate": null,
"departureAt": "2026-12-01T07:00:00",
"arrivalAt": "2026-12-01T10:25:00",
"durationMinutes": 385,
"stops": 0,
"isDirect": true,
"cabinClass": "economy",
"tripType": "one-way",
"segments": [
{
"fromAirport": { "code": "JFK", "name": "John F. Kennedy International Airport" },
"toAirport": { "code": "LAX", "name": "Los Angeles International Airport" },
"departureAt": "2026-12-01T07:00:00",
"arrivalAt": "2026-12-01T10:25:00",
"durationMinutes": 385,
"aircraft": "Airbus A321"
}
],
"layoverAirports": [],
"carbonGrams": 312000,
"carbonVsTypicalPercent": -8.5,
"googleFlightsUrl": "https://www.google.com/travel/flights/search?tfs=...",
"scrapedAt": "2026-10-25T04:13:10.000Z"
}

Illustrative record; prices and schedules change constantly. The run also writes a SUMMARY record with successful and failed searches.

Flight price monitoring

  1. Save your input as a task (one task per route set).
  2. Schedule it, for example daily at 06:00.
  3. Read belowTargetPrice or the route_summary.lowestPrice from each run, and send it to Slack, email, or Google Sheets with an Apify integration or webhook.
  4. Use itineraryId to follow a specific flight's fare over time.

Remember to move the departure date forward when it passes: Google Flights returns no fares for past dates.

Run the Google Flights API via code

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("groupoject/google-flights-price-monitor").call(run_input={
"origin": "JFK", "destination": "LAX", "departureDate": "2026-12-01", "maxResultsPerSearch": 20,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
if row["recordType"] == "flight":
print(row["price"], row["airlines"], row["departureAt"], row["stops"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('groupoject/google-flights-price-monitor').call({
origin: 'LHR', destination: 'JFK', departureDate: '2026-12-10', returnDate: '2026-12-17', targetPrice: 450,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((r) => r.belowTargetPrice));

cURL

curl -X POST "https://api.apify.com/v2/acts/groupoject~google-flights-price-monitor/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"origin":"CDG","destination":"CMN","departureDate":"2026-12-20","maxResultsPerSearch":10}'

Also works with Make, Zapier, n8n, Google Sheets, and AI agents through the Apify MCP server.

FAQ

Do I need a Google Flights API key?

No. Google has no public Flights API; this Actor reads the public Google Flights results.

Are these live prices?

Yes, each row is the fare Google Flights showed at scrapedAt. Always confirm the price with the airline or booking site before buying.

Why did a search return no flights?

Common causes: the departure date is in the past, the airport code is wrong, filters are too strict (direct only, airlines, max price), or Google has no flights for that route and date. Check the SUMMARY record for each search's error.

Can I search by city name or multi-city trips?

Not yet. Use IATA airport codes (LON city codes are not supported; use LHR, LGW, ...). Multi-city itineraries are not supported.

No. googleFlightsUrl opens the same search on Google Flights, where booking options are listed.

Do I need a proxy?

Usually not. For large or very frequent schedules, enable an Apify residential proxy in Proxy configuration.