Choose by what the user is trying to do
Start with the smallest set of tools that covers your agent’s job. Separate names and inputs make it easier for the agent to choose the right search and provide the required information.
| If your agent needs to… | Use | SerpApi engine(s) | Required inputs |
|---|---|---|---|
| Research general websites | web_search |
google, google_light, bing, yahoo, duckduckgo |
query |
| Find current reporting | news_search |
google_news |
query |
| Discover places or businesses | maps_search |
google_maps |
query |
| Find image URLs and metadata | images_search |
google_images |
query |
| Compare products and sellers | shopping_search |
google_shopping, amazon, walmart, ebay |
query |
| Find YouTube content | videos_search |
youtube |
query |
| Search properties and rates | hotels_search |
google_hotels |
query, check_in_date, check_out_date |
| Search a known flight route | flights_search |
google_flights |
departure_id, arrival_id, outbound_date |
| Explore possible destinations | travel_explore_search |
google_travel_explore |
departure_id |
A simple decision rule
- Start with
web_searchfor broad research. - Add
news_searchwhen freshness and news sources matter. - Use
maps_search,images_search,shopping_search, orvideos_searchwhen the desired result is a place, image, product, or video rather than a webpage. - Use the three travel tools only when the prompt supplies or can infer their structured route, date, occupancy, or destination fields.
Compose capabilities with a list
Every constructor creates one tool ready for your selected SDK. Combine capabilities with the same list you already use for your other tools:
from serpapi_search_tools import maps_search, news_search, web_search
tools = [web_search(), news_search(), maps_search()]If only one supported agent SDK is installed, automatic detection creates the right tools for it. If several are installed, use the same explicit provider= on every constructor.
Search inputs versus application settings
The final column lists the information a tool needs when it runs. Your Python application separately controls settings such as engines, locale, result count, currency, API key, timeout, and tool name when it creates the tool.
Open a dedicated page above for both sets of options, then read Common configuration for settings shared by all tools.