Google Flights API — $0.20/1K rows, fares & booking
Pricing
from $0.10 / 1,000 rows
Google Flights API — $0.20/1K rows, fares & booking
[$0.20/1K rows] Google Flights API: send a route and date over HTTP, get every itinerary Google shows — price, price level, airline, flight numbers, layovers, aircraft, CO2, booking options with seller prices. Batch routes, calendar, multi-city. No fee per request.
Pricing
from $0.10 / 1,000 rows
Rating
5.0
(1)
Developer
Matvey
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Google Flights API
A Google Flights API you can call from anything that speaks HTTP: send a route and a date, get back the fares Google shows — every itinerary, not the first page. No official Google Flights API exists; this endpoint talks to the JSON service behind the site, so a search answers in seconds without a browser.
$0.20 per 1,000 rows. No fee per request, no fee per search, no proxy fee. Error rows are free.
One request
curl -X POST "https://api.apify.com/v2/acts/lergassy~google-flights-api/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{"origin":"DPS","destination":"SIN","departureDate":"2027-03-15","currency":"USD"}'
The response is a JSON array of itineraries — no polling, no webhook, no SDK required.
from apify_client import ApifyClientclient = ApifyClient("<YOUR_TOKEN>")run = client.actor("lergassy/google-flights-api").call(run_input={"origin": "DPS", "destination": "SIN", "departureDate": "2027-03-15","adults": 2, "cabinClass": "business", "maxStops": "0",})for f in client.dataset(run["defaultDatasetId"]).iterate_items():print(f["price"], f["currency"], f["airline"], f["flightNumbers"], f["departAt"])
What comes back
| Field | Example |
|---|---|
price / currency / priceLevel | 92 / USD / typical — Google's own low/typical/high verdict |
airline / airlineCodes / flightNumbers | Jetstar / ["JQ"] / ["JQ86"] |
stops / layovers[] | 1 / airport, city, duration |
departAt / arriveAt / totalDurationMinutes | 2027-03-15T15:05 / 2027-03-15T18:00 / 175 |
legs[] | Per leg: flight number, operating carrier, airports, times, aircraft, legroom, CO₂ |
emissionsKg / emissionsVsTypicalPercent | 114 / −2 |
bookingToken / googleFlightsUrl | Google's token for this itinerary, and a link that reopens the search |
bookingOptions[] (optional) | Seller, price, fees and a deep link — airline and agencies such as Trip.com or Expedia |
returnOptions[] (optional) | Round trips: matched return flights with the total price for both directions |
Every search also returns a summary object: flights found, lowest price, price level, the typical price band and 60 days of price history.
Parameters
| Parameter | Notes |
|---|---|
origin / destination / departureDate / returnDate | IATA codes and ISO dates; a return date prices the round trip as one total |
adults / children / infantsInSeat / infantsOnLap | Up to 9 passengers |
cabinClass | economy, premium economy, business, first |
maxStops / airlines / excludeAirlines / maxPrice / maxDurationMinutes | Filters |
sortBy | best (Google's ranking), price, duration, departure |
currency / market / language | Point of sale: what a shopper in that country sees |
routes[] | Many route/date pairs in one request |
multiCityLegs[] | Multi-city itineraries priced leg by leg |
calendarDays | Lowest fare per departure date, up to a year |
exploreAnywhere | Cheapest destinations from an origin |
resolveBookingOptions / resolveReturnFlights | Sellers and matched returns for the top results |
Rate, scale and reliability
Requests run in parallel and each is retried against Google's endpoint with a residential proxy
included in the price; when Google refuses the endpoint the Actor falls back to the results page, and
every row carries resultsSource so you know what you got. There is no rate card per request — you
are billed for rows only, so a burst of 500 searches costs the same as 500 searches spread over a day.
Batch 200 route/date pairs into one call with routes[] instead of firing 200 calls: same price,
fewer round trips.
MCP for AI agents
The Actor is exposed over Apify's MCP server, so an agent can call it as a tool without glue code. Prompts like "cheapest nonstop DPS–SIN in March, in USD" or "is CGK–KUL on 1 November cheap right now, and who sells it" are answered from the schema, which is self-describing.
What it costs
One event, $0.0002 per row — $0.20 per 1,000, down to $0.10 on higher Store tiers. A search returning 50 itineraries costs one cent. 50,000 rows cost $10 with nothing added for requests, pages, retries or proxy. Rows that fail are never charged, so a bad route costs nothing.
Notes and limits
Times are local to each airport, as Google displays them. Round-trip prices are the total for both directions. Stays longer than about a month return fewer itineraries because most airlines cap round-trip fares — request the two legs as one-ways instead. Prices move during the day; for monitoring, schedule the call rather than caching a result.
The Actor reads publicly displayed prices and schedules without logging in, bypassing access controls or collecting personal data. Google's terms restrict automated access, and the legality of scraping public data depends on your jurisdiction and use; review the terms and consult a lawyer for commercial use.
Need an endpoint that isn't here?
Open an issue on this Actor's page — answered the same day, most requests shipped within a week.
Related: Flight Price Calendar (cheapest dates), Flight Price Tracker (fare alerts), Cheap Flight Destinations (Explore as data).