Google Flights Scraper avatar

Google Flights Scraper

Pricing

from $1.99 / 1,000 search results

Go to Apify Store
Google Flights Scraper

Google Flights Scraper

Scrapes Google Flights for any origin/destination. Extracts airline, flight numbers, airports, departure/arrival times, duration, stops, price, cabin class, booking site, emissions, aircraft, and more.

Pricing

from $1.99 / 1,000 search results

Rating

0.0

(0)

Developer

Search API

Search API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Search the interactive Google Flights website by airport, date, trip type, passenger count, cabin, country, and language. The Actor maps only source-backed itinerary-card data and never invents booking details that Google does not expose.

Input modes

  • single: use the top-level route fields.
  • batch: provide up to 20 objects in searches; maxItems is allocated fairly across routes and requests run with bounded concurrency.

Each search accepts departure, arrival, departureDate, optional returnDate, tripType, passengers, and cabinClass. Global controls include gl, English hl locales, maxItems, maxConcurrency, bounded retries/timeouts, debug logging, and Apify/custom proxy configuration.

GOOGLE_SERP is intentionally rejected. It is an HTTP search-results transport, while Google Flights is an interactive JavaScript application. Direct access is the verified default; Apify Residential or user-provided proxies can be selected when needed.

Dataset

The typed 65-field contract includes:

  • Stable identity, global/route positions, Google flight ID, and flight number.
  • Airline name/code/logo and origin/destination codes and airport names.
  • Departure/arrival labels and times, duration, stops, stop airports, and layover labels.
  • Displayed and numeric price, currency, baggage allowance, and emissions.
  • Cabin, passengers, trip type, requested dates, locale, source URLs, and consistent search metadata.

Optional fields are omitted when the current card does not expose them. Nulls, empty strings/arrays, embedded data URLs, challenge pages, secrets, and fabricated records are not stored. Results are deduplicated by a stable SHA-256 identity and pushed in deterministic route/card order.

Reliability

  • Validates calendar dates, round-trip chronology, IATA codes, filters, limits, locale, and proxy compatibility.
  • Validates HTTP status and HTML content type before parsing.
  • Detects CAPTCHA/challenge pages, marks the session bad, and fails closed after bounded retries.
  • Uses persistent per-session cookies and one internally consistent desktop Chrome fingerprint per session.
  • Blocks image, media, and font downloads without blocking scripts, styles, or flight-card completeness.
  • Expands Google's View more flights control only when the requested per-route quota exceeds the cards already loaded.
  • Distinguishes explicit no-results pages from selector drift.

Local verification

npm ci
npm test
apify validate-schema
npm audit --omit=dev
apify run --purge --input-file INPUT.json
node test/audit-dataset.js --expected=20

Representative fixtures under qa-inputs cover minimal, batch/round-trip, invalid, no-results, direct, and Residential-proxy runs.