# Flight Fare Scanner — Google Flights Prices (`sleekly_featherstar/flight-fare-scanner`) Actor

Search real-time flight prices from Google Flights. Find cheapest travel dates, discover nonstop destinations from any airport, and compare fares across airlines. No API key required.

- **URL**: https://apify.com/sleekly\_featherstar/flight-fare-scanner.md
- **Developed by:** [Grant](https://apify.com/sleekly_featherstar) (community)
- **Categories:** E-commerce, Travel, Other
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 flight searches

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

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

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Flight Fare Scanner — Google Flights Prices, Routes & Destinations

Search real-time flight prices from **Google Flights** and discover nonstop routes from **Kayak**. Get structured fare data for any airport pair, find the cheapest dates in a travel window, or explore all nonstop destinations from an origin airport. No API key required.

**Flight data** powers travel research, price monitoring, trip planning, booking automation, and travel intelligence. This Actor makes it accessible as structured JSON/CSV data.

### Why scrape flight prices?

Flight prices are volatile and opaque. Airlines and OTAs don't make it easy to compare systematically.

- **Monitor price drops** on specific routes over time
- **Find the cheapest travel dates** in a month-long window
- **Research destinations** reachable nonstop from your airport
- **Build travel dashboards** with real-time fare data
- **Feed price prediction models** with historical search data
- **Compare airlines** on price, duration, and stops

### What you can extract

#### Flights mode (specific dates)

| Data Field | Description |
|---|---|
| Airline & Flight # | e.g. "Delta DL1234" |
| Departure/Arrival airports | IATA codes + full airport names |
| Departure/Arrival times | Local time at each airport |
| Duration | Total travel time (e.g. "6h 12m") |
| Stops | Number of layovers (0 = nonstop) |
| Price | Fare in your chosen currency |
| Aircraft type | e.g. "Boeing 737", "Airbus A321" |
| Amenities | WiFi, in-seat USB, power outlets |
| Booking URL | One-click link to book on the airline's site |
| Google Flights URL | View the same search on Google Flights |

#### Dates mode (cheapest in window)

| Data Field | Description |
|---|---|
| Departure date | Date with the lowest fare |
| Price | Cheapest fare found for that date |
| Currency | Price currency |

#### Explore mode (nonstop destinations)

| Data Field | Description |
|---|---|
| Destination airport | IATA code + city name |
| Country | Country code |
| Distance | Miles between airports |
| Duration | Typical flight time |
| Airlines | Airlines operating the route |
| Flights per day | How many daily flights exist |

### Input options

| Input | Type | Default | Description |
|---|---|---|---|
| Query Type | Select | Flights | Flights (specific dates), Dates (cheapest window), or Explore (destinations) |
| Origin | Text | — | IATA airport code (e.g. JFK, LAX, LHR) |
| Destination | Text | — | IATA airport code (required for Flights/Dates) |
| Departure Date | Text | — | YYYY-MM-DD (required for Flights mode) |
| Return Date | Text | — | YYYY-MM-DD for round trips (optional) |
| Date From | Text | — | Start of travel window (Dates mode) |
| Date To | Text | — | End of travel window (Dates mode) |
| Max Results | Integer | 25 | Maximum results to return (1–200) |
| Max Stops | Integer | Any | 0 = nonstop only, 1 = max 1 stop, etc. |
| Currency | Text | USD | ISO 4217 currency code (USD, EUR, GBP, etc.) |
| Sort By | Select | Price | Sort by price, duration, or stops |

### Quick start

1. Enter an **origin airport** (e.g. `JFK`)
2. Select **Query Type** (start with "Flights" for specific dates)
3. Enter a **destination** (e.g. `LAX`)
4. Set a **departure date**
5. **Run** the Actor
6. Download the results as **JSON, CSV, or Excel**

For destination discovery, select **"Explore"** mode and just enter an origin airport — it'll return all nonstop destinations.

### Example output

#### Flights mode

```json
[
  {
    "price": 234,
    "currency": "USD",
    "totalDuration": "5h 55m",
    "totalDurationMinutes": 355,
    "stops": 1,
    "bookingUrl": "https://www.aa.com/booking/...",
    "googleFlightsUrl": "https://www.google.com/travel/flights/...",
    "legs": [
      {
        "departureAirport": "JFK",
        "departureAirportName": "John F. Kennedy International Airport",
        "arrivalAirport": "PHX",
        "arrivalAirportName": "Phoenix Sky Harbor International Airport",
        "departureTime": "2026-08-15T10:00:00",
        "arrivalTime": "2026-08-15T12:21:00",
        "duration": "5h 21m",
        "airline": "American",
        "flightNumber": "AA557",
        "aircraftType": "Airbus A321",
        "amenities": ["wifi", "in-seat-usb"]
      }
    ]
  }
]
````

#### Explore mode

```json
[
  {
    "destinationCode": "LAX",
    "destinationName": "Los Angeles",
    "countryCode": "US",
    "distanceMiles": 2467,
    "duration": "5h 58m",
    "airlines": ["AA", "B6", "DL"],
    "flightsPerDay": 102
  }
]
```

### Use cases

#### Travel price monitoring

Track fare changes on specific routes over time. Run the Actor daily on your favorite routes and build a price history dataset.

#### Trip planning

Find the cheapest month to fly somewhere. Use "Dates" mode to scan a 30-day window and pick the lowest fare.

#### Travel business intelligence

Compare airline pricing across routes, monitor market trends, and identify underserved destination pairs.

#### Research and analysis

Build datasets of flight pricing patterns, airline route networks, and seasonal price variations.

### Pricing

- **Flight data sources**: Google Flights and Kayak are free, public services
- **Apify platform costs**: Standard compute unit pricing applies (typically $0.01–0.05 per run)
- **Pay-per-event**: Charged per search query at $0.005/query (primary event)

### How it works

1. You configure the search (airports, dates, mode)
2. The Actor queries Google Flights or Kayak via the flight-goat CLI
3. Data is normalized into a consistent schema
4. Results are pushed to the Apify dataset for download
5. Booking URLs enable one-click booking on airline sites

No API key, no authentication, no credit card required for the data source. Read-only access to real-time flight pricing.

### Tips for best results

- Start with **Explore mode** to see what destinations are reachable from your airport
- Use **Flights mode** with a specific date for the most detailed results
- Use **Dates mode** to find the cheapest day to fly within a month
- Set **Currency** to your local currency for easy price comparison
- Use **Max Stops = 0** to find nonstop flights only
- For round trips, add a **Return Date** in Flights mode
- The data is live — prices change daily (sometimes hourly)

### Legal

This Actor extracts publicly available flight information from Google Flights and Kayak. It does not book flights, access user accounts, or interact with authenticated services. Flight data is publicly accessible for research and travel planning purposes. For commercial use, consult the respective platforms' terms of service.

### Support

For questions, bug reports, or feature requests, reach out via the [Apify Discord](https://discord.apify.com).

# Actor input Schema

## `queryType` (type: `string`):

What kind of flight search to perform

## `origin` (type: `string`):

IATA airport code (e.g. JFK, LAX, LHR, CDG)

## `destination` (type: `string`):

IATA airport code (required for 'Flights' and 'Dates' modes)

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

Departure date in YYYY-MM-DD format (required for 'Flights' mode)

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

Return date for round trips in YYYY-MM-DD format (optional, 'Flights' mode only)

## `dateFrom` (type: `string`):

Start of travel window in YYYY-MM-DD format (used with 'Dates' mode)

## `dateTo` (type: `string`):

End of travel window in YYYY-MM-DD format (used with 'Dates' mode)

## `maxResults` (type: `integer`):

Maximum number of results to return

## `maxStops` (type: `integer`):

Maximum number of stops (0 = nonstop only, empty = any)

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

ISO 4217 currency code (e.g. USD, EUR, GBP, JPY)

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

How to sort results

## Actor input object example

```json
{
  "queryType": "flights",
  "origin": "JFK",
  "destination": "LAX",
  "departureDate": "2026-08-15",
  "returnDate": "2026-08-22",
  "dateFrom": "2026-08-01",
  "dateTo": "2026-08-31",
  "maxResults": 25,
  "maxStops": -1,
  "currency": "USD",
  "sortBy": "price"
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("sleekly_featherstar/flight-fare-scanner").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("sleekly_featherstar/flight-fare-scanner").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call sleekly_featherstar/flight-fare-scanner --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sleekly_featherstar/flight-fare-scanner",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Flight Fare Scanner — Google Flights Prices",
        "description": "Search real-time flight prices from Google Flights. Find cheapest travel dates, discover nonstop destinations from any airport, and compare fares across airlines. No API key required.",
        "version": "1.0",
        "x-build-id": "feRnuKIqJeiv5cQgx"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sleekly_featherstar~flight-fare-scanner/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sleekly_featherstar-flight-fare-scanner",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/sleekly_featherstar~flight-fare-scanner/runs": {
            "post": {
                "operationId": "runs-sync-sleekly_featherstar-flight-fare-scanner",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/sleekly_featherstar~flight-fare-scanner/run-sync": {
            "post": {
                "operationId": "run-sync-sleekly_featherstar-flight-fare-scanner",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "queryType",
                    "origin"
                ],
                "properties": {
                    "queryType": {
                        "title": "Query Type",
                        "enum": [
                            "flights",
                            "dates",
                            "explore"
                        ],
                        "type": "string",
                        "description": "What kind of flight search to perform",
                        "default": "flights"
                    },
                    "origin": {
                        "title": "Origin Airport",
                        "minLength": 3,
                        "maxLength": 3,
                        "type": "string",
                        "description": "IATA airport code (e.g. JFK, LAX, LHR, CDG)"
                    },
                    "destination": {
                        "title": "Destination Airport",
                        "minLength": 3,
                        "maxLength": 3,
                        "type": "string",
                        "description": "IATA airport code (required for 'Flights' and 'Dates' modes)"
                    },
                    "departureDate": {
                        "title": "Departure Date",
                        "type": "string",
                        "description": "Departure date in YYYY-MM-DD format (required for 'Flights' mode)"
                    },
                    "returnDate": {
                        "title": "Return Date",
                        "type": "string",
                        "description": "Return date for round trips in YYYY-MM-DD format (optional, 'Flights' mode only)"
                    },
                    "dateFrom": {
                        "title": "Date Range — From",
                        "type": "string",
                        "description": "Start of travel window in YYYY-MM-DD format (used with 'Dates' mode)"
                    },
                    "dateTo": {
                        "title": "Date Range — To",
                        "type": "string",
                        "description": "End of travel window in YYYY-MM-DD format (used with 'Dates' mode)"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of results to return",
                        "default": 25
                    },
                    "maxStops": {
                        "title": "Max Stops",
                        "minimum": -1,
                        "maximum": 2,
                        "type": "integer",
                        "description": "Maximum number of stops (0 = nonstop only, empty = any)",
                        "default": -1
                    },
                    "currency": {
                        "title": "Currency",
                        "minLength": 3,
                        "maxLength": 3,
                        "type": "string",
                        "description": "ISO 4217 currency code (e.g. USD, EUR, GBP, JPY)",
                        "default": "USD"
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "price",
                            "duration",
                            "stops"
                        ],
                        "type": "string",
                        "description": "How to sort results",
                        "default": "price"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
