Google Flights Deals API
Google Flights Deals API - the 30 cheapest destinations from any airport as structured JSON, each with the price, the typical price for that route, the saving against it, exact dates, airline, stops, duration, and a booking link. The is_below_typical flag separates genuine bargains from merely short flights.
RECORDS30
MEDIAN LAGon demand
PARAMETERS14
TOTAL USERS3
MONTHLY ACTIVE2
TOTAL RUNS28
SUCCESS (30D)100.0%
RATINGno ratings yet
LAST MODIFIED2026-08-08
PUBLISHED2026-08
Input parameters
| PARAMETER | TYPE | REQ | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| departureId | string | no | — | 3-letter IATA code to fly from, such as JFK. There is no arrival airport; the source ignores one. |
| departureIds | array | no | — | Several departure airports in one run. |
| tripType | enum | no | — | Round trip (default) or one way. Both keep the typical-price baseline. |
| outboundDate | string | no | — | YYYY-MM-DD. Leave blank to let the feed pick cheap dates. |
| returnDate | string | no | — | YYYY-MM-DD, for a fixed round trip. |
| travelDuration | enum | no | — | Bias to a trip length: any, one week, weekend, or two weeks. |
| tripLength | string | no | — | Exact days, as a number or a range like 5-10. |
| travelClass | enum | no | — | Economy, premium economy, business, or first. |
| maxPrice | integer | no | — | Drop deals above this price. |
| maxStops | enum | no | — | Any, nonstop only, up to 1 stop, or up to 2 stops. |
| maxDurationMinutes | integer | no | — | Drop longer deals. Note this makes the source stop returning the typical-price baseline, which turns off the savings fields. |
| includeAirlines | string | no | — | Comma-separated airline codes to keep. Cannot be combined with excludeAirlines. |
| excludeAirlines | string | no | — | Comma-separated airline codes to drop. |
| maxDealsPerAirport | integer | no | — | Cap deals per airport. Default and maximum 30. |
Worked examples
{
"departureId": "LAX",
"maxStops": "nonstop",
"maxPrice": 400
}
POWER-USER TIP
—
POWER-USER TIP
—
POWER-USER TIP
—
Tasks
Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.
Code
curl
curl -X POST "https://api.apify.com/v2/acts/johnvc~google-flights-deals-api/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"departureId": "LAX", "maxStops": "nonstop", "maxPrice": 400}'
Python
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/google-flights-deals-api").call(
run_input={'departureId': 'LAX', 'maxStops': 'nonstop', 'maxPrice': 400}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item)
What people use it for
- Fill a fare newsletter with destinations that genuinely beat their typical price
- Feed a price-alert product with the underlying fare data
- Populate a travel affiliate page with photos, dates, and booking links
- Answer 'where can I go cheaply from here' for an AI travel agent
- Build your own fare history by scheduling runs and storing the rows