Google Flights Smart Search — Natural-Language Flight Deals avatar

Google Flights Smart Search — Natural-Language Flight Deals

Pricing

$2.50 / 1,000 searches

Go to Apify Store
Google Flights Smart Search — Natural-Language Flight Deals

Google Flights Smart Search — Natural-Language Flight Deals

Type a trip in plain English and get the best flight deals across every date and destination combination. Pay per search — $2.50 / 1,000 searches; the natural-language translation is free.

Pricing

$2.50 / 1,000 searches

Rating

0.0

(0)

Developer

Danny

Danny

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Categories

Share

Type a trip in plain English and get the best flight deals across every date and destination combination — not just one search. Describe origins, multiple destinations, a month or date window, a range of nights, day-of-week rules, direct-only, cabin, budget, and passengers, all in one sentence. The request is understood, expanded into many real Google Flights searches, and the cheapest options are ranked for you.

Billing: pay per search — $2.50 / 1,000 searches. The natural-language translation is free. You set max_searches as your spend cap; you are charged only for the flight searches actually run (searches_performed in the output), never for the natural-language parsing.

What you get

  • Understands free text: "3–5 night trip from Tel Aviv to Barcelona or Athens in August, direct only".
  • Explores combinations: multiple origins × destinations × dates in the window × nights range.
  • Applies your filters: direct-only, max price, preferred/avoided airlines, departure time.
  • Returns ranked deals (cheapest first) plus the cheapest option per destination.

Input

FieldTypeRequiredDescription
querystringYesThe trip in plain English (origins, destinations, dates, nights, filters).
max_searchesintegerNoSpend cap: the most searches the fan-out runs (1–120, default 40). You are billed per search performed.
top_nintegerNoHow many ranked deals to return (1–100, default 20).
currencystringNoCurrency code for prices (default USD).

Example input

{
"query": "3-5 night trip from Tel Aviv to Barcelona or Athens in August, direct only",
"max_searches": 40,
"top_n": 20,
"currency": "USD"
}
{
"query": "one way from New York to London on 2026-08-20, business class",
"max_searches": 5
}

Output

Each dataset item is one ranked flight deal:

{
"origin": "TLV",
"destination": "ATH",
"outbound_date": "2026-08-27",
"return_date": "2026-09-01",
"nights": 5,
"price": "$293",
"price_numeric": 293,
"airline": "Aegean",
"stops": 0,
"duration": "2 hr 5 min",
"departure_time": "…",
"arrival_time": "…",
"booking_url": "https://www.google.com/travel/flights?tfs=…"
}

Fields

FieldDescription
origin / destinationAirport IATA codes for this deal.
outbound_date / return_dateDates for the itinerary (return_date null for one-way).
nightsNights at the destination (round-trip).
price / price_numericPrice as displayed and as a number, for sorting/filtering.
airlinePrimary airline.
stopsNumber of stops (0 = nonstop).
durationTotal travel time.
booking_urlGoogle Flights link for this itinerary.

Pagination

None to handle — one run explores up to max_searches combinations and returns the ranked deals directly. Raise max_searches for broader coverage (and a higher bill); lower it to cap spend.

Python client

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("good-apis/google-flights-smart-search").call(run_input={
"query": "3-5 night trip from Tel Aviv to Barcelona or Athens in August, direct only",
"max_searches": 40,
})
for deal in client.dataset(run["defaultDatasetId"]).iterate_items():
print(deal["origin"], "->", deal["destination"], deal["price"], deal["airline"])

Node.js client

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('good-apis/google-flights-smart-search').call({
query: '3-5 night trip from Tel Aviv to Barcelona or Athens in August, direct only',
max_searches: 40,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const deal of items) console.log(deal.origin, '->', deal.destination, deal.price);

Install the client with npm install apify-client.

FAQ

How am I billed? Per search performed, not per result. One free-text request expands into up to max_searches real flight searches; you pay for the number actually run (returned as searches_performed). The natural-language translation is free.

How do I control cost? With max_searches. It's a hard cap on how many searches the fan-out runs, so it's your maximum spend for the run. A simple one-way query may only need 1 search even if the cap is 40 — you're billed for the 1.

Why did I get fewer searches than my cap? Your request produced fewer combinations than the cap (e.g. a single date and destination), so only those ran.

Why fewer/zero deals than expected? Filters (direct-only, max price, airline) can exclude flights, and very tight windows may have little availability. Widen the dates/destinations or relax filters.

Do I need a login or account for the source? No — you only need your Apify token.