Google Flights Scraper: Flight Prices & Price Calendar avatar

Google Flights Scraper: Flight Prices & Price Calendar

Pricing

from $0.03 / 1,000 flights

Go to Apify Store
Google Flights Scraper: Flight Prices & Price Calendar

Google Flights Scraper: Flight Prices & Price Calendar

Flight prices from Google Flights for any route and date: every flight with legs, layovers and CO2, return flights, multi-city trips, every airline and agency's booking option, a 330-day price calendar and Explore by region.

Pricing

from $0.03 / 1,000 flights

Rating

0.0

(0)

Developer

Axel Zúñiga

Axel Zúñiga

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Google Flights Scraper

Get every flight Google Flights shows for any route and date, as clean rows you can sort and filter: total price, airlines, flight numbers, stops, layovers, departure and arrival times, aircraft, legroom and CO2 emissions. Each flight also carries Google's price insights for the route: the lowest price, the typical price range, whether prices are low, typical or high right now, and, for one-way trips, the price history of the last weeks.

For round trips you get complete trips: every outbound flight with the return flights Google offers with it and the total price of each pair. Turn on booking options to see every seller Google compares (the airline and the travel agencies) with today's price, fare name, bag fees, change and refund rules, and a booking link. Switch to the price calendar to get Google's cheapest price for every departure date up to about 330 days ahead, and on round trips for every trip length you choose: a full date matrix (for example 310 dates × 3 lengths = 930 prices in about 20 seconds) to find the cheapest days to fly. Or switch to Explore to get the cheapest flight from your airport to every destination of a region (anywhere, Europe, Asia, the Caribbean...) for your dates, as on Google's Explore map. For multi-city trips (up to 10 flights in one trip) you get whole trips priced as one, with a flight for every leg and booking options for the trip, as on Google's multi-city search. All of Google's own filters are available: airlines and alliances, departure and arrival times, duration, connecting airports, layover length, bags in the price, basic economy and sort order.

What you can use it for

  • Fare tracking: schedule a daily run and get the lowest price and price level for your routes.
  • Travel apps and agents: feed live flight options into your product or AI travel assistant.
  • Market and route research: compare airlines, stops and prices between airports, cabins and dates.
  • Deal finding: catch the days when Google says prices are low for a route.
  • Flexible dates: price every departure date and trip length at once and pick the cheapest combination.
  • Flexible destinations: list where you can fly from your airport for the least money, by region.

What data you get

FieldExample
Route and datesSJO → MIA, 2026-12-10, round trip
Return flights of a round tripfor each outbound flight, the returns Google offers with it, each with the price of the pair
Multi-city tripsJFK → LHR → CDG → JFK as one trip: a flight for each leg and the price of the whole trip
Booking options (optional)Delta 409 "Main Basic", Expedia 412: fare name, first and second checked bag fee, carry-on fee, changes, refund and seat selection rules, booking link
Live pricetoday's cheapest seller quote in your cabin, and who sells it
Price761 USD, for all passengers and the whole trip
Bags included in that price0 checked, 1 carry-on
In-flight amenities per legpower and USB outlets, on-demand video, free or paid Wi-Fi, seat legroom type
Connection detailschanging airports between legs, self-transfer itineraries, arrival "+1 day"
Emissions vs typical-32 %, "lower", plus CO2 per leg
Google's price insightstypical price, typical range, low/typical/high, and the cheapest time to book when Google shows it
Airlines and flight numbersAvianca, AV 693 + AV 126
Stops and layovers1 stop, 2 hr 35 min in Bogotá (BOG)
Timesdeparts 2026-12-10T01:50, arrives 2026-12-10T11:40 (local times)
Each legairports, times, duration, aircraft (Airbus A320), legroom (28 in), operating carrier
Emissions640 kg CO2, typical for the route 276 kg
Price insightslowest 761, typical range 490 to 980, level "typical", price history (one-way)

