Google Flights fare scraper in n8n
Search Google Flights for one-way or round-trip fares across any cabin class, then narrow results by stops, total duration, airline, and price range, with an optional price-alert flag.
What this workflow does
Import it and n8n runs the Google Flights Fare & Itinerary Filter Scraper Actor on Apify every day at 08:00 with the starter input below. Each row comes back with price, currency, airline, departure airport and 8 more. A Google Sheets append is included and stays off until you add your sheet. The only credential it needs is your Apify API token.
Read from the workflow file, built for Google Flights Fare & Itinerary Filter Scraper version 1.1.2. Updated 2026-11-14.How the rows travel
6 nodes, in the order n8n runs them. The yellow stop is the call to the Apify Actor; the dashed stop is optional.
- Daily trigger Schedule trigger
- Configure input Code
- Run Apify Actor HTTP Request
- Normalize + dedupe Code
- Rows ready No operation
- Google Sheets (optional) Google Sheets, off until you switch it on
From the Short
This workflow is the one the video points to: the number in each video opens this page.
Input
The Configure input node holds the starter input. Change it there; every setting the Actor accepts is listed below.
{
"outboundDate": "2026-12-10",
"maxResults": 25,
"includePriceInsights": false,
"priceGraphDays": 1,
"mode": "search"
} | Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| mode | string | Yes | search | Search flights, or collect the cheapest fare for each date around your departure date. One of: search, calendar. |
| originAirport | string | No | JFK | Three-letter IATA airport or city code, e.g. JFK, LHR, NYC. One code per search; use searches for alternate airports. |
| destinationAirport | string | No | LHR | Three-letter IATA airport or city code, e.g. LHR, HND, LON. One code per search; use searches for alternate airports. |
| outboundDate | string | No | – | Departure date in YYYY-MM-DD format. Leave empty to use 30 days from today (UTC); the chosen date is logged. |
| returnDate | string | No | – | Return date in YYYY-MM-DD format. Leave empty for a one-way search. |
| adults | integer | No | 1 | Travellers aged 12 and over (1-9). |
| children | integer | No | 0 | Travellers aged 2-11 (0-8). |
| infants | integer | No | 0 | Infants under 2 travelling on an adult lap (0-8). Cannot exceed the number of adults. |
| infantsInSeat | integer | No | 0 | Infants under 2 travelling in their own seat (0-8). |
| cabinClass | string | No | economy | Cabin to search. One of: economy, premium_economy, business, first. |
| currency | string | No | USD | Currency for every price. 71 choices. |
| language | string | No | en | Language Google Flights uses for airport and airline names. 73 choices. |
| country | string | No | US | Country whose fares and availability Google should show. 186 choices. |
| maxStops | string | No | any | Largest number of stops allowed on any leg. One of: any, nonstop, one_stop, two_or_fewer. |
| airlines | array | No | – | Two-letter IATA airline codes to keep, e.g. ["BA","AA"]. Flights marketed by or codesharing with these airlines are kept. Empty means all airlines. |
| excludeAirlines | array | No | – | Two-letter IATA airline codes to remove, e.g. ["FR"]. |
| minPrice | integer | No | – | Drop fares below this price, in the chosen currency. |
| maxPrice | integer | No | – | Drop fares above this price, in the chosen currency. |
| maxDurationMinutes | integer | No | – | Drop itineraries longer than this, including layovers. |
| departureTimeRange | string | No | any | Only departures in this local-time window. One of: any, 00-06, 06-12, 12-18, 18-24. |
| arrivalTimeRange | string | No | any | Only arrivals in this local-time window. One of: any, 00-06, 06-12, 12-18, 18-24. |
| lessEmissions | boolean | No | false | Keep itineraries Google marks as producing less CO2 than typical for the route. |
| sortBy | string | No | top | How to order the returned flights. One of: top, cheapest, fastest, earliestDeparture, latestDeparture, lowestEmissions. |
| maxResults | integer | No | 61 | Maximum number of flight or calendar rows to return; in calendar mode it also caps the number of days. |
| returnOptionsTop | integer | No | 0 | For round trips, fetch return flights for this many top outbound options. 0 turns this off. |
| returnOptionsPerOutbound | integer | No | 5 | How many return flights to attach to each selected outbound. |
| includePriceInsights | boolean | No | true | Add Google's current, typical and historical price range when available. |
| priceGraphDays | integer | No | 61 | Number of calendar days to return in price-calendar mode (1-61), starting on the departure date; also capped by maxResults. |
| priceAlertThreshold | number | No | – | When set, add a priceBelowThreshold flag to every fare in the chosen currency. |
| searches | array | No | – | Optional list of searches to run in one go. Each item needs originAirport, destinationAirport, outboundDate and an optional returnDate. Up to 20. |
What each row holds
Every field the Actor returns stays in the row (12 in its dataset schema). Normalize + dedupe trims text, drops empty fields and adds _source and _scrapedAt. The main fields:
| Field | What it is |
|---|---|
| price | Price |
| currency | Currency |
| airline | Airline |
| departureAirport | Departure Airport |
| departureTime | Departure Time |
| arrivalAirport | Arrival Airport |
| arrivalTime | Arrival Time |
| durationMinutes | Duration Minutes |
| stops | Stops |
| emissionsGrams | Emissions Grams |
| bookingUrl | Booking Url |
What the first run costs
Each run starts at $0.40 on the Free plan (4 GB of memory), then $0.99 per 1,000 results, plus platform usage.
The Actor lists $0.99 per 1,000 results; its catalogue page breaks the price down by Apify plan. The Apify Free plan includes $5 of usage a month.
The Actor behind it
Google Flights Fare & Itinerary Filter Scraper: Search Google Flights for one-way or round-trip fares across any cabin class, then narrow results by stops, total duration, airline, and price range, with an optional price-alert flag.
The same job from an AI agent
The matching agent skill gives Claude Code, Codex, Cursor and other agents the same Actor, input and fields. Install it in one line:
npx skills add https://scraperfinder.com --skill google-flights-fare-and-itinerary-filter-scraper The google Flights fare scraper skill, with manual install and run steps
Questions people ask
How do I import this workflow into n8n?
Copy https://scraperfinder.com/n8n/google-flights-fare-and-itinerary-filter-scraper.json. In n8n, open a new workflow, click the three-dot menu, choose Import from URL and paste it. Or download the JSON file and use Import from File; both give the same 6 nodes.
Do I need an Apify account?
Yes. The workflow calls the Google Flights Fare & Itinerary Filter Scraper Actor through the Apify API with your own token, and each run is billed to your Apify account. The Free plan includes $5 of usage a month.
What does a run cost?
Each run starts at $0.40 on the Free plan (4 GB of memory), then $0.99 per 1,000 results, plus platform usage. The Actor's Store page shows the current price.
Can I change what it collects?
Yes: edit the input object in the Configure input node. The Actor takes 30 settings; the table on this page lists each one with its default. Raise maxResults once the first rows look right.
Does it work without Google Sheets?
Yes. The rows wait in the Rows ready node, so you can connect any other node there: a database, Airtable, a webhook or an email. The Google Sheets node is only one option.