Google Flights Scraper avatar

Google Flights Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Google Flights Scraper

Google Flights Scraper

✈️ Google Flights Scraper collects real-time fares, airlines, routes, dates, cabins & layovers from Google Flights. 📊 Export JSON/CSV, schedule jobs & track price changes for travel analytics, deal alerts & market research. 🔧 Ideal for OTAs, analysts, and travel creators.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeBase

ScrapeBase

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Google Flights Scraper

Google Flights Scraper is an Apify actor that automates Google Flights scraping to extract real-time fares, routes, dates, airlines, cabins, and layovers at scale. It solves the manual, time-consuming process of checking prices by collecting live flight results into structured records you can export and analyze. Built for marketers, developers, data analysts, and researchers, this Google Flights API alternative helps you scrape Google Flights efficiently for price tracking, competitive analysis, and travel data pipelines — enabling automation-ready flight intelligence at scale. ✈️📊

What data / output can you get?

Below are real dataset fields pushed by the actor (plus key nested fields inside raw_flight_data):

Data typeDescriptionExample value
is_bestSection flag indicating if the result is in the “Best flights” blocktrue
typeTrip type inferred from the card content"One way"
priceParsed price from the result card349
currencyCurrency applied to the search/results"USD"
duration_minutesTotal duration (minutes) parsed from the result card325
airlineAirline code for the first leg"AA"
departure_airportIATA code of the first leg’s departure airport"LAX"
arrival_airportIATA code of the last leg’s arrival airport"JFK"
raw_flight_data.total_durationTotal duration (minutes) for the itinerary325
raw_flight_data.flights[0].flight_numberAirline and number for a leg"AA 100"
raw_flight_data.flights[0].departure_airport.idLeg departure IATA"LAX"
raw_flight_data.flights[0].arrival_airport.idLeg arrival IATA"JFK"
raw_flight_data.carbon_emissions.this_flightEstimated emissions for the result (grams)120000
raw_flight_data.airline_logoAirline logo URL parsed from the card"https://www.gstatic.com/flights/airline_logos/70px/AA.png"
raw_flight_data.extensionsExtra notes found on the card (e.g., baggage info)["Checked baggage for a fee"]
raw_flight_data.departure_tokenToken derived from the card content"TOKEN_12345678"

Notes:

  • The actor pushes each result into the Apify dataset in real time. You can export to JSON, CSV, or Excel from the dataset.
  • The raw_flight_data field contains a rich nested object with legs, emissions, logos, and more bonus metadata for deeper analytics.

Key features

  • 🚀 Real-time Google Flights scraping without an official API
    Loads live result pages with Playwright and parses flight cards into structured data — a practical Google Flights API alternative.

  • 🧭 Best vs. other flights separation
    Results include an is_best flag so you can distinguish highlights from “Other flights” when you scrape Google Flights.

  • 🌐 Language & country controls
    Configure hl and gl to localize results per region and language — helpful for global Google Flights data extraction.

  • 🔁 Multi-city support
    Provide multi_city_json to query multi-leg itineraries and collect structured legs in raw_flight_data.flights.

  • 🧱 Structured JSON output
    Clean top-level fields for quick filtering plus a rich raw_flight_data object with legs, airline logos, and emissions.

  • 🛡️ Proxy-ready for reliability
    Use proxyConfiguration (including Apify Proxy) for resilient Google Flights scraping without API access.

  • 🖱️ Configurable scroll depth
    Control how many “More flights” loads with max_pages to surface additional results.

  • 🧰 Developer friendly (Python + Apify SDK)
    Built in Python with Apify’s Actor SDK for easy integration, automation, and downstream pipelines.

  • 📅 Automation on Apify
    Schedule runs, track changes over time, and export results to CSV/JSON for dashboards and analytics.

How to use Google Flights Scraper - step by step

  1. Create or log in to your Apify account
    Access your dashboard to run the Google Flights data scraper.

  2. Open the actor in Apify Store
    Search for Google Flights Scraper and click Try for free.

  3. Configure input parameters

    • Set departureIATA (e.g., "LAX") and arrivalIATA as a comma-separated list (e.g., "JFK,BOS").
    • Choose departureDate and (optionally) arrivalDate for round trips.
    • For multi-city trips, provide multi_city_json as a JSON string (see the Input section below).
  4. Localize and budget your search

    • Set currency (e.g., "USD"), hl for language, and gl for country.
    • Adjust max_pages to load more results during scrolling.
  5. (Optional) Configure proxy settings
    Use proxyConfiguration to route via Apify Proxy for higher reliability in Google Flights scraping without API.

  6. Run the actor
    Click Start. The scraper navigates to Google Flights, parses visible result cards, and streams each item to the dataset.

  7. Export results
    Open the Run > Dataset tab and export to JSON, CSV, or Excel. Use the API to integrate with dashboards, databases, or alerting.

