Destination discovery with travel_explore_search
travel_explore_search uses Google Travel Explore to find possible destinations and fares from a departure location. Only departure_id is required, so an agent can start broad and add region, date, cabin, or passenger constraints when the user supplies them.
When to use it
Use it for questions such as “Where can I fly from JFK for a long weekend?” or “Which European cities fit this budget?” Choose flights_search once both origin and destination are known, and hotels_search after a destination and stay window are selected.
Quick example
from serpapi_search_tools import travel_explore_search
destination_tool = travel_explore_search(
default_params={"currency": "USD", "gl": "us"},
)
agent_tools = [destination_tool]Example broad invocation:
{"departure_id": "JFK", "adults": 1, "travel_class": "economy"}Inputs the agent can provide
| Field | Type | Required | Default and constraints |
|---|---|---|---|
departure_id |
string | yes | Airport IATA code such as JFK, or an exact city Google Knowledge Graph location ID (KGMID) beginning with /m/ or /g/, such as /m/04jpl for London; metropolitan codes such as LON are unsupported; see the Google Travel Explore API; comma-separated values are supported |
arrival_id |
string | no | Specific arrival airport IATA code or city KGMID beginning with /m/ or /g/, such as /m/05qtj for Paris; use arrival_area_id for a region or country; mutually exclusive with it |
arrival_area_id |
string | no | Region or country KGMID beginning with /m/ or /g/, such as /m/02j9z for Europe; use arrival_id for an airport or city; mutually exclusive with it |
outbound_date |
date string | no | Future date in YYYY-MM-DD format; omit for flexible-date exploration |
return_date |
date string | no | Requires outbound, cannot be earlier, and should be omitted for one-way or flexible-date exploration |
travel_class |
enum | no | economy; also premium_economy, business, or first |
adults |
integer | no | 1; at least 1 |
children |
integer | no | 0; cannot be negative |
infants_in_seat |
integer | no | 0; cannot be negative |
infants_on_lap |
integer | no | 0; cannot be negative |
Configure the tool
| Constructor option | Default | Use it for |
|---|---|---|
provider |
"auto" |
Detect one installed SDK or select one explicitly |
default_params |
None |
Fix currency, locale, price, stops, duration, or supported interest filters |
mode |
compact |
Return the main destination result section; use SearchResultMode.FULL to keep supporting sections and all fields on retained results |
response_format |
markdown |
Return Markdown by default, or use SearchResultFormat.JSON for structured fields |
result_limit |
50 |
Maximum destinations retained in either mode |
api_key |
None |
Override environment key lookup |
timeout |
None |
Set the built-in client timeout |
client |
None |
Add caching, logging, testing, or response reduction |
include_examples |
True |
Add a destination-discovery hint to the description |
name |
"travel_explore_search" |
Rename a configured discovery capability |
Useful SerpApi parameters
Currency and market are common application defaults:
from serpapi_search_tools import travel_explore_search
us_destination_ideas = travel_explore_search(
default_params={"currency": "USD", "gl": "us", "hl": "en"},
name="us_destination_ideas",
)SerpApi supports more discovery constraints, including price, stops, duration, travel mode, and interest settings. Use the official reference for exact values. The package rejects travel_mode combined with interest because those modes are incompatible.
What comes back
Both modes return up to result_limit destinations (50 by default). Destination entries may include place names, countries, airports, flight prices, durations, stops, dates, images, and location data. Use full mode when application code needs supporting response sections or additional result fields. Add result_limit=None to keep every returned destination.
Common mistakes
- Travel Explore starts from
departure_idand has no text-query input. - Using a metropolitan code such as
LONinstead of an airport IATA code or city KGMID. - Supplying
return_datewithoutoutbound_date. arrival_area_idaccepts a region or country Google Knowledge Graph location ID beginning with/m/or/g/.- Combining
travel_modeandinterestindefault_params. - Using Explore for a route that is already known; use flights_search for a tighter schema.
Official SerpApi documentation
See the destination ideas recipe, the direct travel example, and the OpenAI Agents travel planner.