Tavily Search and Extract Tools for AI Applications

Learn how to use Tavily as a web search provider or explicit plugin tools in OpenClaw. This page covers setup, authentication, and configuration for AI-ready search and content extraction.

Read this when

  • You want Tavily-backed web search
  • You need a Tavily API key
  • You want Tavily as a web_search provider
  • You want content extraction from URLs

Tavily is a search API built for AI applications. OpenClaw exposes it in two ways:

  • as the web_search provider for the generic search tool
  • as explicit plugin tools: tavily_search and tavily_extract

Tavily delivers structured results designed for LLM consumption, with adjustable search depth, topic filtering, domain filters, AI-generated answer summaries, and content extraction from URLs (including JavaScript-rendered pages).

PropertyValue
Plugin idtavily
Package@openclaw/tavily-plugin
AuthTAVILY_API_KEY env var or config apiKey
Base URLhttps://api.tavily.com (default); TAVILY_BASE_URL env var or config baseUrl to override
Timeouts30s search, 60s extract (default)
Toolstavily_search, tavily_extract

Getting started

Install the plugin

openclaw plugins install @openclaw/tavily-plugin

Get an API key

Sign up for a Tavily account at tavily.com, then create an API key from the dashboard.

Configure the plugin and provider

{
  plugins: {
    entries: {
      tavily: {
        enabled: true,
        config: {
          webSearch: {
            apiKey: "tvly-...", // optional if TAVILY_API_KEY is set
            baseUrl: "https://api.tavily.com",
          },
        },
      },
    },
  },
  tools: {
    web: {
      search: {
        provider: "tavily",
      },
    },
  },
}

Verify search runs

Run a web_search from any agent, or call tavily_search directly.

Tip

Selecting Tavily during onboarding or openclaw configure --section web installs and activates the official Tavily plugin when needed.

Tool reference

Use this when you need Tavily-specific search controls instead of the generic web_search.

ParameterTypeConstraints / defaultDescription
querystringrequiredSearch query string.
search_depthenumbasic (default), advancedadvanced is slower but higher relevance.
topicenumgeneral (default), news, financeFilter by topic family.
max_resultsinteger1-20, default 5Number of results.
include_answerbooleandefault falseInclude a Tavily AI-generated answer summary.
time_rangeenumday, week, month, yearFilter results by recency.
include_domainsstring array(none)Only include results from these domains.
exclude_domainsstring array(none)Exclude results from these domains.

Search depth tradeoff:

DepthSpeedRelevanceBest for
basicFasterHighGeneral-purpose queries (default).
advancedSlowerHighestPrecision research and fact-finding.

tavily_extract

Use this to pull clean content from one or more URLs. It handles JavaScript-rendered pages and supports query-focused chunking for targeted extraction.

ParameterTypeConstraints / defaultDescription
urlsstring arrayrequired, 1-20URLs to extract content from.
querystring(optional)Rerank extracted chunks by relevance to this query.
extract_depthenumbasic (default), advancedUse advanced for JS-heavy pages, SPAs, or dynamic tables.
chunks_per_sourceinteger1-5; requires queryChunks returned per URL. Errors if set without query.
include_imagesbooleandefault falseInclude image URLs in results.

Extract depth tradeoff:

DepthWhen to use
basicSimple pages. Try this first.
advancedJS-rendered SPAs, dynamic content, tables.

Tip

Batch larger URL lists into multiple tavily_extract calls (max 20 per request). Use query plus chunks_per_source to get only relevant content instead of full pages.

Choosing the right tool

NeedTool
Quick web search, no special optionsweb_search
Search with depth, topic, AI answerstavily_search
Extract content from specific URLstavily_extract

Note

The generic web_search tool with Tavily as provider supports query and count (up to 20 results). For Tavily-specific controls (search_depth, topic, include_answer, domain filters, time range), use tavily_search instead.

Advanced configuration

API key resolution order

The Tavily client looks up its API key in this order:

  1. plugins.entries.tavily.config.webSearch.apiKey (resolved through SecretRefs).
  2. TAVILY_API_KEY from the gateway environment.

tavily_search and tavily_extract both raise a setup error if neither is present.

Custom base URL

Override plugins.entries.tavily.config.webSearch.baseUrl, or set TAVILY_BASE_URL, if you front Tavily through a proxy. Config takes priority over the env var. The default is https://api.tavily.com.

chunks_per_source requires query

tavily_extract rejects calls that pass chunks_per_source without a query. Tavily ranks chunks by query relevance, so the parameter is meaningless without one.