Pro Tip: Automate periodic runs on Apify to build a Google Flights price scraper workflow, enabling time-series price tracking, deal alerts, and downstream analytics.

Use cases

Use case nameDescription
OTA pricing intelligenceMonitor fares and competitors’ routes to inform pricing models and inventory decisions.
Travel deal trackingDetect price drops on target routes and feed alerts into newsletters, chats, or apps.
Market research & analyticsAggregate cross-route pricing to analyze volatility and seasonality for travel reports.
Route benchmarkingCompare airlines and durations across similar itineraries to optimize recommendations.
API/data pipeline integrationFeed structured results to ETL jobs, data warehouses, or internal “Google Flights API alternative” endpoints.
Academic researchCollect empirical flight data for studies on emissions, layovers, and airline operations.
Product prototypingPower search results for MVPs and internal tools without relying on a formal Google Flights API.

Why choose Google Flights Scraper?

This production-ready Google Flights scraping solution focuses on accurate parsing, automation, and reliable outputs.

  • 🔎 Accuracy-first parsing of live result cards for clear, structured fields
  • 🌍 Localization via hl and gl for multi-region analyses
  • 📈 Scalable runs with streaming dataset writes and proxy support
  • 🐍 Developer friendly: Python actor leveraging Apify SDK and Playwright
  • 🛡️ Safe & reliable infrastructure vs. flaky browser extensions
  • 🔗 Easy exports (JSON/CSV/Excel) and API access for downstream systems
  • 💡 Ideal Google Flights API alternative when you need programmatic access

In short, it’s a robust Google Flights data scraper designed for teams that value consistency, structure, and automation-readiness.

Yes — when done responsibly. This tool automates the collection of publicly available flight result data.

Guidelines to consider:

  • Only target publicly visible information and respect platform policies.
  • Use proxyConfiguration and rate limits responsibly to avoid overloading services.
  • Ensure compliance with data protection laws (e.g., GDPR, CCPA) and your organization’s policies.
  • Do not replicate branding or misrepresent sources; use the data for analysis, research, or internal tools.
  • When in doubt, consult your legal team for edge cases in your jurisdiction.

Input parameters & output format

Example input (JSON)

