# Google Flights Price Tracker: Cheapest Dates & Fares (`precious_bathmat/google-flights-price-tracker`) Actor

Cheapest dates to fly any route from Google Flights: a fare calendar, the cheapest flight and nonstop, fastest option, airline prices, and Google's price level, 60-day history and when to book. One way or round trip, any cabin and currency. No login, no proxy.

- **URL**: https://apify.com/precious\_bathmat/google-flights-price-tracker.md
- **Developed by:** [Mariam Ahmed](https://apify.com/precious_bathmat) (community)
- **Categories:** Travel, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 route reports

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Price Tracker: Cheapest Dates & Fares

Find the **cheapest day to fly** on any route with **Google Flights** data. Give it routes and a date range and get one report per route: a **fare calendar** with the lowest fare of every day, the **cheapest date and flight**, how much it **saves against a typical day**, the **cheapest nonstop**, the **fastest option**, **prices by airline**, the **cheapest day of the week**, and Google's own view: whether **prices are low, typical or high**, the **60-day price history** and **when to book**. One way or round trip, any cabin, up to 9 adults, any currency.

No login, no API key, no proxy.

### What does this Google Flights scraper do?

```
Nairobi → Dubai · one way · 31 dates in November

 cheapest     $214 on Fri 6 Nov    SalamAir, 1 stop
 typical day  $267                 saving  $53
 nonstop      $267                 Air Arabia
 Google says  prices are low       cheapest weekday  Wednesday
```

1. Enter **routes**: airport codes ("JFK to LHR"), city codes ("NYC to LAX") or city names ("Nairobi to London").
2. Choose the **first departure date** and how many **dates to check** (1 to 31), and optionally a **round-trip length**, **cabin**, **adults**, **nonstop only** and **currency**.
3. The Actor searches Google Flights for every date and returns **one report per route**, plus the **cheapest flights of each date** as a CSV.

### Who is it for?

- **Travellers and deal hunters**: see the whole month at once and fly on the cheapest day
- **Travel agents and corporate travel teams**: quote the best dates and airlines for a route
- **Travel bloggers and deal newsletters**: find the cheap days and routes worth writing about
- **Airlines, airports and tourism boards**: watch competitors' fares and nonstop coverage on a route
- **Analysts**: track fares over time on a schedule

### What data do you get?

**One report per route** (the dataset):

| Field | What it tells you |
|---|---|
| `cheapestDate`, `cheapestPrice`, `cheapestFlight` | The cheapest day and the flight: airline, flight numbers, times, duration, stops |
| `typicalLowestFare`, `savingOnCheapestDate`, `mostExpensiveDate` | What a typical day costs, and what the cheapest day saves |
| `fareCalendar` | Every date: weekday, lowest fare and airline, lowest nonstop fare, number of flights |
| `cheapestNonstop`, `fastest`, `nonstopShare` | The best direct option, the quickest trip, and how much of the route is nonstop |
| `airlines` | Each airline's lowest and median fare on the route |
| `cheapestWeekday` | The cheapest day of the week (two weeks of dates or more) |
| `googlePriceLevel`, `bookingTip`, `priceHistory60Days` | Google's verdict (low, typical or high), its advice on when to book, and the route's lowest fare over the last 60 days |
| `fromAirports`, `toAirports`, `cheapestDateUrl` | The airports covered and a Google Flights link for the cheapest date |

**Flights** (`FLIGHTS_CSV`), the cheapest of each date: airline, flight numbers, departure and arrival times, duration, stops and layovers, aircraft, CO2 and how it compares with typical, price, and a link.

### Example: 29 September 2026

**One way, 7 dates from 9 November** (25 searches, 21 seconds):

| Route | Cheapest | On | Typical day | Airline |
|---|---|---|---|---|
| NYC → LAX | **$155** | Wed 11 Nov | $165 | Frontier, 1 stop (nonstop from $169) |
| Nairobi → London | **$303** | Fri 13 Nov | $329 | Gulf Air, 1 stop (nonstop $528, Kenya Airways) |
| Paris → Barcelona | **$24** | Sat 14 Nov | $52 | Ryanair, nonstop |

**A whole month, 31 dates from 1 November** (96 searches, 76 seconds):

| Route | Cheapest | Typical day | Range over the month | Google says |
|---|---|---|---|---|
| Nairobi → Dubai | **$214** on 6 Nov | $267 | $214 - $299 | low |
| Sydney → Melbourne | **$46** on 1 Dec | $62 | $46 - $169 | high |
| JFK → LHR | **$291** on 9 Nov | $293 | $291 - $325 | high |

**Round trip, business class, 2 adults, nonstop only, in euros**: London → New York returning after 7 days cost **€6,546 to €9,469** depending on the departure day, across 14 dates.

### Pricing

**$0.02 per route report** and **$0.001 per flight** saved.

A route checked over 7 dates with the 10 cheapest flights of each date costs **$0.09**; with "Flights to save per date" at 0 it is **$0.02 per route**, however many dates. The month-long run above cost **$0.53** for 3 routes and 465 flights.

### Good to know

- **Prices** are what Google Flights shows for the adults chosen, in the chosen cabin and currency, including taxes and required fees. Bags and seat selection are not included.
- **Round trips**: every date is priced as a return trip coming back after the number of days set; the price is for the whole trip and the flights listed are the outbound options.
- **Cities** cover all their airports (NYC = JFK, Newark and LaGuardia; London = Heathrow, Gatwick, City, Stansted...). Use an airport code to search one airport.
- **Google's price level, history and booking tip** are for the first date searched on each route.
- **Fares change quickly.** Every report has the time it was checked; schedule the Actor to track a route over time.
- **Up to 31 dates per run.** For longer periods, run it again from a later first date.

### Input

| Field | Meaning |
|---|---|
| **Routes** | "FROM to TO", one per line |
| **First departure date** | Empty = three weeks from today |
| **Dates to check** | 1 to 31 |
| **Round trip: return after (days)** | Empty = one way |
| **Cabin** | Economy, premium economy, business, first |
| **Adults** | 1 to 9; prices are for all of them |
| **Nonstop only** | Direct flights only |
| **Currency** | USD, EUR, GBP, KES, INR... |
| **Flights to save per date** | 0 to 100, the cheapest first |

### Integrations

Export to JSON, CSV, Excel or Google Sheets, or connect through the Apify API, webhooks, Make, Zapier and n8n. **Schedule it daily** to watch a route and act when the cheapest date drops.

# Actor input Schema

## `routes` (type: `array`):

One per line, "FROM to TO": airport codes ("JFK to LHR"), city codes ("NYC to LAX") or city names ("Nairobi to London").

## `startDate` (type: `string`):

YYYY-MM-DD. Leave empty to start three weeks from today.

## `days` (type: `integer`):

How many departure dates to compare, from the first date on, 1 to 31. Two weeks or more also give the cheapest day of the week.

## `tripLengthDays` (type: `integer`):

Leave empty for one-way fares. With a number, every date is priced as a round trip returning that many days later.

## `cabin` (type: `string`):

Cabin class for every search.

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

Prices are for all of them together.

## `nonstopOnly` (type: `boolean`):

Only flights without stops, in the report and the flights file.

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

Three-letter code, e.g. USD, EUR, GBP, KES, INR.

## `maxFlightsPerDate` (type: `integer`):

The cheapest flights of each date saved to the flights file, 0 to 100. The report always uses every flight found. Charged per flight.

## Actor input object example

```json
{
  "routes": [
    "NYC to LAX",
    "Nairobi to London"
  ],
  "days": 7,
  "cabin": "economy",
  "adults": 1,
  "nonstopOnly": false,
  "currency": "USD",
  "maxFlightsPerDate": 10
}
```

# Actor output Schema

## `reports` (type: `string`):

Fare calendar, cheapest date and flight, cheapest nonstop, fastest, airlines and Google's price view, per route.

## `flights` (type: `string`):

Airline, flight numbers, times, duration, stops, layovers, aircraft, CO2 and price, per date.

## `summary` (type: `string`):

Source, problems and the limits of the data.

# 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 = {
    "routes": [
        "NYC to LAX",
        "Nairobi to London"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("precious_bathmat/google-flights-price-tracker").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 = { "routes": [
        "NYC to LAX",
        "Nairobi to London",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("precious_bathmat/google-flights-price-tracker").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 '{
  "routes": [
    "NYC to LAX",
    "Nairobi to London"
  ]
}' |
apify call precious_bathmat/google-flights-price-tracker --silent --output-dataset

```

## MCP server setup

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

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/eQhX0TDl7N0Vx84Bh/builds/puM6lYaAKbwSDIteg/openapi.json
