Google Flights Scraper
Pricing
from $0.75 / 1,000 results
Google Flights Scraper
✈️ Scrape every Google Flights price in seconds, not just the first page. One-way, round trip and multi-city, with booking links for every seller, a 330-day price calendar and all Google filters. Up to 3× faster. The Google Flights API alternative. Export to JSON, CSV or Excel.
Pricing
from $0.75 / 1,000 results
Rating
5.0
(1)
Developer
Data Xplorer
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
24 minutes ago
Last modified
Categories
Share
✈️ What is Google Flights Scraper?
Google Flights Scraper extracts flight prices and schedules from Google Flights in seconds. Enter where you fly from, where you fly to and when, and get every flight Google knows for the search as clean, structured data: price, airlines, flight numbers, departure and arrival times, duration, stops, layovers, aircraft, legroom, CO2 emissions and Google's typical price range.
Google has no official Google Flights API. This Actor works as one: run it from the Apify Console, call it from your code, schedule it every day, or connect it to Zapier, Make, n8n and Google Sheets.
What can this Google Flights scraper do?
- 🚀 Fast: no browser, searches run in parallel. A search with 100+ flights takes a few seconds, up to 3× faster than other Google Flights scrapers in our benchmark (one-way search, October 2026).
- 🔎 Every flight, not just the first page: Google hides many itineraries behind "View more flights". The Actor gets the complete list.
- 🔁 One-way, round trip and multi-city, for as many routes and dates as you want in one run
- 🧳 Complete trips: outbound and return flights (or every flight of a multi-city trip) with the total price
- 🛒 Booking options: every seller (airline or online travel agency) with its fare, price, bag fees and a direct booking link
- 📅 Price calendar: the cheapest price of each departure date, up to 330 days, to find the cheapest day to fly
- 🎛️ All of Google's filters: stops, airlines and alliances, bags, max price, departure and arrival times, CO2, layover length, connecting airports
- 🌍 Airport codes, city codes or city names: "New York" or "NYC" covers JFK, EWR and LGA
- 💱 20 currencies and 16 search countries
- ⚙️ Everything the Apify platform offers: API, scheduling, monitoring, proxy rotation, integrations, and export to JSON, CSV, Excel or HTML
💡 Why scrape Google Flights?
- Fare tracking and price alerts: schedule the Actor daily and get notified when prices drop
- Cheapest dates: the price calendar shows the best day to fly over months
- Travel agencies and deal sites: compare airlines and online travel agencies on the same trip, and feed your website with fresh fares
- Market research: routes, schedules, connections and prices by airline
- Corporate travel: benchmark ticket costs for recurring business trips
- Sustainability reporting: CO2 emissions per flight compared with the typical flight on the route
- AI agents and apps: give your product live flight data through the API
🚀 How to scrape Google Flights
- Click Try for free and open the Input tab.
- Add one line per search in Flights: From, To, Departure date, and a Return date for a round trip. Use airport codes (CDG), city codes (PAR) or city names (Paris).
- For a multi-city journey, fill the Multi-city trip lines (at least 2 flights, in order).
- Choose passengers, cabin class and filters (all optional).
- Optional: turn on Price calendar and Booking options.
- Click Start. Results appear in the Output tab in a few seconds; download them as JSON, CSV or Excel.
Already have a search open on Google Flights? Choose Option 2 and paste the URL of the results page.
💰 How much does it cost to scrape Google Flights?
You only pay for the flights you get: from $0.75 per 1,000 results. Platform usage is included.
| Apify plan | Price per 1,000 results |
|---|---|
| Free | $1.50 |
| Bronze | $1.25 |
| Silver | $1.00 |
| Gold | $0.75 |
A typical round-trip search returns around 100 flights, so it costs about $0.15 on the Free plan. Booking options and the price calendar come at no extra cost. Apify's free plan includes monthly credits, enough for thousands of flights to try the Actor.
To control your spending, set Max results in the input, or a maximum cost per run in the run options: the Actor stops cleanly when the limit is reached.
⬇️ Input
| Field | Description |
|---|---|
| Flights | One line per search: From, To (airport code, city code or city name), departure date, optional return date. Dates can be relative (30 days) for scheduled runs. |
| Multi-city trip | One journey made of several flights, in order, priced as one ticket. |
| Round-trip & multi-city results | Fast: outbound (or first) flights with the price of the whole trip. Complete trips: every flight of the trip with the total price. |
| Passengers & cabin | Adults, children, infants; economy, premium economy, business or first. |
| Filters | Stops, airlines and alliances, excluded airlines, max price, departure and arrival hours, carry-on and checked bags, less emissions only, max trip duration, min and max layover, airports to avoid, connect only via. |
| Price calendar | Cheapest price of every departure date around the searched date (7 to 330 days). |
| Include all flights | Get every itinerary, as if you had clicked "View more flights". On by default. |
| Include flights without a price | Off by default. |
| Booking options | Sellers, fares, prices and booking links for the first N results of each search. |
| Currency / country | 20 currencies, 16 search countries. |
| Max results | Per search and in total. |
Input example:
{"flights": [{ "from": "Paris", "to": "NYC", "departureDate": "2026-12-26", "returnDate": "2027-01-04" },{ "from": "LHR", "to": "DXB", "departureDate": "30 days" }],"adults": 1,"cabinClass": "economy","bookingOptions": true,"priceCalendar": true}
⬆️ What data can you extract from Google Flights?
Each flight is one row. The Flights tab shows the main columns (with airline logos); All fields has everything. The price calendar has its own Price calendar tab.
| Data | Fields |
|---|---|
| Price | price, currency, isCheapest, typical price range |
| Flights | airline, airlineLogo, flightNumbers, aircraft and legroom of each leg |
| Schedule | departureDate, departureTime, arrivalTime, duration |
| Route | departureAirport, arrivalAirport, stops, layovers |
| Trip | returnFlight, nextFlights (multi-city) |
| Booking | bookingOptions (seller, fare, price, bag fees, link), cheapestSeller, bookingUrl |
| Environment | co2EmissionsKg, comparison with the typical flight |
| Links | googleFlightsUrl (the same search on Google Flights) |
Output example:
{"recordType": "flight","tripType": "round-trip","departureDate": "2026-12-26","returnDate": "2027-01-20","price": 1039,"currency": "USD","airline": "Qatar Airways","airlineLogo": "https://www.gstatic.com/flights/airline_logos/70px/QR.png","flightNumbers": "QR 38, QR 826","departureAirport": "CDG","arrivalAirport": "BKK","departureTime": "2026-12-26 22:00","arrivalTime": "2026-12-27 19:25","duration": "15h 25m","stops": 1,"layovers": "DOH (2h 50m)","co2EmissionsKg": 837,"returnFlight": { "flightNumbers": "QR 829, QR 39", "layovers": "DOH (3h 05m)" },"bookingOptions": [{ "seller": "Qatar Airways", "sellerType": "airline", "price": 1039, "bookingUrl": "https://www.google.com/travel/clk/f?..." },{ "seller": "wego", "sellerType": "travel agency", "price": 1045, "bookingUrl": "https://www.google.com/travel/clk/f?..." }],"cheapestSeller": "Qatar Airways","googleFlightsUrl": "https://www.google.com/travel/flights/search?tfs=..."}
Price calendar rows have departureDate, dayOfWeek, returnDate, price, priceVsSearchedDate, isCheapestDate and a Google Flights link for each date.
🔎 Is there a Google Flights API?
No. Google closed its QPX Express API in 2018 and has no public Google Flights API today. This Actor is a Google Flights API alternative: send routes and dates in one request and get the flights back as JSON, with prices, schedules, booking links and the price calendar.
🔌 Can I use Google Flights Scraper as an API?
Yes. Google has no public Google Flights API, and this Actor fills the gap. Call it with the Apify API and get the results as JSON in a single request.
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("data_xplorer/google-flights-scraper").call(run_input={"flights": [{ "from": "Paris", "to": "NYC", "departureDate": "2026-12-26" }],})for flight in client.dataset(run["defaultDatasetId"]).iterate_items():print(flight["price"], flight["airline"], flight["flightNumbers"])
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('data_xplorer/google-flights-scraper').call({flights: [{ from: 'Paris', to: 'NYC', departureDate: '2026-12-26' }],});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
cURL (one request that starts the run and returns the flights):
curl -X POST "https://api.apify.com/v2/acts/data_xplorer~google-flights-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer <YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"flights":[{"from":"Paris","to":"NYC","departureDate":"2026-12-26"}]}'
🤖 Use Google Flights Scraper with AI agents (MCP)
AI assistants such as Claude, Cursor or VS Code can call this Actor as a tool through the Apify MCP server. The agent sends the routes and dates, the Actor returns the flights as JSON, and the agent answers with live Google Flights prices.
Use this server URL to give your agent this Actor only:
https://mcp.apify.com?tools=data_xplorer/google-flights-scraper
Claude Code:
$claude mcp add --transport http google-flights "https://mcp.apify.com?tools=data_xplorer/google-flights-scraper"
Cursor, VS Code and other MCP clients (MCP config file):
{"mcpServers": {"google-flights": {"url": "https://mcp.apify.com?tools=data_xplorer/google-flights-scraper"}}}
In Claude Desktop, add a custom connector with the same URL. You sign in to your Apify account the first time the tool is used.
Example prompts for flight search agents
- "Find the cheapest nonstop flights from Paris to New York on December 26, returning January 4."
- "Which day in March is the cheapest to fly from London to Dubai? Use the price calendar."
- "Compare the booking options of the 3 cheapest Madrid to Tokyo flights next month and give me the booking links."
Tips for agents
- Dates can be relative (
30 days), so an agent does not need to compute calendar dates. - To keep the answer short, filter with
maxStops,maxPriceorairlines. Results follow Google's order, not price, so a lowmaxResultsPerSearchalone can leave out the cheapest flight. - Turn on
bookingOptionsonly when the user asks where to book: it adds requests for each result. - Use
priceCalendarfor "cheapest day" questions instead of running one search per date.
🧩 Integrations
Google Flights Scraper runs on the Apify platform, so you can connect it to the rest of your stack without code:
- Make, Zapier and n8n: start a search from a workflow and send the flights to Slack, email, Airtable or a CRM. See Apify integrations.
- Google Sheets: export each run to a spreadsheet to build a price history.
- Schedules: run the same search every day or every hour with Apify schedules.
- Webhooks: get notified when a run finishes and process the results in your own app. See webhooks.
📚 Tutorials and examples
- Build a Google Flights price tracker in Python: step-by-step tutorial with price history and Telegram alerts
- google-flights-price-tracker on GitHub: the complete script, ready to run
🔗 Other scrapers you may like
- Google Trends Scraper: daily trending searches by country and keyword interest over time, a reliable Google Trends API alternative
- Google News Scraper: Google News articles in real time, with titles, sources, dates, images and URLs
- TikTok Ads Library FAST: competitor ad campaigns and creatives from the TikTok Ads Library, by keyword or advertiser
❓ FAQ
How fast is it?
A one-way search takes a few seconds and a round trip with booking options around 20 to 30 seconds. Searches run in parallel, so a run with dozens of routes is much faster than running them one by one.
Why does the price calendar sometimes show a lower price than the flight list?
The calendar gives the cheapest fare of each date across all airlines and times, while the list follows your filters.
Are booking options available for every result?
They are fetched for the first N results of each search (you choose N, up to 50), because each one needs extra requests to Google.
Can I scrape Google Flights every day?
Yes. Create a schedule in Apify (for example every day at 8:00) and use relative dates like 30 days so each run searches 30 days ahead.
What is a layover?
A stop at a connecting airport between two flights. The layovers column shows the airport and the waiting time, e.g. DOH (2h 50m).
Are the results sorted by price?
No. Flights come in the order Google Flights shows them (see the position field). Sort by price on your side to get the cheapest first. If you set Max results, keep in mind that the cheapest flight is not always among the first results.
A search returned no flights. Why?
Check the dates (in the future, return after departure) and the filters: a max price or a nonstop-only filter can exclude every flight. If a code is not recognised, the log says so: use an airport code (CDG) or a city name (Paris).
Is it legal to scrape Google Flights?
The Actor only collects publicly available flight data, with no personal data. Check the rules that apply to your use case and location, and see Is web scraping legal?.
I need another feature or found a bug.
Open an issue in the Issues tab: we read every one and answer quickly.