Google Flights Scraper
Pricing
from $0.60 / 1,000 flight result scrapeds
Google Flights Scraper
Extract public Google Flights prices, schedules, airlines, stops, and booking links for route/date fare monitoring.
Pricing
from $0.60 / 1,000 flight result scrapeds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract public Google Flights fare options, airline names, schedules, durations, stops, prices, and booking-page links for route and date searches.
What does Google Flights Scraper do?
Google Flights Scraper turns a public Google Flights route search into structured dataset rows.
It accepts an origin, destination, departure date, currency, cabin class, passenger count, and result limit.
It builds a Google Flights route search and saves available flight option rows with price and schedule details.
Use it to monitor fares, compare routes, collect travel market data, or feed flight options into dashboards and workflows.
Who is it for?
Travel agencies use it to check public fare availability for common customer routes.
Deal newsletter teams use it to collect candidate flight prices for editorial review.
Corporate travel teams use it to benchmark route costs before policy or budget planning.
Fare-monitoring tools use it to record snapshots over time.
Data analysts use it to compare routes, travel dates, airlines, and stop patterns.
Developers use it when they need structured Google Flights rows without manually copying browser results.
Why use this scraper?
- ✈️ Search by airport code or city.
- 💵 Capture numeric prices plus the original price text.
- 🕒 Save departure time, arrival time, duration, and stops.
- 🧳 Include query metadata on every row for clean exports.
- 🌍 Choose currency for international comparisons.
- 🧩 Export to JSON, CSV, Excel, XML, API, webhook, or integrations.
- 🛡️ Uses Apify Residential Proxy by default for the supported Google Flights path.
What Google Flights data can you extract?
| Field | Description |
|---|---|
queryOrigin | Origin entered for the search. |
queryDestination | Destination entered for the search. |
queryDepartureDate | Departure date in YYYY-MM-DD format. |
queryReturnDate | Optional return date from the input. |
tripType | One-way or round-trip input mode. |
cabinClass | Requested cabin class. |
adults, children, infantsInSeat, infantsOnLap | Passenger counts used for the search. |
currency | Requested currency code. |
resultRank | Rank in the saved result list. |
legType | outbound for one-way or itinerary for combined round-trip offers. |
airline / airlineCode | Primary airline name and code for the flight option. |
isBest | Whether Google marked the offer as a best flight. |
fareBrand | Best-effort fare tier such as Economy, Economy+, or Economy Flex when present. |
flightSummary | Normalized summary built from airline, times, duration, stops, and price. |
departureTime / arrivalTime | Departure and arrival time. |
departureDate / arrivalDate | Flight dates for the option. |
duration / durationMinutes | Human-readable and numeric duration. |
stops / stopsCount | Stop count or nonstop label. |
price / priceText | Numeric price and formatted price text. |
carryOnIncluded / checkedBagsIncluded | Amenity flags when available for the fare. |
segments | Detailed flight segments with flight number, airports, airline, aircraft, and segment times. |
bookingLink | Google Flights page URL for the completed search. |
scrapedAt | ISO timestamp for the scrape. |
How much does it cost to scrape Google Flights?
This actor uses pay-per-event pricing.
There is a small run start event.
Each saved flight result is charged as a result event.
The exact price is shown on the Apify actor page before you run it.
Keep the first run small, for example 5 to 10 results, while you confirm the route/date/currency settings.
How to use Google Flights Scraper
-
Open the actor on Apify.
-
Enter an origin airport or city.
-
Enter a destination airport or city.
-
Choose a departure date.
-
Optionally add a return date.
-
Choose the cabin class, currency, passengers, sort order, and optional stop/basic-economy filters.
-
Keep
maxResultslow for the first test. -
Keep the default Residential Proxy settings unless you have a specific region or proxy policy requirement.
-
Start the actor.
-
Download the dataset or consume it through the Apify API.
Input example
{"origin": "JFK","destination": "LAX","departureDate": "2026-08-10","tripType": "one-way","currency": "USD","maxResults": 10,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
Output example
{"queryOrigin": "JFK","queryDestination": "LAX","queryDepartureDate": "2026-08-10","tripType": "one-way","cabinClass": "economy","adults": 1,"currency": "USD","resultRank": 1,"legType": "outbound","airline": "JetBlue","flightSummary": "JetBlue | 5 hr 48 min | JFK–LAX | Nonstop | $286 | 6:00 AM | – | 8:59 AM","departureTime": "6:00 AM","arrivalTime": "8:59 AM","duration": "5 hr 48 min","stops": "Nonstop","price": 286,"priceText": "$286","bookingLink": "https://www.google.com/travel/flights/search?...","scrapedAt": "2026-06-27T17:02:08.244Z"}
Route input tips
Airport codes are the most reliable input format.
Use JFK, LAX, SFO, ORD, MIA, LHR, CDG, or another airport code when possible.
City names can work, but Google may choose a nearby airport or a city-level destination.
If precision matters, prefer IATA airport codes.
Date and currency tips
Use dates in YYYY-MM-DD format.
Choose a future date with normal public availability.
Use common currency codes such as USD, EUR, or GBP.
Prices can change frequently, so treat every run as a snapshot.
Proxy and reliability tips
Google properties may rate-limit automated traffic.
Use the default Apify Residential Proxy settings for the supported and QA-validated path.
If you see a consent, CAPTCHA, or unusual-traffic page, keep Residential Proxy enabled, try a different proxy country, and lower the result count.
Avoid large bursts of route/date searches.
For recurring monitoring, schedule smaller runs rather than one large run.
Integrations
Send results to Google Sheets for manual fare review.
Push dataset rows into a BI warehouse for route trend dashboards.
Trigger a webhook when prices are collected.
Use Apify integrations to connect the dataset to Make, Zapier, Slack, or custom applications.
Combine output with your own route list to build internal fare-monitoring reports.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/google-flights-scraper').call({origin: 'JFK',destination: 'LAX',departureDate: '2026-08-10',currency: 'USD',maxResults: 10});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('fetch_cat/google-flights-scraper').call(run_input={'origin': 'JFK','destination': 'LAX','departureDate': '2026-08-10','currency': 'USD','maxResults': 10,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~google-flights-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"origin":"JFK","destination":"LAX","departureDate":"2026-08-10","currency":"USD","maxResults":10}'
MCP usage
You can use this actor through Apify MCP from Claude Desktop, Claude Code, or other MCP-compatible clients.
Configure the Apify MCP server with a tools URL that includes this actor.
Example MCP URL:
https://mcp.apify.com/?tools=fetch_cat/google-flights-scraper
Claude CLI setup example:
$claude mcp add apify-google-flights "https://mcp.apify.com/?tools=fetch_cat/google-flights-scraper"
Claude Desktop JSON config example:
{"mcpServers": {"apify-google-flights": {"url": "https://mcp.apify.com/?tools=fetch_cat/google-flights-scraper"}}}
Example prompts:
- "Run Google Flights Scraper for JFK to LAX next August and summarize the cheapest options."
- "Collect flight prices for SFO to NRT and export the dataset rows."
- "Compare nonstop and one-stop options for my route search."
Common workflows
Fare snapshot workflow:
- Prepare a route and date.
- Run the actor with a low result limit.
- Export the dataset to CSV.
- Store the snapshot with a timestamp.
- Repeat on a schedule.
Travel content workflow:
- Search a route relevant to your article.
- Review available airlines and prices.
- Use the dataset as research input.
- Re-run before publishing because fares change quickly.
Limitations
Google Flights can change its interface without notice.
Some fields are only saved when Google Flights provides them for the selected route/date result.
Prices and availability are public snapshots, not booking guarantees.
Google may show different availability by location, currency, language, device, or time.
Very high-volume runs may require proxy settings and conservative scheduling.
Responsible use and legality
This actor extracts public information from Google Flights route searches.
You are responsible for using the data in a lawful way and respecting applicable terms, privacy rules, and platform restrictions.
Do not use scraped data for misleading pricing claims.
Always verify fares with the booking provider before purchase or publication.
Troubleshooting
Why did I get no results?
The route/date may have no available flights, Google may have returned an unexpected response, or the run may have been rate-limited.
Try a common airport-code route such as JFK to LAX, lower maxResults, and keep the default Residential Proxy enabled.
Why are some fields null?
Google does not always provide every detail for every fare option.
When a detail cannot be parsed reliably, the actor leaves that field null and keeps the full flightSummary for review.
Why do prices differ from my browser?
Google Flights can vary by location, currency, language, time, and personalization context.
Treat each dataset as a snapshot from the actor run environment.
FAQ
Can I scrape round-trip Google Flights?
Yes. When you provide a return date, the actor saves outbound leg options and return leg options as separate rows with legType set to outbound or return. Verify outputs with a small test before using them at scale.
Can I choose business class?
Yes. Use the cabinClass input and choose business, first, premium_economy, or economy.
Can I run many routes at once?
The first version is designed for one route/date per run. For many routes, schedule multiple small runs or call the actor from your own queue.
Is this an official Google API?
No. This is an Apify actor that extracts public Google Flights page results. It is not affiliated with Google.
Can I track prices over time?
Yes. Schedule recurring runs and compare exported datasets by queryOrigin, queryDestination, queryDepartureDate, and scrapedAt.
Related scrapers
Related actors in the same catalog may help with travel, search, and app-market research:
- Google Search Results Scraper
- Google Autocomplete Scraper
- Google Play Apps Scraper
- Google Play Reviews Scraper
- Airbnb Listings Scraper
Support
If a run fails, open the run log and check for consent, CAPTCHA, no-results, or layout-change messages.
When reporting an issue, include the route, dates, input JSON, run ID, and a short description of what you expected.
Changelog
Initial version focuses on route/date Google Flights result extraction with normalized price and schedule fields.