How to use it

  1. Enter one or more departure airports and arrival airports as 3-letter codes, for example JFK and LHR. Every origin is searched against every destination.
  2. Pick the departure date. Add a return date for a round trip, or leave it empty for one way.
  3. Choose passengers, cabin class and the maximum number of stops if you need them.
  4. For the cheapest dates instead of flights, set "What to get" to Price calendar, the number of departure dates and, for round trips, the shortest and longest trip. For the cheapest destinations, set it to Explore and pick a region; no arrival airports are needed. For a trip with several flights, set it to Multi-city and list the flights of the trip, each with its airports and date.
  5. Run it and download the results as JSON, CSV, Excel or HTML, or read them through the Apify API.

Input example

{
"origins": ["SJO", "JFK"],
"destinations": ["MIA", "MAD"],
"departureDate": "2026-12-10",
"returnDate": "2026-12-17",
"adults": 2,
"cabinClass": "economy",
"maxStops": "1",
"maxReturnFlightsPerDeparture": 3,
"includeBookingOptions": true,
"airlines": ["STAR_ALLIANCE"],
"earliestDepartureHour": 6,
"currency": "USD"
}

Output example

{
"origin": "SJO",
"destination": "MIA",
"departureDate": "2026-12-10",
"returnDate": "2026-12-17",
"tripType": "round_trip",
"adults": 2,
"position": 1,
"isBestFlight": true,
"price": 801,
"currency": "USD",
"airlines": [
"Avianca"
],
"stops": 1,
"totalDurationMinutes": 530,
"departureDateTime": "2026-12-10T01:50",
"arrivalDateTime": "2026-12-10T11:40",
"layovers": [
{
"airport": "BOG",
"airportName": "El Dorado International Airport",
"city": "Bogotá",
"durationMinutes": 155,
"changesAirport": false,
"departureAirport": "BOG"
}
],
"checkedBagsIncluded": 0,
"carryOnBagsIncluded": 2,
"co2EmissionsKg": 640.0,
"typicalRouteCo2EmissionsKg": 276.0,
"segments": [
{
"flightNumber": "AV 693",
"airline": "Avianca",
"operatedBy": "Avianca Costa Rica S.a.",
"departureAirport": "SJO",
"arrivalAirport": "BOG",
"departureDateTime": "2026-12-10T01:50",
"arrivalDateTime": "2026-12-10T05:05",
"durationMinutes": 135,
"aircraft": "Airbus A320",
"legroom": "28 in",
"wifi": null
},
{
"flightNumber": "AV 126",
"airline": "Avianca",
"operatedBy": null,
"departureAirport": "BOG",
"arrivalAirport": "MIA",
"departureDateTime": "2026-12-10T07:40",
"arrivalDateTime": "2026-12-10T11:40",
"durationMinutes": 240,
"aircraft": "Airbus A320",
"legroom": "28 in",
"wifi": null
}
],
"priceInsights": null,
"returnFlights": [
{
"position": 1,
"price": 801,
"airlines": [
"Avianca"
],
"stops": 0,
"departureDateTime": "2026-12-17T12:20",
"arrivalDateTime": "2026-12-17T14:15",
"livePrice": 804,
"livePriceSeller": "Avianca",
"segments": [
{
"flightNumber": "AV 605",
"airline": "Avianca",
"operatedBy": "Avianca Costa Rica S.a.",
"departureAirport": "MIA",
"arrivalAirport": "SJO",
"departureDateTime": "2026-12-17T12:20",
"arrivalDateTime": "2026-12-17T14:15",
"durationMinutes": 175,
"aircraft": "Airbus A320",
"legroom": "28 in",
"wifi": null
}
],
"bookingOptions": [
{
"seller": "Avianca",
"isAirline": true,
"price": 804,
"fareName": null,
"checkedBagsIncluded": 0,
"carryOnBagsIncluded": 2,
"firstCheckedBagFee": 170,
"changes": null,
"refund": null,
"bookingUrl": "https://www.google.com/travel/clk/f?u=ADowPOKhK9..."
}
]
}
]
}

