Google Flights API: Flight Prices, Airfare & Cheapest Dates
Pricing
from $0.85 / 1,000 flights
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
19 days ago
Last modified
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.
| Option | What you get | What it takes |
|---|---|---|
| QPX Express API | was Google's official fare API | gone since April 2018 |
Open-source Python scrapers (for example fast-flights) | free | you host them, supply your own IPs and keep them working when Google changes its pages |
| This Actor | flights and a price calendar as JSON, from Python, JavaScript, cURL, no-code tools or an AI agent | an Apify token; $1 per 1,000 flights, proxies and retries included |
How to use it
- 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). - Set the departure date. Add a return date for a round trip.
- Optional: cabin, passengers, stops, airlines, maximum price, order.
- Optional: Departure dates to cover repeats every route for that many consecutive days (a round trip keeps its length).
- 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"}
| Field | Meaning |
|---|---|
price | Total for all passengers in currency. Round trips: the round-trip total |
departureTime, arrivalTime | Local time at each airport |
durationMinutes | Door to door, layovers included |
layovers | Every connection with its length; changeOfAirport flags a change such as LGW to LHR |
isTopFlight | In Google's "Top flights" group |
co2VsTypicalPercent | Emissions against the typical flight on the route, as Google shows it |
googleFlightsUrl | The 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:
| Event | Price |
|---|---|
| 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:
LONcovers 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,airlinesandmaxPriceare 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
countryandcurrencyfor 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 ApifyClientclient = 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 ApifyClientclient = 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?"
Related Actors
- Google Hotels API: hotel prices for the same trip, with every booking site's price.
- Google Trends API: search interest for destinations over time.
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.