Google Flights API: Flight Prices, Airfare & Cheapest Dates avatar

Google Flights API: Flight Prices, Airfare & Cheapest Dates

Pricing

from $0.85 / 1,000 flights

Go to Apify Store
Google Flights API: Flight Prices, Airfare & Cheapest Dates

Google Flights API: Flight Prices, Airfare & Cheapest Dates

Flight prices and airfare from Google Flights for any route and dates: flight price API and flight search API, one way or round trip, cabin, stops, airlines, every leg, flight numbers, times, layovers, CO2. Cheapest-dates calendar to find cheap flights; flight price tracker. $1 per 1,000 flights.

Pricing

from $0.85 / 1,000 flights

Rating

0.0

(0)

Developer

Saulius AutomatesIT

Saulius AutomatesIT

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

19 days ago

Last modified

Categories

Share

Get flight prices from Google Flights for any route and date, in bulk. One way or round trip, any cabin, any number of passengers, nonstop or with stops, only the airlines you want. Every flight comes with its price, airlines, flight numbers, departure and arrival times, duration, layovers, aircraft, legroom and CO2 emissions. Switch to cheapest dates to get Google's price calendar: the lowest fare for every departure date over the next weeks or months.

No login, no API key, no browser. $1 per 1,000 flights, $0.50 per 1,000 calendar dates, and searches that find nothing cost nothing.

What you can use it for

  • Fare tracking and alerts: schedule a run every day for the routes you care about and get the price change the moment it happens.
  • Cheapest day to fly: price every departure date for the next 2 to 11 months in one run, for one-way or round trips of a fixed length.
  • Travel apps, deal newsletters and AI agents: clean JSON with every leg, ready for your own search, alerts or chat assistant.
  • Airline and route research: who flies a route, how often, how long it takes, nonstop or not, and at what price.
  • Corporate travel and budgets: what a trip really costs in business vs economy, for a team, on given dates.

Is there an official Google Flights API?

No. Google's public flight API, QPX Express, was shut down on 10 April 2018, and Google Flights has offered no public API since; the QPX engine is only sold to large travel companies under private contracts. Developers who want Google Flights prices today either scrape Google Flights themselves or use a service that does it for them.

OptionWhat you getWhat it takes
QPX Express APIwas Google's official fare APIgone since April 2018
Open-source Python scrapers (for example fast-flights)freeyou host them, supply your own IPs and keep them working when Google changes its pages
This Actorflights and a price calendar as JSON, from Python, JavaScript, cURL, no-code tools or an AI agentan Apify token; $1 per 1,000 flights, proxies and retries included

How to use it

  1. Put one route per line in Routes: airport codes (LHR-JFK), metro codes for every airport in a city (LON-NYC, PAR-TYO, CHI-WAS), city names (London-New York), or several airports on one side (SFO,OAK-LAX).
  2. Set the departure date. Add a return date for a round trip.
  3. Optional: cabin, passengers, stops, airlines, maximum price, order.
  4. Optional: Departure dates to cover repeats every route for that many consecutive days (a round trip keeps its length).
  5. Run it and download the results as JSON, CSV or Excel, or read them through the API.

For the cheapest date, set What to get to Cheapest dates (price calendar) and Days in the price calendar to how far ahead you want to look.

Input example: flights

{
"routes": ["LHR-JFK", "LON-NYC"],
"departureDate": "2026-11-15",
"returnDate": "2026-11-22",
"adults": 2,
"cabinClass": "economy",
"maxStops": "nonstop",
"maxFlightsPerSearch": 20,
"currency": "USD"
}

Input example: cheapest dates

{
"routes": ["SFO-NRT"],
"mode": "cheapest-dates",
"departureDate": "2026-11-01",
"calendarDays": 120,
"tripLengthDays": 10
}

Output

Flights

One item per flight, in Google's order (or the order you chose).

{
"type": "flight",
"route": "LHR-JFK",
"origin": "LHR",
"destination": "JFK",
"tripType": "one-way",
"departureDate": "2026-11-15",
"returnDate": null,
"cabinClass": "economy",
"adults": 1,
"children": 0,
"infants": 0,
"position": 1,
"price": 413,
"currency": "USD",
"airlines": ["SWISS"],
"airlineCodes": ["LX"],
"flightNumbers": ["LX 345", "LX 16"],
"stops": 1,
"durationMinutes": 735,
"departureAirport": "LHR",
"departureAirportName": "Heathrow Airport",
"departureTime": "2026-11-15T06:00",
"arrivalAirport": "JFK",
"arrivalAirportName": "John F. Kennedy International Airport",
"arrivalTime": "2026-11-15T13:15",
"layovers": [
{ "airport": "ZRH", "airportName": "Zurich Airport", "city": "Zürich", "durationMinutes": 75, "changeOfAirport": false }
],
"co2Grams": 356000,
"typicalCo2Grams": 343000,
"co2VsTypicalPercent": 4,
"legs": [
{
"airline": "SWISS", "airlineCode": "LX", "flightNumber": "LX 345",
"departureAirport": "LHR", "departureTime": "2026-11-15T06:00",
"arrivalAirport": "ZRH", "arrivalTime": "2026-11-15T08:40",
"durationMinutes": 100, "aircraft": "Airbus A320neo", "legroom": "29 inches", "co2Grams": 73916
},
{
"airline": "SWISS", "airlineCode": "LX", "flightNumber": "LX 16",
"departureAirport": "ZRH", "departureTime": "2026-11-15T09:55",
"arrivalAirport": "JFK", "arrivalTime": "2026-11-15T13:15",
"durationMinutes": 560, "aircraft": "Airbus A330", "legroom": "31 inches", "co2Grams": 281626
}
],
"isTopFlight": false,
"lowestPriceOnRoute": 413,
"googleFlightsUrl": "https://www.google.com/travel/flights/search?tfs=GhoSCjIwMjYtMTEtMTVqBRIDTEhScgUSA0pGS0IBAUgBmAEC&hl=en&gl=us&curr=USD",
"scrapedAt": "2026-10-03T16:00:00.000Z"
}
FieldMeaning
priceTotal for all passengers in currency. Round trips: the round-trip total
departureTime, arrivalTimeLocal time at each airport
durationMinutesDoor to door, layovers included
layoversEvery connection with its length; changeOfAirport flags a change such as LGW to LHR
isTopFlightIn Google's "Top flights" group
co2VsTypicalPercentEmissions against the typical flight on the route, as Google shows it
googleFlightsUrlThe same search on Google Flights