About prices: price is the total for all passengers. For round trips it is the price of the whole trip: next to an outbound flight it is the cheapest trip that starts with it, as Google shows it, and next to a return flight it is the price of that exact pair. livePrice is what the sellers quote right now. priceInsights is null when Google shows no insights for a search. The price level follows Google's rule: below the typical range is "low", above it is "high".

Price calendar example

Input: every departure date from November 1 for 329 days, trips of 3 to 5 nights.

{
"origins": ["JFK"],
"destinations": ["LAX"],
"departureDate": "2026-11-01",
"returnDate": "2026-11-08",
"searchMode": "priceCalendar",
"calendarDays": 329,
"minTripNights": 3,
"maxTripNights": 5
}

Output: one row per departure date and trip length (930 rows for this input), each with a link to that search on Google Flights.

{
"origin": "JFK",
"destination": "LAX",
"departureDate": "2026-11-14",
"returnDate": "2026-11-17",
"tripType": "round_trip",
"tripNights": 3,
"price": 348,
"currency": "USD",
"isCheapestDate": true,
"cabinClass": "economy",
"adults": 1,
"googleFlightsUrl": "https://www.google.com/travel/flights?tfs=..."
}

The calendar uses the same filters as the flight search (stops, airlines, times and so on), and its prices match Google's: in the run above, the cheapest date (348 USD) is exactly the lowest price of the flight search for those dates.

Explore example

Input: from New York JFK and Miami to anywhere in Europe, December 10 to 17.

{
"searchMode": "explore",
"origins": ["JFK", "MIA"],
"exploreRegion": "europe",
"departureDate": "2026-12-10",
"returnDate": "2026-12-17"
}

Output: one row per destination, cheapest first (54 destinations from JFK and 49 from Miami in this run).

{
"origin": "JFK",
"exploreRegion": "europe",
"position": 1,
"destinationName": "Reykjavík",
"destinationCountry": "Iceland",
"destination": "KEF",
"price": 534,
"currency": "USD",
"airlines": ["Icelandair"],
"stops": 0,
"durationMinutes": 345,
"latitude": 64.1469868,
"longitude": -21.9407552,
"departureDate": "2026-12-10",
"returnDate": "2026-12-17",
"googleFlightsUrl": "https://www.google.com/travel/flights?tfs=..."
}

Each price is the cheapest flight Google has for those dates: Reykjavík 534 and Dublin 580 above are exactly the lowest prices of full searches to KEF and DUB for the same dates. The link opens that search, with every flight and its booking options.

Multi-city example

Input: New York to London, four days later London to Paris, and Paris back to New York, with booking options for each trip.

{
"searchMode": "multiCity",
"legs": [
{ "origin": "JFK", "destination": "LHR", "date": "2026-12-10" },
{ "origin": "LHR", "destination": "CDG", "date": "2026-12-14" },
{ "origin": "CDG", "destination": "JFK", "date": "2026-12-18" }
],
"maxFlightsPerLeg": 2,
"includeBookingOptions": true
}

Output: one row per trip. Each first-leg flight is combined with the flights Google offers for the next leg (maxFlightsPerLeg of them, best first), and so on to the last leg, so with 2 per leg every first-leg flight gives 4 whole trips. The price is for the whole trip and all passengers, as Google shows it once every leg is chosen.