{
"departureIATA": "LAX",
"arrivalIATA": "JFK,BOS",
"departureDate": "2026-07-28",
"arrivalDate": "",
"departureDateRng": "",
"arrivalDateRng": "",
"multi_city_json": "",
"adults": 1,
"children": 0,
"infants": 0,
"seatclass": "1",
"stops": "0",
"alliances": "ALL",
"airlines": "ALL",
"maxPrice": 0,
"currency": "USD",
"hl": "en",
"gl": "us",
"max_pages": 1,
"maximum": 20,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Parameters

  • departureIATA (string) — 3-letter IATA code(s) (e.g., LAX, JFK). Multiple codes supported. Default: "LAX". Required: no.
  • arrivalIATA (string) — List of IATA codes separated by commas (supports bulk input). Use 'london' for LHR, LGW, STN, LTN, LCY. Default: "JFK". Required: no.
  • departureDate (string) — Pick your travel date. Pattern: YYYY-MM-DD. Default: "2026-07-28". Required: no.
  • departureDateRng (string) — Optional range for departure (e.g., +1, -1). Default: "". Required: no.
  • arrivalDate (string) — Pick your return date (leave empty for one-way). Pattern optional YYYY-MM-DD. Default: "". Required: no.
  • arrivalDateRng (string) — Optional range for return (e.g., +1, -1). Default: "". Required: no.
  • multi_city_json (string) — JSON string for multi-city trips. Format: [{"departure_id":"...","arrival_id":"...","date":"..."}]. Default: "". Required: no.
  • adults (integer) — Number of adult passengers (12+ years). Default: 1. Min: 1, Max: 9. Required: no.
  • children (integer) — Number of children (2-12 years). Default: 0. Min: 0, Max: 9. Required: no.
  • infants (integer) — Number of infants (under 2 years, on lap). Default: 0. Min: 0, Max: 9. Required: no.
  • seatclass (string) — Choose your comfort level. Enum: "1" (Economy), "2" (Premium Economy), "3" (Business), "4" (First Class). Default: "1". Required: no.
  • stops (string) — Filter by number of layovers. Enum: "0", "1", "2". Default: "0". Required: no.
  • alliances (string) — Filter by (STAR, SKYTEAM, ONEWORLD). Default: "ALL". Required: no.
  • airlines (string) — Comma-separated airline codes (e.g., AA, DL). Default: "ALL". Required: no.
  • maxPrice (integer) — Set a maximum price (0 for no limit). Default: 0. Min: 0. Required: no.
  • currency (string) — Preferred currency (USD, EUR, BDT, etc.). Default: "USD". Min length: 3, Max length: 3. Required: no.
  • hl (string) — Language code for results. Default: "en". Supported options include "en", "es", "fr", "de", and more. Required: no.
  • gl (string) — Country code for results. Default: "us". Supported options include "us", "uk", "ca", "de", and more. Required: no.
  • max_pages (integer) — How many “More flights” buttons to click. Default: 1. Min: 1. Required: no.
  • maximum (integer) — Total number of flights to collect. Default: 20. Min: 1, Max: 100. Required: no.
  • proxyConfiguration (object) — Keep your requests safe and undetected. Editor supports Apify Proxy. Prefill: {"useApifyProxy": false}. Required: no.

Note: While all parameters are optional in the schema, providing accurate IATA codes and dates yields better results.

Example output (JSON)

{
"is_best": true,
"type": "One way",
"price": 349,
"currency": "USD",
"duration_minutes": 325,
"airline": "AA",
"departure_airport": "LAX",
"arrival_airport": "JFK",
"raw_flight_data": {
"flights": [
{
"departure_airport": {
"name": "Los Angeles International",
"id": "LAX",
"time": "2026-07-28 07:00"
},
"arrival_airport": {
"name": "John F. Kennedy International",
"id": "JFK",
"time": "2026-07-28 15:25"
},
"airline": "AA",
"flight_number": "AA 100",
"duration": 0,
"airplane": "Boeing 777",
"airline_logo": "https://www.gstatic.com/flights/airline_logos/70px/AA.png",
"travel_class": "Economy",
"legroom": "31 in",
"extensions": ["Nonstop"]
}
],
"total_duration": 325,
"carbon_emissions": {
"this_flight": 120000,
"typical_for_this_route": 0,
"difference_percent": 0
},
"price": 349,
"type": "One way",
"airline_logo": "https://www.gstatic.com/flights/airline_logos/70px/AA.png",
"extensions": ["Checked baggage for a fee"],
"departure_token": "TOKEN_12345678"
}
}

Field behavior notes:

  • airline, departure_airport, and arrival_airport derive from the first/last leg when available; if a card doesn’t expose expected markers, some fields may be empty.
  • raw_flight_data is a rich object for deeper analysis; nested fields depend on what’s present in the visible card.

FAQ

Is there a Google Flights API I can use instead?

There is no official Google Flights API for public use. This actor serves as a Google Flights API alternative by automating live page parsing and returning structured JSON.

Can I scrape Google Flights without an API?

Yes. This tool performs Google Flights scraping without API access using Playwright to load and parse public result pages.

Is there a Python version?

Yes. This actor is implemented in Python with the Apify SDK and Playwright, making it a natural fit for Google Flights scraper Python workflows.

Can I use Node.js or Selenium with this?

The actor itself runs in Python. However, you can consume the dataset and run results via the Apify API from Node.js or Selenium-based systems if you prefer those stacks.

How many results can I collect?

Results depend on the page and how many times you load more items. Use max_pages to click “More flights” multiple times and surface additional cards.

Does it support multi-city itineraries?

Yes. Provide multi_city_json with an array of legs to query multi-city trips. The output will include parsed legs inside raw_flight_data.flights.

Yes, when done responsibly with publicly available data and compliant practices. Always review applicable laws, terms, and your organization’s policies.

What formats can I export?

All dataset items can be exported from Apify as JSON, CSV, or Excel. You can also access results via the Apify API for integration into apps and pipelines.

Final thoughts

Google Flights Scraper is built to automate reliable, structured Google Flights data extraction at scale. It delivers real-time prices, routes, and rich metadata in clean JSON for analytics, alerts, and product features. Whether you’re a marketer tracking fares, a researcher analyzing trends, or a developer building a Google Flights API alternative, this actor fits seamlessly into your pipeline. Use the Apify API for automation and schedule repeat runs to start extracting smarter, faster flight insights today.