Flight Search — Google Flights Scraper
Pricing
from $0.002 / per flight result
Flight Search — Google Flights Scraper
Search flight prices for a single route with optional flex dates. Powered by Google Flights.
Pricing
from $0.002 / per flight result
Rating
0.0
(0)
Developer
bootforge
Maintained by CommunityActor stats
1
Bookmarked
7
Total users
3
Monthly active users
13 hours ago
Last modified
Categories
Share
Google Flights Scraper
The Google Flights Scraper is an Apify actor that searches flight prices from Google Flights — one route or many in a single run. It returns price, cabin, stops, full segment detail (airline, flight number, aircraft, legroom), carbon emissions, and a bookable Google Flights URL for every itinerary.
Use it to find deals across flexible dates, build a fare dataset, or schedule daily price tracking with drop alerts — exported to JSON, CSV, or Excel.
Table of contents
- What the flight scraper does
- How to scrape flights
- Flight scraper input
- Flight data output
- How much it costs
- Recommended proxies for flight scraping
- Why this flight scraper
- FAQ
- Rate this actor
- Related actors
What the flight scraper does
- 🔎 Single or bulk routes — search one route or dozens of routes in a single run, one start fee.
- 💸 Flex-date deal finding — search ±N days around a date, filter by
max_price, keep the cheapest. - 🔔 Scheduled price tracking — enable
track_historyto store fares in the key-value store and fire alerts when a price drops. - 🛫 Round-trip and one-way — full
departureandreturnitineraries with per-segment airline, flight number, aircraft, and legroom. - 🌱 Carbon emissions —
emissions_kgper itinerary plus the route's typical average for Google's "% vs typical" comparison. - 🧭 Airport fuzzy matching — pass an IATA code or a city name; a bundled OurAirports dataset resolves it.
- 💱 Major-currency pricing — price results in USD, EUR, GBP, JPY, and other supported currencies (unsupported codes fail loudly rather than silently returning USD).
How to scrape flights
- Click Try for free and open the actor.
- Enter a single route (
origin,destination,departure_date) or paste asearchesarray for bulk routes. - Optional: add
flex_days+max_pricefor deal finding, or settrack_history: truefor scheduled monitoring. - Click Start and watch results stream into the dataset.
- Export the data as JSON, CSV, or Excel, or pull it from the Apify API.
Single route:
{"origin": "SGN","destination": "HAN","departure_date": "2026-05-15","return_date": "2026-05-20"}
Bulk routes:
{"searches": [{"origin": "SGN", "destination": "HAN", "departure_date": "2026-05-15"},{"origin": "SGN", "destination": "DAD", "departure_date": "2026-05-16"}],"adults": 2,"cabin": "economy"}
Deal finding (±3 days, under $200):
{"origin": "SGN","destination": "HAN","departure_date": "2026-05-15","flex_days": 3,"max_price": 200,"max_results_per_search": 10}
Price tracking (schedule this daily):
{"origin": "SGN","destination": "HAN","departure_date": "2026-05-15","track_history": true,"alert_threshold_pct": 10}
Flight scraper input
| Field | Description |
|---|---|
searches | Bulk mode. Array of routes, each {origin, destination, departure_date, return_date?, flex_days?, max_stops?}. If set, the single-route fields below are ignored. |
origin | IATA code or city name (e.g. SGN, Ho Chi Minh City). |
destination | IATA code or city name. |
departure_date | YYYY-MM-DD. Leave empty to auto-pick ~30 days from today. Must be a future date. |
return_date | YYYY-MM-DD, on/after departure. Leave empty for one-way. |
flex_days | Search ±N days around the departure date (0–14). Used for deal finding. |
max_stops | Maximum stops (0–3); omit for any. |
adults / children | Passenger counts (adults 1–9, children 0–9). |
cabin | economy, premium, business, or first. |
currency | ISO 4217 code. Supported: USD, EUR, GBP, INR, JPY, CNY, AUD, CAD, CHF, SGD, HKD, AED, SAR, ZAR, BRL, MXN and other major currencies. An unsupported code fails the run rather than silently returning USD-priced results. |
max_price | Filter out results above this price (deal finding). |
max_results_per_search | Limit results per route (1–200, default 50). |
track_history | Enable scheduled price monitoring — stores history in the KV store and fires alerts on drops. |
alert_threshold_pct | Fire a price-alert event when the price drops by this percentage (1–90). |
tracking_key | Override the auto-generated history key (for multiple schedules on one route). |
strategy_mode | Retry ordering: cost_first (default), speed_first, balanced, stealth_first. |
request_delay | Fixed delay (seconds) inserted between requests. |
proxy | Proxy configuration. Apify Proxy (residential) is prefilled and strongly recommended. |
Flight data output
Each itinerary is one dataset row. Sample:
{"origin": "SGN","destination": "HAN","departure_date": "2026-05-15","return_date": null,"price": 178.0,"currency": "USD","price_tag": "best","booking_url": "https://www.google.com/travel/flights/...","departure": {"stops": 0,"duration_minutes": 130,"emissions_kg": 113.0,"emissions_typical_kg": 111.0,"arrives_next_day": false,"segments": [{"airline": "Vietnam Airlines","airline_code": "VN","flight_number": "251","from": "SGN","to": "HAN","departure_time": "2026-05-15T07:00:00","arrival_time": "2026-05-15T09:10:00","duration_minutes": 130,"aircraft": "Airbus A321","legroom": "31 in"}],"layovers": []},"return": null,"scraped_at": "2026-05-15T00:00:00Z"}
departure (and return for round-trips) hold the trip detail — segments, stops, duration_minutes, carbon emissions_kg (+ route emissions_typical_kg), and arrives_next_day. Each segment carries aircraft and legroom. price_tag labels the row as best, cheapest, or fastest.
| Mode | Extra output fields |
|---|---|
| Round-trip | return itinerary populated (same shape as departure) |
| Price tracking | previous_price, price_change, pct_change, alert, checked_at |
How much it costs
This actor uses pay-per-event pricing — you pay for what you scrape, not for time.
| Event | USD |
|---|---|
| Actor start | $0.02 |
| Per flight result | $0.002 |
| Per price alert (tracking mode) | $0.01 |
| Typical run | Cost |
|---|---|
| 1 route × 20 results | $0.02 + $0.04 = $0.06 |
| 10 routes × 20 results | $0.02 + $0.40 = $0.42 |
| Daily tracking × 30 days (1 result/day) | 30 × ($0.02 + $0.002) = $0.66/month |
Apify Proxy usage is billed separately by the platform.
Recommended proxies for flight scraping
Residential proxies are recommended for Google Flights — datacenter IPs are blocked by many sites and force a slower browser fallback. This actor supports Apify Proxy out of the box: the proxy input is prefilled with the RESIDENTIAL group, and Apify Proxy costs are billed separately by the platform.
If you run your own scrapers (inside or outside Apify) and want reliable residential IPs with per-country targeting and no monthly minimum, we recommend DataImpulse:
👉 Get DataImpulse residential proxies (referral link)
Why this flight scraper
- One run, many routes — bulk
searchesscrape N routes on a single start fee, versus one run (and one start fee) per route with single-search actors. - Deal finding built in —
flex_days+max_pricesweep dates around your target and keep the cheapest, no post-processing. - Scheduled tracking + alerts —
track_historypersists fares in the KV store and fires aprice-alertevent only when a drop crosses your threshold. - Airport fuzzy matching — a bundled OurAirports dataset resolves IATA codes or city names, so you don't have to look codes up.
- Truthful currency labels — unsupported currency codes fail the run instead of silently returning USD-priced results mislabeled as another currency.
- Open source — the underlying
google-flight-scraperPython package ships a Typer CLI and a FastAPI server; the Apify wrapper is a thin layer.
FAQ
What is the Google Flights Scraper? It is an Apify actor that searches Google Flights for fares on one or many routes and returns structured itineraries — price, cabin, stops, per-segment airline and aircraft detail, carbon emissions, and a bookable Google Flights URL — as JSON, CSV, or Excel.
How do I scrape multiple routes at once? Pass a searches array where each entry is {origin, destination, departure_date, ...}. All routes run under a single actor start, so bulk scraping N routes costs one start fee plus the per-result charge, instead of N separate runs.
Can I track flight prices over time? Yes. Set track_history: true and schedule the actor to run daily. It stores each fare in the key-value store and, when a price drops by at least alert_threshold_pct, adds price_change, pct_change, and alert: true to the output and fires a billable price-alert event.
Which proxies work best for scraping flights? Residential proxies are recommended because datacenter IPs are widely blocked and slow the run down. This actor supports Apify Proxy (residential) out of the box; for running your own scrapers, DataImpulse (referral link) offers residential IPs with per-country targeting.
Why did my currency fail the run? Google Flights silently falls back to USD for currencies it doesn't recognize, which would make the output's currency label lie. To keep labels truthful, an unsupported ISO 4217 code fails the run instead — use a supported code such as USD, EUR, GBP, JPY, or another major currency.
Is scraping Google Flights legal? This actor collects only publicly available flight and pricing data. You are responsible for complying with Google's terms and applicable laws. Do not use the data in ways that violate those terms.
Rate this actor ⭐
If the flight scraper saved you time, please leave a review on its Apify Store page — ratings help other people find it and tell us what to build next. Hit a bug or missing field? Open an issue or contact us through the actor's Issues tab and we'll fix it fast — recency and reliability are what keep this actor ranking.
Related actors
Building a full data pipeline? Pair this actor with our other scrapers — same proxy config format, same Pydantic-validated output, all open source.
- Google Maps Business & Contact Scraper — scrape Google Maps businesses with emails, phone numbers, reviews, images, and social links.
- TikTok Shop Product Scraper — extract TikTok Shop products by keyword search or direct URL, with a built-in CAPTCHA solver.
- LinkedIn Jobs Scraper — scrape LinkedIn job listings with company enrichment, salary, and recruiter info. No login required.
- Zillow Scraper — scrape Zillow property listings with prices, details, and location data.
