# Google Flights Scraper & API ($2.50/1k) ✈️ (`unitbytes/google-flights-scraper`) Actor

⚡ Fast & Cheap ($2.50/1k): Scrape Google Flights fares, airlines, stops, layovers, CO2 emissions & booking URLs. Supports one-way, round-trip, cabin class, nonstop filters & 150+ currencies. CSV/Excel or JSON.

- **URL**: https://apify.com/unitbytes/google-flights-scraper.md
- **Developed by:** [UnitBytes | Enterprise Web Data](https://apify.com/unitbytes) (community)
- **Categories:** Travel, E-commerce, Automation
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 flight scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## ✈️ Google Flights Scraper & Airfare API: Live Fares, Stops, Layovers, CO2 Emissions & Booking Links

<div align="center">

[![Available on Apify](https://img.shields.io/badge/Available_on-Apify-28B52A?style=for-the-badge\&logo=apify\&logoColor=white)](https://apify.com/unitbytes/google-flights-scraper?fpr=939u3w\&fp_sid=gh_gflights)
[![Speed](https://img.shields.io/badge/Speed-Global_Routes_in_Seconds-brightgreen?style=for-the-badge)](#)
[![Fare Monitor](https://img.shields.io/badge/24%2F7_Cron-Airfare_%26_Route_Price_Monitor-critical?style=for-the-badge)](#)
[![Pricing](https://img.shields.io/badge/Price-From_$2.50_%2F_1%2C000_Flights-orange?style=for-the-badge)](#)
[![150+ Currencies](https://img.shields.io/badge/Localization-150%2B_Currencies_%26_Markets-blue?style=for-the-badge)](#)
[![CO2 & Cabin](https://img.shields.io/badge/Telemetry-Aircraft_%7C_Legroom_%7C_CO2-purple?style=for-the-badge)](#)
[![Zero Login](https://img.shields.io/badge/Account_Required-None-blue?style=for-the-badge)](#)

**The fastest and most cost-effective Google Flights scraper & real-time airfare intelligence API for travel platforms, airline revenue teams, corporate travel managers, deal alerts, and AI travel agents. Extract live one-way and round-trip fares, operating carriers, flight numbers, timezone-accurate departure and arrival timestamps, layover durations, aircraft models, seat legroom, carbon emissions (`co2Grams`), route price benchmarks (`low` / `typical` / `high`), and direct Google Flights booking deep links in seconds.**

[**🚀 Try it Live on Apify**](https://apify.com/unitbytes/google-flights-scraper?fpr=939u3w\&fp_sid=gh_gflights) • [**💰 From $2.50 / 1,000 Flights**](#-transparent-pay-per-event-pricing-from-250--1000-flights) • [**🌍 IATA Codes & Metro Cities**](#-key-capabilities) • [**💬 Support**](https://apify.com/unitbytes/google-flights-scraper/issues)

</div>

***

<p align="center">
  <a href="https://apify.com/unitbytes/google-flights-scraper?fpr=939u3w&fp_sid=gh_gflights">
    <img src="https://img.shields.io/badge/Try_It_Free_on_Apify-~990_Flights_Free%2FMo-28B52A?style=for-the-badge&logo=apify&logoColor=white" height="42" alt="Try it for Free on Apify">
  </a>
  <br>
  <sub>⚡ <b>1-Click Free Trial:</b> Extract up to ~990 Google Flights itineraries every month free with Apify's $5 monthly credit (up to ~1,990 per $5 on volume plans) • No credit card required</sub>
</p>

***

### 📖 Overview

**Google Flights** aggregates live schedule, fare, cabin, and sustainability data across hundreds of full-service airlines, low-cost carriers, and online travel agencies worldwide.

Historically, collecting structured airfare data from Google Flights at scale forced teams into painful trade-offs:

- Slow, memory-heavy browser automation scripts (`1–4 GB RAM`) that take 45–120 seconds per route and break whenever UI date pickers change.
- Expensive legacy travel and SERP APIs charging **$15.00 to $30.00 per 1,000 searches** — billing you even when a route has zero nonstop flights.
- Missing sustainability and cabin metadata (`co2Grams`, `emissionsDiffPct`, `aircraft`, `legroom`, and `typicalPriceRange`).

**Google Flights Scraper by UnitBytes** streams clean, structured flight itineraries **in seconds** on a tiny **`256 MB` memory footprint**, starting **from `$2.50` per 1,000 flights (`$0.0025/flight` on Gold+, and `$0.00` on empty routes or duplicates)** — ready for immediate export to JSON, CSV, Excel, Google Sheets, Snowflake, or AI travel assistants.

<table>
  <tr>
    <td colspan="3" style="padding:10px 14px;background:#0284C7;color:#FFFFFF;font-size:13px;font-weight:700;border-radius:6px 6px 0 0">
      ⚡ UnitBytes · Google Travel, Search, Shopping, News, Trends &amp; Local Intelligence Ecosystem
    </td>
  </tr>
  <tr>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FFF4ED;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">✈️ <b><a href="https://apify.com/unitbytes/google-flights-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#C2410C;text-decoration:none;font-size:13px">Google Flights Scraper</a></b></span><br><span style="color:#EA580C;font-size:11px;font-weight:700">📍 You are here (From $2.50/1K)</span><br>
      <span style="color:#64748B;font-size:11px">Live airfares, airlines, stops, layovers, legroom &amp; CO2 data</span>
    </td>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">🏨 <b><a href="https://apify.com/unitbytes/google-hotels-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">Google Hotels Scraper</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">From $2.50/1K • Hotels &amp; OTAs</span><br>
      <span style="color:#64748B;font-size:11px">Nightly/total rates, Booking/Expedia OTA parity, GPS &amp; HD photos</span>
    </td>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">📍 <b><a href="https://apify.com/unitbytes/google-maps-leads-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">Google Maps Suite</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">From $0.20/1K • Local &amp; Reviews</span><br>
      <span style="color:#64748B;font-size:11px"><a href="https://apify.com/unitbytes/google-maps-leads-scraper?fpr=939u3w&fp_sid=ecosystem">B2B Contacts</a>, <a href="https://apify.com/unitbytes/google-maps-reviews-scraper?fpr=939u3w&fp_sid=ecosystem">10K Reviews</a> &amp; <a href="https://apify.com/unitbytes/google-maps-photos-scraper?fpr=939u3w&fp_sid=ecosystem">Venue Photos</a></span>
    </td>
  </tr>
  <tr>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">🛍️ <b><a href="https://apify.com/unitbytes/google-shopping-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">Google Shopping Scraper</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">From $2/1K • Retail Prices</span><br>
      <span style="color:#64748B;font-size:11px">Live product prices, deals, seller offers &amp; store checkout URLs</span>
    </td>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">💼 <b><a href="https://apify.com/unitbytes/google-jobs-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">Google Jobs Scraper</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">From $4/1K • Hiring Signals</span><br>
      <span style="color:#64748B;font-size:11px">Multi-board jobs, parsed salaries, logos &amp; direct ATS links</span>
    </td>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">📰 <b><a href="https://apify.com/unitbytes/google-news-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">Google News &amp; Trends</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">From $0.30–$1/1K • Travel Demand</span><br>
      <span style="color:#64748B;font-size:11px"><a href="https://apify.com/unitbytes/google-news-scraper?fpr=939u3w&fp_sid=ecosystem">News Articles</a> &amp; <a href="https://apify.com/unitbytes/google-trends-scraper?fpr=939u3w&fp_sid=ecosystem">Google Trends</a> destination demand</span>
    </td>
  </tr>
</table>

***

### 🌟 Why Travel Platforms, Analysts & AI Teams Choose UnitBytes

| Capability / Metric | **UnitBytes Google Flights Scraper** | **Traditional Travel / SERP APIs** | **Browser-Based Scrapers** |
| :--- | :---: | :---: | :---: |
| **⚡ Extraction Speed (30 Flights)** | **~2–4 Seconds** | ⚠️ Multi-call polling | ❌ Slow (45–120s browser startup) |
| **💰 Price per 1,000 Flights** | **From $2.50 ($0.0025 / flight)** | $15.00 – $30.00 per 1K searches | $12.00 – $40.00 per 1K + heavy RAM costs |
| **🏙️ IATA Codes + Full City Names** | **✅ `"JFK"` or `"New York"` (auto-covers metro airports)** | ⚠️ Often requires manual airport lookup | ⚠️ Fragile autocomplete clicking |
| **🌱 CO2 & Cabin Comfort Telemetry** | **✅ `co2Grams`, `emissionsDiffPct`, `aircraft`, `legroom`** | ⚠️ Partial or omitted | ❌ Frequently missing |
| **📊 Route Fare Benchmarks** | **✅ `priceLevel` (`low`/`typical`/`high`) + `typicalPriceRange`** | ❌ Rarely included | ❌ Missing |
| **🎯 100% Upstream Filtering & Sorting** | **✅ Cabin, Nonstop/Stops, Passengers, 6 Sort Modes** | ✅ Supported | ❌ Post-fetch local filtering |
| **🛡️ Empty Route & Duplicate Item Fee** | **✅ $0.00 item fee (Zero `flight-scraped` charge on 0 results or duplicates)** | ❌ Charged per API request on 0 results | ❌ Charged for browser compute time |

***

### 💰 Transparent Pay-Per-Event Pricing (From `$2.50 / 1,000 Flights`)

This Actor uses **Pay-Per-Event (PPE)** billing with automatic plan-based volume discounts so you pay strictly for unique flight itineraries delivered to your dataset — never per-item for unserved routes, zero-result dates, or duplicate itineraries.

| Apify Plan Tier | Event Name | Price per Flight | Price per 1,000 Flights | Volume Discount |
| :--- | :--- | :--- | :--- | :--- |
| **Free Plan** (`FREE`) | `flight-scraped` | `$0.0050` | **`$5.00 / 1,000 flights`** | Base rate (**up to ~990 flights/mo free** with `$5` credit) |
| **Starter Plan** (`BRONZE`) | `flight-scraped` | `$0.0035` | **`$3.50 / 1,000 flights`** | **30% OFF** |
| **Scale Plan** (`SILVER`) | `flight-scraped` | `$0.0030` | **`$3.00 / 1,000 flights`** | **40% OFF** |
| **Business & Enterprise** (`GOLD`+) | `flight-scraped` | `$0.0025` | **`$2.50 / 1,000 flights`** | **50% OFF** |
| **Actor Run Start** | `apify-actor-start` | `$0.0050` | `$5.00 / 1,000 runs` | One-time startup event per GB RAM (min. 1 event) |
| **Unserved Routes / Duplicates** | — | **`$0.00 / item`** | **`$0.00 item fee`** | Zero `flight-scraped` charge on 0 results or deduplicated flights |

> 🎁 **Up to ~990 Flights / Month Free on Apify's Free Tier:**
> Every Apify account includes **$5.00 in free monthly platform credits**, covering **up to ~990 unique flight itineraries every month at $0.00 cost** on the Free Plan (or up to **~1,420–1,990 flights** per `$5` on paid plans). You can also set Apify's **Maximum cost per run** cap, and the Actor stops cleanly as soon as your exact budget limit is reached.

***

### ✨ Key Capabilities

- **✈️ Airport IATA Codes & Metro City Names**: Pass 3-letter IATA airport codes (`"JFK"`, `"LAX"`, `"LHR"`, `"DXB"`) or full city names (`"New York"`, `"London"`, `"Tokyo"`, `"Paris"`). Metro city searches automatically cover all commercial airports serving that metropolitan area.
- **🔄 One-Way, Round-Trip & Multi-Route Matrices**: Scrape single routes, multi-origin × multi-destination matrices (`origins × destinations`), or pass direct `https://www.google.com/travel/flights?...` URLs in `urls`.
- **🎯 100% Server-Side Filtering & Ranking**: Filter upstream by cabin class (`economy`, `premium_economy`, `business`, `first`), passenger counts (`adults`, `children`), maximum stops (`nonstop`, `1_stop_or_fewer`, `2_stops_or_fewer`), and ranking order (`best`, `cheapest`, `departure_time`, `arrival_time`, `duration`, `emissions`).
- **🌍 150+ Currencies & Point-of-Sale Markets**: Localize fares across `USD`, `EUR`, `GBP`, `JPY`, `CAD`, `AUD`, `AED`, `SGD`, `CHF`, `INR`, `BRL`, and 140+ additional ISO 4217 currencies (`currency` + `country`).
- **🌱 Sustainability, Aircraft & Price Insights**: Extracts per-itinerary `co2Grams`, `emissionsDiffPct` versus typical route emissions, `aircraft` model, seat pitch (`legroom`), `priceLevel` (`low` / `typical` / `high`), and route-wide `typicalPriceRange`.

***

### 🚨 24/7 Airfare Drop & Route Benchmarking Automation

| Objective | Frequency / Cron | Target Input | Automated Action / Destination |
| :--- | :--- | :--- | :--- |
| **🔥 Transatlantic / Domestic Deal Radar** | Every 6 hours<br>`0 */6 * * *` | `origins: ["JFK", "BOS"]`, `destinations: ["LHR", "CDG"]`, `sortBy: "cheapest"` | Triggers instant **Slack / Telegram / Discord** alert whenever `priceLevel == "low"`. |
| **🏢 Corporate Travel Policy & ESG Audit** | Weekly Monday 06:00 UTC<br>`0 6 * * 1` | Key company corridors, `cabinClass: "business"`, `maxStops: "nonstop"` | Logs `price`, `typicalPriceRange`, and `co2Grams` into **Google Sheets / Snowflake / BigQuery**. |
| **📊 Airline Competitive Corridor Watch** | Daily at 07:00 UTC<br>`0 7 * * *` | Multi-origin × destination matrix across 30/60/90-day advance windows | Feeds dynamic airline/OTA fare dashboards via **Apify Webhook / Make / n8n**. |

***

### 🛠️ How to Use via API (Python, Node.js & cURL)

#### 🐍 Python Example

```bash
pip install apify-client
```

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")

run_input = {
    "origins": ["JFK"],
    "destinations": ["LAX"],
    "departureDate": "2026-12-10",
    "tripType": "one_way",
    "cabinClass": "economy",
    "adults": 1,
    "maxStops": "nonstop",
    "sortBy": "cheapest",
    "currency": "USD",
    "country": "us",
    "language": "en",
    "maxFlights": 25,
}

run = client.actor("unitbytes/google-flights-scraper").call(run_input=run_input)
items = client.dataset(run["defaultDatasetId"]).list_items().items

for f in items[:5]:
    print(
        f"{f['airline']} ({', '.join(f['flightNumbers'])}): "
        f"{f['departureAirport']['code']} -> {f['arrivalAirport']['code']} | "
        f"${f['price']} {f['currency']} ({f['durationMinutes']}m, {f['stops']} stops)"
    )
```

***

#### 🟨 JavaScript / Node.js Example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_API_TOKEN' });

const run = await client.actor('unitbytes/google-flights-scraper').call({
    origins: ['London'],
    destinations: ['Paris', 'Rome'],
    departureDate: '2026-12-15',
    tripType: 'one_way',
    maxStops: 'nonstop',
    currency: 'GBP',
    country: 'gb',
    maxFlights: 30,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} flight offers`, items.slice(0, 3));
```

***

#### 🌐 cURL Example

```bash
curl -X POST "https://api.apify.com/v2/acts/unitbytes~google-flights-scraper/runs?token=YOUR_APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "origins": ["JFK"],
    "destinations": ["LAX"],
    "departureDate": "2026-12-10",
    "maxStops": "nonstop",
    "sortBy": "cheapest",
    "maxFlights": 20
  }'
```

***

### 📤 Example Output Record

```json
{
  "airline": "American",
  "airlineCode": "AA",
  "airlineLogo": "https://www.gstatic.com/flights/airline_logos/70px/AA.png",
  "flightNumbers": ["AA 341"],
  "departureAirport": {
    "code": "JFK",
    "name": "John F. Kennedy International Airport"
  },
  "arrivalAirport": {
    "code": "LAX",
    "name": "Los Angeles International Airport"
  },
  "departureAirportCode": "JFK",
  "arrivalAirportCode": "LAX",
  "departureTime": "2026-12-10T14:59:00-05:00",
  "arrivalTime": "2026-12-10T18:16:00-08:00",
  "durationMinutes": 377,
  "stops": 0,
  "layovers": [],
  "aircraft": "Boeing 787",
  "cabinClass": "economy",
  "legroom": "31 inches",
  "co2Grams": 281000,
  "emissionsDiffPct": -18,
  "price": 164,
  "priceFormatted": "$164",
  "currency": "USD",
  "priceLevel": "typical",
  "typicalPriceRange": [115, 325],
  "isBestFlight": true,
  "tripType": "one_way",
  "returnDate": null,
  "googleFlightsUrl": "https://www.google.com/travel/flights/booking?tfs=CBwQAhoeEgoyMDI2LTEyLTEwagcIARIDSkZLcgcIARIDTEFY...&tfu=CjRI...&curr=USD&hl=en&gl=us"
}
```

***

### ⚙️ Input Parameters Reference

| Field | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `origins` (`from`) | `string[]` | `["JFK"]` | Origin IATA codes (`"JFK"`, `"LHR"`) or city names (`"New York"`, `"London"`). |
| `destinations` (`to`) | `string[]` | `["LAX"]` | Destination IATA codes (`"LAX"`, `"CDG"`) or city names (`"Los Angeles"`, `"Paris"`). |
| `departureDate` | `string` | `+14 days` | Outbound date in `YYYY-MM-DD` format. Defaults to 14 days from current UTC date if omitted. |
| `returnDate` | `string` | `+7 days` | Return date in `YYYY-MM-DD` format when `tripType` is `"round_trip"`. |
| `tripType` | `string` | `"one_way"` | `"one_way"` or `"round_trip"`. |
| `cabinClass` | `string` | `"economy"` | `"economy"`, `"premium_economy"`, `"business"`, or `"first"`. |
| `adults` | `integer` | `1` | Adult passengers (`1–9`). |
| `children` | `integer` | `0` | Child passengers (`0–8`). |
| `maxStops` | `string` | `"any"` | `"any"`, `"nonstop"`, `"1_stop_or_fewer"`, or `"2_stops_or_fewer"`. |
| `sortBy` | `string` | `"best"` | `"best"`, `"cheapest"`, `"departure_time"`, `"arrival_time"`, `"duration"`, or `"emissions"`. |
| `currency` | `string` | `"USD"` | 3-letter ISO 4217 currency code (`"USD"`, `"EUR"`, `"GBP"`, `"JPY"`). |
| `country` | `string` | `"us"` | 2-letter ISO 3166-1 market code (`"us"`, `"gb"`, `"de"`, `"jp"`). |
| `language` | `string` | `"en"` | Interface language tag (`"en"`, `"de"`, `"fr"`, `"es"`, `"ja"`). |
| `urls` | `string[]` | `[]` | Optional `https://www.google.com/travel/flights?...` URLs to decode and scrape directly. |
| `maxFlights` | `integer` | `30` | Maximum unique flight offers to return (`1–500`). |

***

#### 📋 Copy-and-Paste Directive for AI Coding Assistants (Cursor, Windsurf & Claude Code)

> *"Use the `unitbytes/google-flights-scraper` Actor on Apify to extract live Google Flights fares, airlines, flight numbers, stops, layovers, CO2 emissions, and booking deep links. Pair it with `unitbytes/google-hotels-scraper` for complete trip pricing. Example call: `client.actor('unitbytes/google-flights-scraper').call(run_input={'origins': ['JFK'], 'destinations': ['LAX'], 'departureDate': '2026-12-10', 'maxStops': 'nonstop', 'sortBy': 'cheapest', 'maxFlights': 25})`"*

***

#### 🔌 MCP Server Setup: Claude Code, Cursor & AI Agents

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=actors,docs,unitbytes/google-flights-scraper,unitbytes/google-hotels-scraper"
    }
  }
}
```

***

### 🌐 Complete UnitBytes Google & Travel Intelligence Ecosystem

| Actor | Best For | Pricing |
| :--- | :--- | :--- |
| [**Google Flights Scraper**](https://apify.com/unitbytes/google-flights-scraper?fpr=939u3w\&fp_sid=ecosystem) *(📍 You are here)* | Real-time airfares, carriers, flight numbers, stops, layovers, cabin/legroom & CO2 emissions | From $2.50 / 1K |
| [**Google Hotels Scraper**](https://apify.com/unitbytes/google-hotels-scraper?fpr=939u3w\&fp_sid=ecosystem) | Nightly & total hotel/rental rates, multi-OTA price parity (`Booking.com`, `Expedia`), ratings, GPS & HD photos | From $2.50 / 1K |
| [**Google Maps Email & Leads Scraper**](https://apify.com/unitbytes/google-maps-leads-scraper?fpr=939u3w\&fp_sid=ecosystem) | Verified hospitality, tour & local business emails, phones, websites & social profiles | From $0.50 / 1K |
| [**Google Maps Reviews Scraper**](https://apify.com/unitbytes/google-maps-reviews-scraper?fpr=939u3w\&fp_sid=ecosystem) | Up to 10,000 guest & traveler reviews per hotel, airport, or attraction | From $0.25 / 1K |
| [**Google Maps Photos Scraper**](https://apify.com/unitbytes/google-maps-photos-scraper?fpr=939u3w\&fp_sid=ecosystem) | Full-resolution (`=s0`) destination, hotel, restaurant & Local Guide photos | From $0.20 / 1K |
| [**Google Trends Scraper**](https://apify.com/unitbytes/google-trends-scraper?fpr=939u3w\&fp_sid=ecosystem) | Seasonal travel search demand, rising destination queries & regional interest | From $0.30 / 1K |
| [**Google News Scraper**](https://apify.com/unitbytes/google-news-scraper?fpr=939u3w\&fp_sid=ecosystem) | Airline, aviation, weather & tourism news with direct publisher URLs and full text | From $1.00 / 1K |
| [**Google Shopping Scraper**](https://apify.com/unitbytes/google-shopping-scraper?fpr=939u3w\&fp_sid=ecosystem) | Live retail product prices, discounts, multi-seller offers & direct checkout URLs | From $2.00 / 1K |
| [**Google Jobs Scraper**](https://apify.com/unitbytes/google-jobs-scraper?fpr=939u3w\&fp_sid=ecosystem) | Multi-board job listings, parsed salaries, employer logos & direct ATS apply links | From $4.00 / 1K |

***

### 📊 Data Honesty & Known Upstream Scope

- **Live Airline & OTA Inventory**: Airfares and seat availability are dynamic and reflect Google Flights' live inventory for the selected `country` point of sale and `currency`.
- **Multi-Passenger Party Pricing**: When `adults + children > 1`, `price` and `priceFormatted` reflect Google Flights' combined party total across all requested passengers (up to 9 total travelers per query).
- **Advance Schedule Horizon**: Airlines publish schedules roughly 11 months (`335` days) ahead on Google Flights; dates beyond that horizon are rejected during input validation so you never spend credits on unscheduled dates.
- **Mixed-Cabin Connections**: Connecting itineraries combining two cabin classes (for example, a regional Economy feeder leg into a long-haul Business leg) are labeled transparently as `"mixed (economy + business)"`.
- **Unpriced Carrier Listings**: Occasionally, regional carriers publish schedules on Google Flights without instant online fare quotes (`price: null`); these are preserved transparently rather than fabricated.

***

### ⚖️ Compliance & Privacy

This Actor extracts **strictly publicly available airline schedules and airfare quotes** published on Google Flights. It never accesses private traveler accounts, loyalty portals, or personally identifiable information (PII). Read Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) to ensure compliance with applicable laws.

#### Disclaimer

This Actor is an independent software tool and is not affiliated with, endorsed by, or sponsored by Google LLC or any listed airlines or travel agencies.

***

### 💬 Support & Feedback

Need multi-market fare benchmarking advice or found an edge-case route?

- 💬 **Apify Issues**: Open a ticket on the [Actor Issues Tab](https://apify.com/unitbytes/google-flights-scraper/issues)
- 🚀 **Apify Store**: [Google Flights Scraper](https://apify.com/unitbytes/google-flights-scraper?fpr=939u3w\&fp_sid=gh_gflights)

# Actor input Schema

## `origins` (type: `array`):

Origin 3-letter IATA airport codes (e.g. 'JFK', 'LHR', 'DXB') or city names (e.g. 'New York', 'London', 'Tokyo'). Supports multi-origin route batching.

## `destinations` (type: `array`):

Destination 3-letter IATA airport codes (e.g. 'LAX', 'CDG', 'SIN') or city names (e.g. 'Los Angeles', 'Paris', 'Singapore'). Supports multi-destination route batching.

## `from` (type: `string`):

Optional single-string alias for 'origins' (e.g. 'JFK' or 'New York'). Leave blank if 'origins' is filled.

## `to` (type: `string`):

Optional single-string alias for 'destinations' (e.g. 'LAX' or 'Los Angeles'). Leave blank if 'destinations' is filled.

## `departureDate` (type: `string`):

Outbound flight date in YYYY-MM-DD format. If left blank, automatically defaults to 14 days from today (UTC).

## `returnDate` (type: `string`):

Return flight date in YYYY-MM-DD format. Supplying returnDate automatically enables round-trip pricing; if tripType is 'round_trip' and returnDate is omitted, defaults to 7 days after departureDate.

## `tripType` (type: `string`):

Choose between one-way itineraries or round-trip pricing.

## `cabinClass` (type: `string`):

Server-side Google Flights cabin class filter.

## `adults` (type: `integer`):

Number of adult passengers (1 to 9).

## `children` (type: `integer`):

Number of child passengers aged 2–11 (0 to 8).

## `maxStops` (type: `string`):

Server-side stops filter applied directly on Google Flights.

## `sortBy` (type: `string`):

Server-side Google Flights ranking order.

## `currency` (type: `string`):

Three-letter ISO 4217 currency code for airfare pricing (e.g. 'USD', 'EUR', 'GBP', 'JPY', 'CAD', 'AUD', 'AED', 'SGD').

## `country` (type: `string`):

Two-letter country code for point-of-sale market localization (e.g. 'us', 'gb', 'de', 'fr', 'jp', 'ae').

## `language` (type: `string`):

BCP-47 language code for carrier and airport names (e.g. 'en', 'de', 'fr', 'es', 'ja').

## `urls` (type: `array`):

Optional list of direct 'https://www.google.com/travel/flights?tfs=...' or '?q=...' URLs to decode and scrape directly.

## `maxFlights` (type: `integer`):

Maximum number of unique flight offers to extract across all routes.

## `proxyConfiguration` (type: `object`):

Optional Apify Proxy or custom proxy configuration. Defaults to Apify Residential Proxy on Cloud.

## Actor input object example

```json
{
  "origins": [
    "JFK"
  ],
  "destinations": [
    "LAX"
  ],
  "departureDate": "",
  "returnDate": "",
  "tripType": "one_way",
  "cabinClass": "economy",
  "adults": 1,
  "children": 0,
  "maxStops": "any",
  "sortBy": "best",
  "currency": "USD",
  "country": "us",
  "language": "en",
  "maxFlights": 30
}
```

# Actor output Schema

## `results` (type: `string`):

Extracted Google Flights fares, airlines, flight numbers, stops, layovers, aircraft, CO2 emissions, and booking links

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "origins": [
        "JFK"
    ],
    "destinations": [
        "LAX"
    ],
    "departureDate": "",
    "returnDate": "",
    "currency": "USD",
    "country": "us",
    "language": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("unitbytes/google-flights-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "origins": ["JFK"],
    "destinations": ["LAX"],
    "departureDate": "",
    "returnDate": "",
    "currency": "USD",
    "country": "us",
    "language": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("unitbytes/google-flights-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "origins": [
    "JFK"
  ],
  "destinations": [
    "LAX"
  ],
  "departureDate": "",
  "returnDate": "",
  "currency": "USD",
  "country": "us",
  "language": "en"
}' |
apify call unitbytes/google-flights-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,unitbytes/google-flights-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/U3l0gfShLHDrMlh5F/builds/XUigobtKRBq8cVRNe/openapi.json
