Google Flights Scraper avatar

Google Flights Scraper

Pricing

$0.35 / 1,000 itineraries

Go to Apify Store
Google Flights Scraper

Google Flights Scraper

Extract Google Flights search URLs into one fare row per itinerary with price, airline, route, times, duration, stops, and CO₂ emissions. Filter by maximum price, stop count, or airline before writing results. Schedule recurring route checks with no login or API key required.

Pricing

$0.35 / 1,000 itineraries

Rating

0.0

(0)

Developer

Nate Schnell

Nate Schnell

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

What does Google Flights Scraper do?

Google Flights Scraper turns saved Google Flights search-result URLs into clean fare rows for travel teams, route analysts, affiliate workflows, and scheduled price checks. Each itinerary is written as one record with its price, airline, airports, dates, times, duration, stops, and carbon estimate, so repeated runs can be compared in an Apify dataset.

What data can you extract from Google Flights?

  • Fare — displayed price and currency from the saved search URL
  • Route — departure airport, arrival airport, outbound date, return date, and trip type
  • Schedule — local departure time, arrival time, total duration in minutes, and stop count
  • Carrier — airline display name and IATA airline code when the page exposes it
  • Environmental signal — Google's carbon-emissions estimate and intermediate stop airports
  • Provenance — the source search URL, stable itinerary ID, and scrape timestamp

The actor reads the result page you created in Google Flights, so the saved URL retains the route, travel dates, cabin, passenger count, market, and language choices that matter to your workflow.

How to use Google Flights Scraper

  1. Open Google Flights and create the exact route and dates you want to monitor.
  2. Copy the browser URL after Google shows the search results.
  3. Open this actor, paste one or more URLs into Google Flights search URLs, and choose a result cap or filters.
  4. Click Run. The actor fetches each saved page and writes matching itinerary rows.
  5. Download JSON, CSV, or Excel from the dataset, or connect the dataset API to your monitoring workflow.

How much does it cost?

The actor uses pay-per-itinerary pricing: a matching itinerary written to the dataset is one billable result. Use the default maximum of 100 rows to validate a URL on the free tier or with your available Apify credits. Filters run before dataset writes, so a maximum fare, stop-count limit, or airline filter can reduce billed results. The initial price is $0.35 per 1,000 itineraries, based on a deployed direct-mode smoke cost of about $0.105 per 1,000.

Input

searchUrls is required. Add one or more saved Google Flights search-result URLs. maxItems caps rows across all URLs; maxPrice, maxStops, and airlines narrow the result set before billing. Set dryRun to true to validate a new URL without writing dataset rows.

{
"searchUrls": [
{
"url": "https://www.google.com/travel/flights/search?tfs=CBwQAhooEgoyMDI2LTEwLTMwagwIAhIIL20vMF9scjFyDAgCEggvbS8wNWpibhooEgoyMDI2LTExLTA1agwIAhIIL20vMDVqYm5yDAgCEggvbS8wX2xyMUABSAFwAYIBCwj___________8BmAEB&tfu=CsABQ2pSSWQzQnFVRkpCUzFCeGMxRkJSV3h0U2xGQ1J5MHRMUzB0TFMwdExYbHBZbXRrTWtGQlFVRkJSM0F5UlVWelJsVXhlVU5CRWtOamFHVmhjR1Z6ZEZKdmRXNWtWSEpwY0MwdmJTOHdYMnh5TVMwdmJTOHdOV3BpYmkxSFUxQXRRazVCTFRBdE1qQXlOaTB4TUMwek1DMHlNREkyTFRFeExUQTFHZ3NJK01NQkVBSWFBMVZUUkRndmNQakRBUT09EgYIABAAGAA&hl=en&gl=us&curr=USD"
}
],
"maxStops": 1,
"airlines": ["WN", "Southwest"],
"maxItems": 20
}

Output

Each output object is one fare option. Prices are numeric, dates use YYYY-MM-DD, and optional source values are null when Google does not expose them.

{
"id": "3326e161-ck1j5c",
"price": 251,
"currency": "USD",
"airline": "Southwest",
"airlineCode": "WN",
"departureAirport": "GSP",
"arrivalAirport": "BNA",
"departureDate": "2026-10-30",
"returnDate": "2026-11-05",
"departureTime": "6:25 AM",
"arrivalTime": "6:40 AM",
"durationMinutes": 75,
"stops": 0,
"stopAirports": [],
"carbonEmissionsKg": 78,
"tripType": "round trip",
"sourceUrl": "https://www.google.com/travel/flights/search?tfs=CBwQAhooEgoyMDI2LTEwLTMwagwIAhIIL20vMF9scjFyDAgCEggvbS8wNWpibhooEgoyMDI2LTExLTA1agwIAhIIL20vMDVqYm5yDAgCEggvbS8wX2xyMUABSAFwAYIBCwj___________8BmAEB&tfu=CsABQ2pSSVFUbFhRMTlzTldGc1lUQkJSSG95TFhkQ1J5MHRMUzB0TFMwdGVXeHZOaTF1TWtGQlFVRkJSM0F5UlMxRlRFWm5jMUZCRWtOamFHVmhjR1Z6ZEZKdmRXNWtWSEpwY0MwdmJTOHdYMnh5TVMwdmJTOHdOV3BpYmkxSFUxQXRRazVCTFRBdE1qQXlOaTB4TUMwek1DMHlNREkyTFRFeExUQTFHZ3NJK01NQkVBSWFBMVZUUkRndmNQakRBUT09EgYIABAAGAA&hl=en&gl=us&curr=USD",
"scrapedAt": "2026-08-07T16:00:00.000Z"
}

Integrations

Use Apify schedules to run the same saved URLs daily or hourly, webhooks to notify a fare-drop service, and the Apify API from Python or Node.js to read the default dataset. The resulting JSON and CSV rows also fit Make, n8n, Zapier, and spreadsheet workflows.

  • Tripadvisor Reviews Scraper — monitor another travel-data source when fare changes are only part of a destination workflow.
  • Full Website Downloader — archive a public page when a scheduled snapshot needs the source document as well as normalized rows.

FAQ

How does Google Flights Scraper work?

It fetches the public search-result page behind each saved Google Flights URL and reads the itinerary rows that Google renders there. No separate account, API key, or browser session is required for the saved URL.

Can I use Google Flights Scraper as an API?

Yes. Start the actor through the Apify API, pass searchUrls in the input JSON, and read the default dataset from the run response or dataset API.

Can I use Google Flights Scraper in Python or Node.js?

Yes. Use the official apify-client package to start a run and download its dataset items.

const run = await client.actor("schnellscrapers/google-flights-price-monitor").call({ searchUrls });
const rows = await client.dataset(run.defaultDatasetId).listItems();

This actor accesses the public search-result pages you provide. You are responsible for deciding how your use of the returned fare data fits your project, agreements, and applicable rules.

Why does the actor ask for a saved search URL?

The URL preserves the route, dates, cabin, passenger count, currency, country, and language settings you selected. It also lets a schedule repeat the same fare check without rebuilding the search each run.

Why did a URL return no rows?

Google can return an empty result page, change the page shape, or vary availability by request location. Check the URL in a browser, run once with dryRun, and review the actor log. Invalid URLs and failed pages are skipped without discarding results from other inputs.

Your feedback

Please report a source-layout change or request a filter through the Issues tab on the actor page. Examples with the saved URL shape and the affected fields make fixes much faster.