Google Flights API — $0.20/1K rows, fares & booking avatar

Google Flights API — $0.20/1K rows, fares & booking

Pricing

from $0.10 / 1,000 rows

Go to Apify Store
Google Flights API — $0.20/1K rows, fares & booking

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

Matvey

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

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 ApifyClient
client = 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

FieldExample
price / currency / priceLevel92 / USD / typical — Google's own low/typical/high verdict
airline / airlineCodes / flightNumbersJetstar / ["JQ"] / ["JQ86"]
stops / layovers[]1 / airport, city, duration
departAt / arriveAt / totalDurationMinutes2027-03-15T15:05 / 2027-03-15T18:00 / 175
legs[]Per leg: flight number, operating carrier, airports, times, aircraft, legroom, CO₂
emissionsKg / emissionsVsTypicalPercent114 / −2
bookingToken / googleFlightsUrlGoogle'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

ParameterNotes
origin / destination / departureDate / returnDateIATA codes and ISO dates; a return date prices the round trip as one total
adults / children / infantsInSeat / infantsOnLapUp to 9 passengers
cabinClasseconomy, premium economy, business, first
maxStops / airlines / excludeAirlines / maxPrice / maxDurationMinutesFilters
sortBybest (Google's ranking), price, duration, departure
currency / market / languagePoint 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
calendarDaysLowest fare per departure date, up to a year
exploreAnywhereCheapest destinations from an origin
resolveBookingOptions / resolveReturnFlightsSellers 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).