Google Flights Scraper: Prices, Airlines and Times
Pricing
from $9.70 / 1,000 flights
Google Flights Scraper: Prices, Airlines and Times
Scrape Google Flights for any route and date. Get price, currency, airline, flight numbers, departure and arrival times, duration, stops and layovers, one way or round trip, economy to first. Type LHR-JFK or London to New York. No login, no browser. Pay per flight, $10 per 1,000.
Pricing
from $9.70 / 1,000 flights
Rating
0.0
(0)
Developer
Oski
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Google Flights Prices Scraper
Flight prices, airlines, flight numbers, departure and arrival times, duration, stops and layovers from Google Flights for any route, date and cabin. One way or round trip, in the currency you choose. Pay only for flights delivered. No login, no browser, no API key.
Tired of flight scrapers that time out or come back empty? This one reads Google's own results data over a plain connection in about a second a route, retries the page when Google sends it without results, and ends every run with a status line that says exactly what came back and why.
What you get
One row per itinerary:
| Field | Example |
|---|---|
route, origin, destination | LHR-JFK, LHR, JFK |
depart_date, return_date, trip_type | 2026-11-10, null, one way (the dates Google priced; what you asked for is in requested_depart_date and requested_return_date) |
origin_airport, destination_airport | the airport Google attached to a city name (Berlin gives BER) |
airline, airlines, flight_numbers | JetBlue, ["JetBlue"], ["B62220"] |
depart_airport, arrive_airport | LHR, JFK |
depart_at, arrive_at | 2026-11-10T07:25, 2026-11-10T10:32 (local times) |
duration_min, stops | 487, 0 |
layovers | [{"airport": "BCN", "name": ..., "city": "Barcelona", "minutes": 335}] |
legs | one entry per flight: number, airline, airports, times, duration, aircraft, legroom, emissions |
price, price_text, currency, price_for | 409, "GBP 409", GBP, one way |
cabin, passengers | economy, 1 |
aircraft, legroom, emissions_kg | Airbus A321neo, 32 in, 549 |
rank | best or other (Google's own grouping) |
search_url, scraped_at | the Google Flights search and the run time |
Plus one free SUMMARY row per route (flights delivered, requested, available, currency, and a reason when nothing came back).
Use cases
- Fare monitoring: schedule a daily run for your routes and chart the cheapest fare.
- Price comparison content: "cheapest flights London to New York in November" tables with live prices.
- Travel agencies and corporate travel: price a batch of trips for several dates and cabins in one run.
- Market research: which airlines fly a route, how often, with how many stops, at what price.
- Alerts: run it with your own threshold logic and message yourself when a fare drops.
How to use it
- Type your routes, one per line: airport codes (LHR-JFK), city names (London to New York, Winston-Salem to Boston) or a pasted Google Flights search link. The same search typed twice runs once.
- Pick a departure date (empty means four weeks ahead). Add a return date for round-trip totals, or leave it empty for one-way prices.
- Choose cabin (economy, business or first; Google's search does not read premium economy), number of adults and a currency if you want one.
- Start the run. Download the dataset as JSON, CSV or Excel, or read it through the API.
Prices: what they mean
- With no return date the price is a one-way fare. With a return date it is the round-trip total for the outbound flight shown, as Google displays it. The
price_forfield says which. - Prices are totals for the number of adults you set.
- Currency follows your Currency field, or the country's currency when it is empty (United Kingdom gives GBP). The code is always in
currency. - A few flights carry no fare on Google ("Price unavailable"). They are delivered with
pricenull and are free. - Dates can be up to 330 days ahead. The rows carry the dates Google priced, and the SUMMARY row says so if they differ from the request.
- Google groups results into "best" and "other" flights; both are delivered, in Google's order, with the group in
rank.
How many flights and what it costs
Google lists 10 to 60 itineraries per route and date. Each route is one search.
| Flights delivered | Cost |
|---|---|
| 100 | about $1.00 |
| 1,000 | about $10 |
Price: a small fee per run plus a fee per flight delivered with a fare. Flights without a fare and routes that return nothing are free.
Tips for bigger runs
- Run many routes in one go: they are fetched in parallel.
- To price several dates for the same route, add the route once per run and schedule runs per date, or pass each date as its own run through the API.
- For a daily fare series, schedule the actor with fixed dates so runs compare like with like.
Scheduling and API
Schedule it in the Apify console (Schedules > Create) or call it:
curl -X POST "https://api.apify.com/v2/acts/oski~google-flights-prices-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"routes": ["LHR-JFK", "LHR-LAX"], "departDate": "2026-11-10", "returnDate": "2026-11-17", "currency": "GBP"}'
If something looks wrong
| Status line says | What it means | What to do |
|---|---|---|
| Input problem: Add at least one route | The routes field was empty | Add a route like LHR-JFK |
| Input problem: "X" is not a route | A line had only one place | Type two places, origin and destination |
| Input problem: Return date must be on or after the departure date | Dates were reversed | Swap them |
| Google did not understand the route | Google could not read the places as typed | Check the spelling or use airport codes such as LHR-JFK |
| Google listed no flights for it on that date | Google has no itineraries for that pair and date | Check the airport codes or try another date |
| Google sent the page without its results three times | Google served a results-less page on every try | Run again later; it is a transient Google behaviour |
| Google showed a consent page or a captcha | Google asked for consent or refused the exit IP | Run again; if it repeats, choose the RESIDENTIAL proxy group |
| Fewer flights than listed | The route had more flights than your maximum | Raise "Flights per route" |
| Input problem: ... is a link but not a Google Flights search link | A hotel, explore or other site's link was pasted | Paste a google.com/travel/flights link or type the route |
| Input problem: ... is more than 330 days ahead | The search names month and day only | Pick a date within 330 days |
| Stopped early because the run reached its maximum cost | Your per-run cost cap was hit; unstarted routes have a SUMMARY row saying so | Raise the cap under Run options |
| I wanted one-way prices but got round trip | A return date was set | Clear the return date |
Sibling actors
- Google Hotels Prices Scraper: hotel names, nightly prices, ratings and amenities for any destination and dates.