{
"origin": "JFK",
"destination": "JFK",
"tripType": "multi_city",
"legs": [
{ "origin": "JFK", "destination": "LHR", "date": "2026-12-10" },
{ "origin": "LHR", "destination": "CDG", "date": "2026-12-14" },
{ "origin": "CDG", "destination": "JFK", "date": "2026-12-18" }
],
"position": 1,
"isComplete": true,
"price": 1257,
"currency": "USD",
"airlines": ["American", "British Airways"],
"stops": 0,
"totalDurationMinutes": 1005,
"departureDateTime": "2026-12-10T18:25",
"arrivalDateTime": "2026-12-18T13:50",
"flights": [
{ "leg": 1, "position": 1, "price": 1257, "airlines": ["American"], "segments": [{ "flightNumber": "AA 100", "departureAirport": "JFK", "arrivalAirport": "LHR" }] },
{ "leg": 2, "position": 1, "price": 1257, "airlines": ["British Airways"], "segments": [{ "flightNumber": "BA 302", "departureAirport": "LHR", "arrivalAirport": "CDG" }] },
{ "leg": 3, "position": 1, "price": 1257, "airlines": ["American"], "segments": [{ "flightNumber": "AA 43", "departureAirport": "CDG", "arrivalAirport": "JFK" }] }
],
"livePrice": 1257,
"livePriceSeller": "American",
"bookingOptions": [{ "seller": "American", "price": 1257, "bookingUrl": "https://www.google.com/travel/clk/..." }],
"googleFlightsUrl": "https://www.google.com/travel/flights?tfs=..."
}

Each flight in flights carries the same details as a one-way flight (segments, layovers, times, aircraft, legroom, amenities, CO2) and the price of the trip up to that leg, as Google lists it while you pick the flights one leg at a time. The link opens the trip's own multi-city search on Google Flights.

Pricing

$0.05 per 1,000 flights stored (each return flight of a round trip, and each flight of a multi-city trip, counts as one flight), plus $0.40 per 1,000 flights with booking options when that option is on. The price calendar costs $0.05 per 1,000 dates, and Explore $0.10 per 1,000 destinations. Platform usage is included. You can cap the cost of any run with Apify's maximum charge setting; the scraper stops cleanly when the cap is reached.

Reliability

  • No browser: the scraper reads the same data Google sends to its own page, so runs are fast and cheap.
  • Requests are spread over every IP of your proxy, each at a pace Google accepts; an IP that Google slows down rests while the others continue, so long runs do not get blocked.
  • Google's random refusals are retried at once, so every flight gets its data.
  • If one route fails, the others still finish, and the run status names the route that failed.
  • Flights are saved as soon as they are ready, so a stopped run keeps everything it already collected.

FAQ

Why did a route return no flights? Google shows no flights when nothing matches the dates, stops or cabin you chose. Try allowing more stops or another date.

Can I get the return flights of a round trip? Yes. Set "Return flights per outbound flight" (maxReturnFlightsPerDeparture): 1 gives the best return for each outbound flight, so every row is a complete trip; up to 100 lists all of them. Set it to 0 to get only the outbound list, like Google's first results page.

Can I search a multi-city trip? Yes. Set "What to get" to Multi-city and list the trip's flights (2 to 10) with their airports and dates. Each row is a whole trip with a flight for every leg and the total price; "Flights per later leg" (maxFlightsPerLeg) controls how many of Google's options for each next leg are combined with each flight, and the trip's booking options are available like on a one-way search.

Which filters can I use? The same as on Google Flights: airlines or alliances to include or exclude, earliest and latest departure and arrival hours, maximum duration, connecting airports, minimum and maximum layover, lower emissions only, checked and carry-on bags in the price, exclude basic economy, and sort by best, cheapest, departure, arrival or duration. Google applies them, so the results match its page.

How far ahead can the price calendar go? Google prices departures up to about 330 days ahead; dates after that are left out. Dates Google has no price for (no flights that day) are skipped and not charged.

Why is the price history empty? Google publishes the price history only for one-way searches.

Is this legal? The scraper collects public flight listings and prices; it does not collect personal data. You are responsible for how you use the data and for complying with the laws and terms that apply to you.

Also from this developer

  • Google Hotels Scraper: hotel prices, ratings and the offer from every booking site for any city and dates.
  • Google Jobs Scraper: job listings for any search and country, with salary, full description and direct apply links.

Feedback

Found a problem or need a field that is missing? Open an issue on the Issues tab and it will be answered quickly.