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_id and has no text-query input.
  • Using a metropolitan code such as LON instead of an airport IATA code or city KGMID.
  • Supplying return_date without outbound_date.
  • arrival_area_id accepts a region or country Google Knowledge Graph location ID beginning with /m/ or /g/.
  • Combining travel_mode and interest in default_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.