Cheapest dates

One item per departure date that has a price.

{
"type": "date-price",
"route": "LHR-JFK",
"tripType": "one-way",
"departureDate": "2026-11-03",
"returnDate": null,
"price": 498,
"currency": "USD",
"isCheapestDate": false,
"cheapestPriceInRange": 390,
"googleFlightsUrl": "https://www.google.com/travel/flights/search?tfs=...",
"scrapedAt": "2026-10-03T16:00:00.000Z"
}

Pricing

Pay per result, no monthly fee:

EventPrice
Flight (one row per flight)$0.001 ($1 per 1,000)
Date price (one row per date, cheapest-dates mode)$0.0005 ($0.50 per 1,000)
Actor start$0.00005

Apify Store discounts apply on paid plans: Bronze 5%, Silver 10%, Gold and above 15%.

Examples: the 20 best flights on one route and date = $0.02. A 120-day price calendar for one route = $0.06. Ten routes tracked every day with 10 flights each = $0.10 per run, about $3 a month.

Tips

  • Use metro codes or city names to cover every airport in a city at once: LON covers Heathrow, Gatwick, City, Stansted and Luton.
  • Round trips are priced as Google prices them: the round-trip total, shown next to each outbound flight.
  • maxStops, airlines and maxPrice are applied by Google itself, so results match what you see on the site with the same filters.
  • Schedule the Actor in Apify (daily or hourly) and connect the dataset to Google Sheets, Make, Zapier or your own API for fare alerts.
  • Results are what Google shows a US searcher by default; set country and currency for another market.

Google Flights API in Python, JavaScript and cURL

You need an Apify API token (Apify Console > Settings > API & Integrations). Apify's free plan includes $5 of monthly credit, about 5,000 flights.

Python: flight prices for a route

$pip install apify-client
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("sauliusautomatesit/google-flights-api").call(run_input={
"routes": ["LHR-JFK"],
"departureDate": "2026-11-15",
"maxFlightsPerSearch": 10,
})
for f in client.dataset(run.default_dataset_id).iterate_items():
print(f["price"], f["currency"], f["airlines"], f["stops"], "stops", f["departureTime"], f["durationMinutes"], "min")

Python: the cheapest day to fly

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("sauliusautomatesit/google-flights-api").call(run_input={
"routes": ["SFO-NRT"],
"mode": "cheapest-dates",
"departureDate": "2026-11-01",
"calendarDays": 60,
"tripLengthDays": 10,
})
days = sorted(client.dataset(run.default_dataset_id).iterate_items(), key=lambda d: d["price"])
for d in days[:5]:
print(d["departureDate"], "to", d["returnDate"], d["price"], d["currency"])

run.default_dataset_id is for apify-client 3.x (the current release); on 2.x write run["defaultDatasetId"]. Pass max_total_charge_usd=1 to .call() to cap a run at $1.

JavaScript (Node.js)

$npm install apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('sauliusautomatesit/google-flights-api').call({
routes: ['LHR-JFK'],
departureDate: '2026-11-15',
returnDate: '2026-11-22',
maxFlightsPerSearch: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((f) => console.log(f.price, f.currency, f.airlines.join(' + '), f.flightNumbers.join(', ')));

cURL: one HTTP call, results in the response

curl -X POST "https://api.apify.com/v2/acts/sauliusautomatesit~google-flights-api/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "content-type: application/json" \
-d '{"routes": ["LHR-JFK"], "departureDate": "2026-11-15", "maxFlightsPerSearch": 10}'

AI agents (MCP)

Add https://mcp.apify.com/?tools=sauliusautomatesit/google-flights-api as a remote MCP server in Claude, Cursor or any MCP client, then ask: "What is the cheapest nonstop from London to New York in the second half of November?"

FAQ

Is it legal? It reads public Google Flights results that anyone can open without logging in. You are responsible for how you use the data.

Why does a search return fewer flights than I asked for? Google lists a limited number of options per route and date, usually 10 to 60. Nonstop-only or airline filters shrink that further.

Can I book through it? No. It returns prices and itineraries; googleFlightsUrl opens the same search on Google Flights, where you can pick the flight and booking site.

Do I get return flights for a round trip? Each row shows the outbound itinerary with the round-trip price, the way Google lists round trips first. Run the return direction as its own route if you need the return legs too.

Is there a free Google Flights API? Not from Google. Apify's free plan gives $5 of credit every month, which covers about 5,000 flights or 10,000 calendar dates with this Actor.

Does it work for flight price alerts? Yes. Save the input as a task, schedule it daily, and connect the dataset to Slack, email, Google Sheets or a webhook; compare price or lowestPriceOnRoute with yesterday's run.

Something broke or you need a field? Open an issue on the Actor's Issues tab and it will be looked at quickly.