Google Flights Scraper — Fares, Routes, Booking Links avatar

Google Flights Scraper — Fares, Routes, Booking Links

Pricing

from $3.00 / 1,000 flight itinerary returneds

Go to Apify Store
Google Flights Scraper — Fares, Routes, Booking Links

Google Flights Scraper — Fares, Routes, Booking Links

Scrape Google Flights for one-way and round-trip itineraries. Prices, airlines, stops, layovers, aircraft, carbon emissions, and direct booking deeplinks. MCP-ready.

Pricing

from $3.00 / 1,000 flight itinerary returneds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

2

Monthly active users

2 days ago

Last modified

Share

Google Flights Scraper is an Apify Actor for travel apps, automation workflows, and AI agents that need Google Flights itineraries from a single search request. It accepts origin and destination airport codes, a departure date, and optional trip, passenger, market, and result-limit settings. Each dataset record represents one flight itinerary and can include price, airlines, stops, total duration, carbon estimates, booking URLs, and the Google Flights search URL. This Actor is usable through Apify MCP. This Actor is designed as a focused workflow.

Best fit and connected workflows

This Actor fits workflows that start with a route and date, then need structured flight options for comparison, routing, or downstream automation.

Common ways to use it:

  • Fare tracking for a specific origin-destination pair
  • Travel planning that combines flight options with lodging or local events
  • Agent workflows that need one record per itinerary and a direct booking deeplink
  • Market-specific searches where country, currency, and language shape the returned Google Flights view
  • Round-trip or one-way searches with passenger counts and cabin filters

If your workflow later expands into destination research, accommodation search, or itinerary enrichment, this Actor can sit at the flight-search step and feed the next stage with structured itinerary rows.

Practical scenario

Priya is planning a business trip from LAX to JFK. She starts with the airport codes, a future departure date, one adult passenger, and economy cabin. The dataset returns itineraries with price, airlines, stops, totalDurationMinutes, carbonKg, isBestFlight, and bookingUrl. Priya compares the duration and stops, then opens the direct booking link for the itinerary that fits her schedule.

Input

The Actor accepts these fields from the live schema. Required fields are origin, destination, and departureDate.

FieldTypeRequiredPurpose
originstringYesOrigin airport IATA code, 3 uppercase letters
destinationstringYesDestination airport IATA code, 3 uppercase letters
departureDatestringYesOutbound date in YYYY-MM-DD format
returnDatestringNoReturn date in YYYY-MM-DD format for round trips
adultsintegerNoAdult passengers, default 1
childrenintegerNoChild passengers, default 0
infantsInSeatintegerNoInfants with their own seat, default 0
infantsOnLapintegerNoLap-held infants, default 0
cabinClassstringNoeconomy, premium_economy, business, or first
maxStopsintegerNoMaximum stops, from 0 to 2
currencystringNoISO 4217 currency code
countrystringNoGoogle search market, such as us or uk
languagestringNoResponse language code
maxResultsintegerNoMaximum itineraries per run, up to 200

Focused JSON example:

{
"origin": "LAX",
"destination": "JFK",
"departureDate": "2026-08-15",
"returnDate": "2026-08-22",
"adults": 1,
"children": 0,
"infantsInSeat": 0,
"infantsOnLap": 0,
"cabinClass": "economy",
"maxStops": 1,
"currency": "USD",
"country": "us",
"language": "en",
"maxResults": 30
}

Output

Each dataset row is one flight itinerary returned by Google Flights.

FieldTypeMeaning
searchIdstringStable hash of the search inputs
tripTypestringone_way or round_trip
originstringOrigin IATA code
destinationstringDestination IATA code
departureDatestringOutbound date
returnDatestring or nullReturn date, or null on one-way searches
pricenumber or nullTotal trip price for the selected passengers
currencystringCurrency code for price
isBestFlightbooleanTrue when Google places the itinerary in the suitable Flights section
cabinClassstringCabin searched
totalDurationMinutesnumber or nullTotal trip duration including layovers
stopsnumberTotal stops across the itinerary
airlinesarray of stringDistinct airline names across all legs
outboundobjectOutbound leg details
returnobject or nullReturn leg details, or null on one-way searches
carbonKgnumber or nullEstimated CO2 emissions per passenger
carbonVsTypicalstring or nullEmissions relative to a typical flight on the route
bookingUrlstring or nullDirect Google Flights URL for the itinerary
googleFlightsUrlstringGoogle Flights search URL for the result set
scrapedAtstringISO 8601 timestamp of the scrape

Illustrative JSON record:

