Web Search
Search the web and return top results with titles, URLs, and snippets. Essential for giving AI agents real-time access to information beyond their training data.
Supports two providers:
- Tavily (recommended) — purpose-built for AI agents with optional advanced search depth
- SerpAPI — Google search results via SerpAPI
Sign up for a search provider and add your API key as an environment variable on the Env Vars page:
| Variable | Description |
|----------|-------------|
| SEARCH_API_KEY | Tavily API key (tvly-...) or SerpAPI key |
Set Provider in the node settings to match your key. The provider setting is excluded from the AI agent tool schema — configure it once on the node, not per tool call.
Web Search has a single search operation. Configure the provider and query in the node settings (or via tool arguments when connected to an agent).
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| provider | enum | Yes | tavily (recommended) or serpapi. Excluded from agent tool schema. |
| query | string | Yes | Search query. Supports {{ }} bindings. |
| max_results | number | No | Maximum number of results to return (default 5). |
| search_depth | enum | No | Tavily only: basic or advanced (default basic). |
Tavily — set provider to tavily. Supports search_depth:
basic— fast, general web searchadvanced— deeper search with more comprehensive results
SerpAPI — set provider to serpapi. Uses Google search results. search_depth is ignored.
Connect a Web Search node to an AI Agent Tools handle to give the agent live web access.
The agent supplies query and optionally max_results as tool arguments. The provider is configured on the node itself and is not exposed to the agent — choose Tavily or SerpAPI in the node settings before connecting it.
Example agent use cases:
- Answering questions about current events or recent product releases
- Looking up documentation or API references during a conversation
- Verifying facts before responding to a user
The search emits a result object on the result handle, accessible downstream as {{ web_search.* }}:
| Field | Type | Description |
|-------|------|-------------|
| success | boolean | Whether the search succeeded |
| results | array | Search results, each with title, url, and snippet |
| query | string | The query that was searched |
| error | string | Error message if success is false |
{
"success": true,
"query": "Tensorify workflow automation",
"results": [
{
"title": "Tensorify — Visual Backend Builder",
"url": "https://tensorify.io",
"snippet": "Build REST APIs and automations visually..."
}
],
"error": null
}
Access results in downstream nodes:
{{ web_search.results[0].title }}
{{ web_search.results[0].url }}
{{ web_search.results[0].snippet }}
