Tavily Tools
When to use which tool
| Need | Tool | When | | ---------------------------- | ---------------- | ------------------------------------------------------------- | | Quick web search | web_search | Basic queries, no special options needed | | Search with advanced options | tavily_search | Need depth, topic, domain filters, time ranges, or AI answers | | Extract content from URLs | tavily_extract | Have specific URLs, need their content |
web_search
Tavily powers this automatically when selected as the search provider. Use for straightforward queries where you don't need Tavily-specific options.
| Parameter | Description | | --------- | ------------------------ | | query | Search query string | | count | Number of results (1-20) |
tavily_search
Use when you need fine-grained control over search behavior.
| Parameter | Description | | ----------------- | --------------------------------------------------------------------- | | query | Search query string (keep under 400 characters) | | search_depth | basic (default, balanced) or advanced (highest relevance, slower) | | topic | general (default), news (real-time updates), or finance | | max_results | Number of results, 1-20 (default: 5) | | include_answer | Include an AI-generated answer summary (default: false) | | time_range | Filter by recency: day, week, month, or year | | include_domains | Array of domains to restrict results to | | exclude_domains | Array of domains to exclude from results |
Search depth
| Depth | Speed | Relevance | Best for | | ---------- | ------ | --------- | -------------------------------------------- | | basic | Faster | High | General-purpose queries (default) | | advanced | Slower | Highest | Precision, specific facts, detailed research |
Tips
- Keep queries under 400 characters — think search query, not prompt.
- Break complex queries into sub-queries for better results.
- Use
include_domainsto focus on trusted sources. - Use
time_rangefor recent information (news, current events). - Use
include_answerwhen you need a quick synthesized answer.
tavily_extract
Use when you have specific URLs and need their content. Handles JavaScript-rendered pages and returns clean markdown. Supports query-focused chunking for targeted extraction.
| Parameter | Description | | ------------------- | ------------------------------------------------------------------ | | urls | Array of URLs to extract (1-20 per request) | | query | Rerank extracted chunks by relevance to this query | | extract_depth | basic (default, fast) or advanced (for JS-heavy pages, tables) | | chunks_per_source | Chunks per URL, 1-5 (requires query) | | include_images | Include image URLs in results (default: false) |
Extract depth
| Depth | When to use | | ---------- | ----------------------------------------------------------- | | basic | Simple pages — try this first | | advanced | JS-rendered SPAs, dynamic content, tables, embedded content |
Tips
- Max 20 URLs per request — batch larger lists into multiple calls.
- Use
query+chunks_per_sourceto get only relevant content instead of full pages. - Try
basicfirst, fall back toadvancedif content is missing or incomplete. - If
tavily_searchresults already contain the snippets you need, skip the extract step.
Choosing the right workflow
Follow this escalation pattern — start simple, escalate only when needed:
web_search— Quick lookup, no special options needed.tavily_search— Need depth control, topic filtering, domain filters, time ranges, or AI answers.tavily_extract— Have specific URLs, need their full content or targeted chunks.
Combine search + extract when you need to find pages first, then get their full content.