{
"searchId": "a1b2c3d4e5f6",
"tripType": "round_trip",
"origin": "LAX",
"destination": "JFK",
"departureDate": "2026-08-15",
"returnDate": "2026-08-22",
"price": 487,
"currency": "USD",
"isBestFlight": true,
"cabinClass": "economy",
"totalDurationMinutes": 720,
"stops": 0,
"airlines": ["Delta"],
"outbound": {
"origin": "LAX",
"destination": "JFK"
},
"return": {
"origin": "JFK",
"destination": "LAX"
},
"carbonKg": 412,
"carbonVsTypical": null,
"bookingUrl": null,
"googleFlightsUrl": "https://www.google.com/travel/flights/search?tfs=...",
"scrapedAt": "2026-05-16T18:00:00.000Z"
}

How it works

This Actor uses a SerpAPI backend to fetch Google Flights search results. The live contract shows a pure HTTP implementation with Node 24 and the Apify SDK, 512 MB default memory, and no browser stack. The actor writes flight itineraries to the default dataset and exposes dataset and CSV links in its output schema. The pay-per-event contract includes actor start, search completed, and flight itinerary returned events.

Pricing

This Actor uses Pay per event pricing plus Apify platform usage. Open the live Pricing tab on the Actor page for the current pricing view.

The live contract defines these chargeable events:

  • Actor Start
  • Search completed
  • Flight itinerary returned

For planning, think in terms of search volume and itinerary count. For example, a run that returns ten itineraries is billed for one search completed event and ten flight itinerary returned events, plus the actor start event. That makes the cost shape easy to estimate from the number of itineraries you expect to save.

Use with AI agents (MCP)

This Actor is available as an Apify Actor through Apify MCP, so an agent can pass structured flight-search inputs and read structured itinerary records from the dataset.

Tool description:

  • Search Google Flights for one-way and round-trip itineraries and return structured fare, route, booking, and emissions fields.

Tool identity:

  • khadinakbar/google-flights-scraper

Typical agent prompt:

Search Google Flights itineraries from LAX to JFK for a future departure date, returning economy results for one adult. Include price, airlines, stops, duration, carbon estimate, booking URL, and the full Google Flights search URL.

How to interpret the output:

  • searchId groups records from the same input combination.
  • tripType indicates whether the search is one-way or round-trip.
  • isBestFlight marks itineraries Google places in the suitable Flights section.
  • bookingUrl is the direct itinerary link when present.
  • googleFlightsUrl is the search-level link for the full result set.
  • outbound and return hold the leg-level structure for one-way and round-trip searches.
  • scrapedAt is the provenance timestamp for the record.

Scope and provenance guidance:

  • The Actor returns Google Flights itinerary data for the input route, date, passengers, cabin, market, and language settings.
  • Each dataset row corresponds to one itinerary saved from that search.
  • Result volume and cost both scale with the number of itineraries saved to the dataset.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/google-flights-scraper').call({
origin: 'LAX',
destination: 'JFK',
departureDate: '2026-08-15',
returnDate: '2026-08-22',
adults: 1,
cabinClass: 'economy',
currency: 'USD',
country: 'us',
language: 'en',
maxResults: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems({ clean: true });
console.log(items);

Best results and outcome guidance

For the most focused searches, start with exact airport codes, a future departureDate, and the smallest maxResults that still covers the itineraries you need. Use country to select the Google search market and currency to control the displayed fare currency. Set maxStops when you want to narrow the returned itineraries by connection count. For round trips, keep returnDate on or after departureDate.

Continue the workflow

  • Then use Hotels.com Scraper to extend Google Flights Scraper — Fares, Routes, Booking Links with a neighboring travel and hospitality research source when the brief calls for Hotels data.
  • Then use Expedia Hotels Scraper — Prices, Ratings & Reviews to extend Google Flights Scraper — Fares, Routes, Booking Links with a neighboring travel and hospitality research source when the brief calls for Expedia data.

Design note

I found that the dataset contract always includes bookingUrl and googleFlightsUrl, while bookingUrl can be null and googleFlightsUrl stays present for every record. That makes the search-level link a consistent fallback for downstream workflows.

FAQ

When should I use origin and destination as airports instead of cities?

Use airport IATA codes because the input schema is defined around 3-letter airport codes. For multi-airport cities, choose the specific airport you want returned.

How do I route one-way and round-trip searches?

Leave returnDate empty for one-way searches. Provide a return date for round trips.

What tells me which itinerary Google highlights first?

Check isBestFlight. It marks itineraries Google places in the suitable Flights section.

How should I use country and currency together?

Use country for Google's search market and currency for the displayed fare currency. They serve different parts of the search request.

What should I read first when I only need one decision field?

Start with price, stops, totalDurationMinutes, airlines, and bookingUrl. Those fields support quick itinerary comparison and follow-up booking.

Responsible use

Use this Actor in ways that fit your organization's policies, Google Flights terms, and applicable law. Keep requests scoped to the routes, dates, and passenger counts you need, and review the returned itinerary data before using it in automated decision-making or customer-facing flows.