← Plugin catalog
Developer Tools
Tavily
Tavily v2.0.0
The Web Infrastructure Layer for AI Agents. A purpose-built web API for real-time search, scraping, crawling, and structured data retrieval. AI-native enterprises trust Tavily for data enrichment, research, RAG pipelines, and autonomous AI systems-ensuring fresh, accurate, and scalable intelligence.
Language: English · Automatically detected from descriptions.
Package details
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
- Package author
- Tavily
Package observed Sep 30, 2026.
Files & skills
File archives
Plugin package14 files · 26.5 KBBrowse files →
Skill instructions
tavily-best-practices4.27 KB
---
name: tavily-best-practices
description: "Build production-ready Tavily integrations with best practices baked in. Reference documentation for developers using coding assistants (Claude Code, Cursor, etc.) to implement web search, content extraction, crawling, and research in agentic workflows, RAG systems, or autonomous agents."
---
# Tavily
Tavily is a search API designed for LLMs, enabling AI applications to access real-time web data.
## Installation
**Python:**
```bash
pip install tavily-python
```
**JavaScript:**
```bash
npm install @tavily/core
```
See **[references/sdk.md](references/sdk.md)** for complete SDK reference.
## Client Initialization
```python
from tavily import TavilyClient
# Uses TAVILY_API_KEY env var (recommended)
client = TavilyClient()
#With project tracking (for usage organization)
client = TavilyClient(project_id="your-project-id")
# Async client for parallel queries
from tavily import AsyncTavilyClient
async_client = AsyncTavilyClient()
```
## Choosing the Right Method
**For custom agents/workflows:**
| Need | Method |
|------|--------|
| Web search results | `search()` |
| Content from specific URLs | `extract()` |
| Content from entire site | `crawl()` |
| URL discovery from site | `map()` |
**For out-of-the-box research:**
| Need | Method |
|------|--------|
| End-to-end research with AI synthesis | `research()` |
## Quick Reference
### search() - Web Search
```python
response = client.search(
query="quantum computing breakthroughs", # Keep under 400 chars
max_results=10,
search_depth="advanced"
)
print(response)
```
Key parameters: `query`, `max_results`, `search_depth` (ultra-fast/fast/basic/advanced), `include_domains`, `exclude_domains`, `time_range`
See **[references/search.md](references/search.md)** for complete search reference.
### extract() - URL Content Extraction
```python
# Simple one-step extraction
response = client.extract(
urls=["https://docs.example.com"],
extract_depth="advanced"
)
print(response)
```
Key parameters: `urls` (max 20), `extract_depth`, `query`, `chunks_per_source` (1-5)
See **[references/extract.md](references/extract.md)** for complete extract reference.
### crawl() - Site-Wide Extraction
```python
response = client.crawl(
url="https://docs.example.com",
instructions="Find API documentation pages", # Semantic focus
extract_depth="advanced"
)
print(response)
```
Key parameters: `url`, `max_depth`, `max_breadth`, `limit`, `instructions`, `chunks_per_source`, `select_paths`, `exclude_paths`
See **[references/crawl.md](references/crawl.md)** for complete crawl reference.
### map() - URL Discovery
```python
response = client.map(
url="https://docs.example.com"
)
print(response)
```
### research() - AI-Powered Research
```python
import time
# For comprehensive multi-topic research
result = client.research(
input="Analyze competitive landscape for X in SMB market",
model="pro" # or "mini" for focused queries, "auto" when unsure
)
request_id = result["request_id"]
# Poll until completed
response = client.get_research(request_id)
while response["status"] not in ["completed", "failed"]:
time.sleep(10)
response = client.get_research(request_id)
print(response["content"]) # The research report
```
Key parameters: `input`, `model` ("mini"/"pro"/"auto"), `stream`, `output_schema`, `citation_format`
See **[references/research.md](references/research.md)** for complete research reference.
## Detailed Guides
For complete parameters, response fields, patterns, and examples:
- **[references/sdk.md](references/sdk.md)** - Python & JavaScript SDK reference, async patterns, Hybrid RAG
- **[references/search.md](references/search.md)** - Query optimization, search depth selection, domain filtering, async patterns, post-filtering
- **[references/extract.md](references/extract.md)** - One-step vs two-step extraction, query/chunks for targeting, advanced mode
- **[references/crawl.md](references/crawl.md)** - Crawl vs Map, instructions for semantic focus, use cases, Map-then-Extract pattern
- **[references/research.md](references/research.md)** - Prompting best practices, model selection, streaming, structured output schemas
- **[references/integrations.md](references/integrations.md)** - LangChain, LlamaIndex, CrewAI, Vercel AI SDK, and framework integrations
Referenced files: 6
tavily-crawl4.37 KB
--- name: tavily-crawl description: | Crawl websites and extract content from multiple pages via the Tavily CLI. Use this skill when the user wants to crawl a site, download documentation, extract an entire docs section, bulk-extract pages, save a site as local markdown files, or says "crawl", "get all the pages", "download the docs", "extract everything under /docs", "bulk extract", or needs content from many pages on the same domain. Supports depth/breadth control, path filtering, semantic instructions, and saving each page as a local markdown file. allowed-tools: Bash(tvly *) --- # tavily crawl Crawl a website and extract content from multiple pages. Supports saving each page as a local markdown file. ## Before running Crawl requires authentication. Run the requested command directly when `tvly` is already authenticated; do not add a status check to every invocation. If `tvly` is missing, follow the [tavily-cli setup](../tavily-cli/SKILL.md#setup). If an installed CLI reports an authentication error, use `tvly login` for authentication only, or `tvly init --skip-skills` when guided verification is also useful. Browser-based OAuth is preferred when an interactive user can complete it. `--no-browser` prints the sign-in link instead of opening it, but still waits for a localhost callback. In an unattended agent or CI environment, leave authentication to the user or use a securely provided `TAVILY_API_KEY`. Do not start a second login immediately after guided setup has completed. ## When to use - You need content from many pages on a site (e.g., all `/docs/`) - You want to download documentation for offline use - Step 4 in the [workflow](../tavily-cli/SKILL.md): search → extract → map → **crawl** → research ## Quick start ```bash # Basic crawl tvly crawl "https://docs.example.com" --json # Save each page as a markdown file tvly crawl "https://docs.example.com" --output-dir ./docs/ # Deeper crawl with limits tvly crawl "https://docs.example.com" --max-depth 2 --limit 50 --json # Filter to specific paths tvly crawl "https://example.com" --select-paths "/api/.*,/guides/.*" --exclude-paths "/blog/.*" --json # Semantic focus (returns relevant chunks, not full pages) tvly crawl "https://docs.example.com" --instructions "Find authentication docs" --chunks-per-source 3 --json ``` ## Options | Option | Description | |--------|-------------| | `--max-depth` | Levels deep (1-5, default: 1) | | `--max-breadth` | Links per page (default: 20) | | `--limit` | Total pages cap (default: 50) | | `--instructions` | Natural language guidance for semantic focus | | `--chunks-per-source` | Chunks per page (1-5, requires `--instructions`) | | `--extract-depth` | `basic` (default) or `advanced` | | `--format` | `markdown` (default) or `text` | | `--select-paths` | Comma-separated regex patterns to include | | `--exclude-paths` | Comma-separated regex patterns to exclude | | `--select-domains` | Comma-separated regex for domains to include | | `--exclude-domains` | Comma-separated regex for domains to exclude | | `--allow-external / --no-external` | Include external links (default: allow) | | `--include-images` | Include images | | `--timeout` | Max wait (10-150 seconds) | | `-o, --output` | Save JSON output to file | | `--output-dir` | Save each page as a .md file in directory | | `--json` | Structured JSON output | ## Crawl for context vs. data collection **For agentic use** (feeding results to an LLM): Always use `--instructions` + `--chunks-per-source`. Returns only relevant chunks instead of full pages — prevents context explosion. ```bash tvly crawl "https://docs.example.com" --instructions "API authentication" --chunks-per-source 3 --json ``` **For data collection** (saving to files): Use `--output-dir` without `--chunks-per-source` to get full pages as markdown files. ```bash tvly crawl "https://docs.example.com" --max-depth 2 --output-dir ./docs/ ``` ## Tips - **Start conservative** — `--max-depth 1`, `--limit 20` — and scale up. - **Use `--select-paths`** to focus on the section you need. - **Use map first** to understand site structure before a full crawl. - **Always set `--limit`** to prevent runaway crawls. ## See also - [tavily-map](../tavily-map/SKILL.md) — discover URLs before deciding to crawl - [tavily-extract](../tavily-extract/SKILL.md) — extract individual pages - [tavily-search](../tavily-search/SKILL.md) — find pages when you don't have a URL
tavily-extract3.39 KB
--- name: tavily-extract description: | Extract clean markdown or text content from specific URLs via the Tavily CLI. Use this skill when the user has one or more URLs and wants their content, says "extract", "grab the content from", "pull the text from", "get the page at", "read this webpage", or needs clean text from web pages. Handles JavaScript-rendered pages, returns LLM-optimized markdown, and supports query-focused chunking for targeted extraction. Can process up to 20 URLs in a single call. allowed-tools: Bash(tvly *) --- # tavily extract Extract clean markdown or text content from one or more URLs. ## Before running Run extract directly when `tvly` is available. Extract supports capped keyless access, so do not look for an API key or authenticate before the first request. If `tvly` is missing, follow the [tavily-cli setup](../tavily-cli/SKILL.md#setup) before retrying. If the keyless cap is reached in an interactive session, run `tvly login` to open browser OAuth, then retry the original extraction once. In an unattended environment, report the cap and authentication options instead of starting an interactive flow. Do not start a second login immediately after guided setup has completed. ## When to use - You have a specific URL and want its content - You need text from JavaScript-rendered pages - Step 2 in the [workflow](../tavily-cli/SKILL.md): search → **extract** → map → crawl → research ## Quick start ```bash # Single URL tvly extract "https://example.com/article" --json # Multiple URLs tvly extract "https://example.com/page1" "https://example.com/page2" --json # Query-focused extraction (returns relevant chunks only) tvly extract "https://example.com/docs" --query "authentication API" --chunks-per-source 3 --json # JS-heavy pages tvly extract "https://app.example.com" --extract-depth advanced --json # Save to file tvly extract "https://example.com/article" -o article.json ``` ## Options | Option | Description | |--------|-------------| | `--query` | Rerank chunks by relevance to this query | | `--chunks-per-source` | Chunks per URL (1-5, requires `--query`) | | `--extract-depth` | `basic` (default) or `advanced` (for JS pages) | | `--format` | `markdown` (default) or `text` | | `--include-images` | Include image URLs | | `--timeout` | Max wait time (1-60 seconds) | | `-o, --output` | Save the JSON response to a file | | `--json` | Structured JSON output | ## Extract depth | Depth | When to use | |-------|-------------| | `basic` | Simple pages, fast — try this first | | `advanced` | JS-rendered SPAs, dynamic content, tables | ## Tips - **Max 20 URLs per request** — batch larger lists into multiple calls. - **Use `--query` + `--chunks-per-source`** to get only relevant content instead of full pages. - **Try `basic` first**, fall back to `advanced` if content is missing. - **Set `--timeout`** for slow pages (up to 60s). - **Inspect `failed_results` even after exit code 0.** A successful request can still return no extracted pages. Retry the affected URL with `advanced` when appropriate, otherwise report the per-URL failure instead of treating the request as complete. - If search results already contain the content you need (via `--include-raw-content`), skip the extract step. ## See also - [tavily-search](../tavily-search/SKILL.md) — find pages when you don't have a URL - [tavily-crawl](../tavily-crawl/SKILL.md) — extract content from many pages on a site
tavily-map3.6 KB
--- name: tavily-map description: | Discover and list all URLs on a website without extracting content, via the Tavily CLI. Use this skill when the user wants to find a specific page on a large site, list all URLs, see the site structure, find where something is on a domain, or says "map the site", "find the URL for", "what pages are on", "list all pages", or "site structure". Faster than crawling — returns URLs only. Essential when you know the site but not the exact page. Combine with extract for targeted content retrieval. allowed-tools: Bash(tvly *) --- # tavily map Discover URLs on a website without extracting content. Faster than crawling. ## Before running Map requires authentication. Run the requested command directly when `tvly` is already authenticated; do not add a status check to every invocation. If `tvly` is missing, follow the [tavily-cli setup](../tavily-cli/SKILL.md#setup). If an installed CLI reports an authentication error, use `tvly login` for authentication only, or `tvly init --skip-skills` when guided verification is also useful. Browser-based OAuth is preferred when an interactive user can complete it. `--no-browser` prints the sign-in link instead of opening it, but still waits for a localhost callback. In an unattended agent or CI environment, leave authentication to the user or use a securely provided `TAVILY_API_KEY`. Do not start a second login immediately after guided setup has completed. ## When to use - You need to find a specific subpage on a large site - You want a list of all URLs before deciding what to extract or crawl - Step 3 in the [workflow](../tavily-cli/SKILL.md): search → extract → **map** → crawl → research ## Quick start ```bash # Discover all URLs tvly map "https://docs.example.com" --json # With natural language filtering tvly map "https://docs.example.com" --instructions "Find API docs and guides" --json # Filter by path tvly map "https://example.com" --select-paths "/blog/.*" --limit 500 --json # Deep map tvly map "https://example.com" --max-depth 3 --limit 200 --json ``` ## Options | Option | Description | |--------|-------------| | `--max-depth` | Levels deep (1-5, default: 1) | | `--max-breadth` | Links per page (default: 20) | | `--limit` | Max URLs to discover (default: 50) | | `--instructions` | Natural language guidance for URL filtering | | `--select-paths` | Comma-separated regex patterns to include | | `--exclude-paths` | Comma-separated regex patterns to exclude | | `--select-domains` | Comma-separated regex for domains to include | | `--exclude-domains` | Comma-separated regex for domains to exclude | | `--allow-external / --no-external` | Include external links | | `--timeout` | Max wait (10-150 seconds) | | `-o, --output` | Save the JSON response to a file | | `--json` | Structured JSON output | ## Map + Extract pattern Use `map` to find the right page, then `extract` it. This is often more efficient than crawling an entire site: ```bash # Step 1: Find the authentication docs tvly map "https://docs.example.com" --instructions "authentication" --json # Step 2: Extract the specific page you found tvly extract "https://docs.example.com/api/authentication" --json ``` ## Tips - **Map is URL discovery only** — no content extraction. Use `extract` or `crawl` for content. - **Map + extract beats crawl** when you only need a few specific pages from a large site. - **Use `--instructions`** for semantic filtering when path patterns aren't enough. ## See also - [tavily-extract](../tavily-extract/SKILL.md) — extract content from URLs you discover - [tavily-crawl](../tavily-crawl/SKILL.md) — bulk extract when you need many pages
tavily-research3.98 KB
--- name: tavily-research description: | Conduct comprehensive AI-powered research with citations via the Tavily CLI. Use this skill when the user wants deep research, a detailed report, a comparison, market analysis, literature review, or says "research", "investigate", "analyze in depth", "compare X vs Y", "what does the market look like for", or needs multi-source synthesis with explicit citations. Returns a structured report grounded in web sources. Takes 30-120 seconds. For quick fact-finding, use tavily-search instead. allowed-tools: Bash(tvly *) --- # tavily research AI-powered deep research that gathers sources, analyzes them, and produces a cited report. Takes 30-120 seconds. ## Before running Research requires authentication. Run the requested command directly when `tvly` is already authenticated; do not add a status check to every invocation. If `tvly` is missing, follow the [tavily-cli setup](../tavily-cli/SKILL.md#setup). If an installed CLI reports an authentication error, use `tvly login` for authentication only, or `tvly init --skip-skills` when guided verification is also useful. Browser-based OAuth is preferred when an interactive user can complete it. `--no-browser` prints the sign-in link instead of opening it, but still waits for a localhost callback. In an unattended agent or CI environment, leave authentication to the user or use a securely provided `TAVILY_API_KEY`. Do not start a second login immediately after guided setup has completed. ## When to use - You need comprehensive, multi-source analysis - The user wants a comparison, market report, or literature review - Quick searches aren't enough — you need synthesis with citations - Step 5 in the [workflow](../tavily-cli/SKILL.md): search → extract → map → crawl → **research** ## Quick start ```bash # Basic research (waits for completion) tvly research "competitive landscape of AI code assistants" # Pro model for comprehensive analysis tvly research "electric vehicle market analysis" --model pro # Stream results in real-time tvly research "AI agent frameworks comparison" --stream # Save report to file tvly research "fintech trends 2025" --model pro -o fintech-report.json # JSON output for agents tvly research "quantum computing breakthroughs" --json ``` ## Options | Option | Description | |--------|-------------| | `--model` | `mini`, `pro`, or `auto` (default) | | `--stream` | Stream results in real-time | | `--no-wait` | Return request_id immediately (async) | | `--output-schema` | Path to JSON schema for structured output | | `--citation-format` | `numbered`, `mla`, `apa`, `chicago` | | `--poll-interval` | Seconds between checks (default: 10) | | `--timeout` | Max wait seconds (default: 600) | | `-o, --output` | Save the JSON response to a file | | `--json` | Structured JSON output | ## Model selection | Model | Use for | Speed | |-------|---------|-------| | `mini` | Single-topic, targeted research | ~30s | | `pro` | Comprehensive multi-angle analysis | ~60-120s | | `auto` | API chooses based on complexity | Varies | **Rule of thumb:** "What does X do?" → mini. "X vs Y vs Z" or "best way to..." → pro. ## Async workflow For long-running research, you can start and poll separately: ```bash # Start without waiting tvly research "topic" --no-wait --json # returns request_id # Check status tvly research status <request_id> --json # Wait for completion tvly research poll <request_id> --json -o result.json ``` ## Tips - **Research takes 30-120 seconds** — use `--stream` to see progress in real-time. - **Use `--model pro`** for complex comparisons or multi-faceted topics. - **Use `--output-schema`** to get structured JSON output matching a custom schema. - **For quick facts**, use `tvly search` instead — research is for deep synthesis. - Read from stdin: `echo "query" | tvly research - --json` ## See also - [tavily-search](../tavily-search/SKILL.md) — quick web search for simple lookups - [tavily-crawl](../tavily-crawl/SKILL.md) — bulk extract from a site for your own analysis
tavily-search4.04 KB
--- name: tavily-search description: | Search the web with LLM-optimized results via the Tavily CLI. Use this skill when the user wants to search the web, find articles, look up information, get recent news, discover sources, or says "search for", "find me", "look up", "what's the latest on", "find articles about", or needs current information from the internet. Returns relevant results with content snippets, relevance scores, and metadata — optimized for LLM consumption. Supports domain filtering, time ranges, and multiple search depths. allowed-tools: Bash(tvly *) --- # tavily search Web search returning LLM-optimized results with content snippets and relevance scores. ## Before running Run search directly when `tvly` is available. Search supports capped keyless access, so do not look for an API key or authenticate before the first request. If `tvly` is missing, follow the [tavily-cli setup](../tavily-cli/SKILL.md#setup) before retrying. If the keyless cap is reached in an interactive session, run `tvly login` to open browser OAuth, then retry the original search once. In an unattended environment, report the cap and authentication options instead of starting an interactive flow. Do not start a second login immediately after guided setup has completed. ## When to use - You need to find information on any topic - You don't have a specific URL yet - First step in the [workflow](../tavily-cli/SKILL.md): **search** → extract → map → crawl → research ## Quick start ```bash # Basic search tvly search "your query" --json # Advanced search with more results tvly search "quantum computing" --depth advanced --max-results 10 --json # Recent news tvly search "AI news" --time-range week --topic news --json # Domain-filtered tvly search "SEC filings" --include-domains sec.gov,reuters.com --json # Include full page content in results tvly search "react hooks tutorial" --include-raw-content --max-results 3 --json ``` ## Options | Option | Description | |--------|-------------| | `--depth` | `ultra-fast`, `fast`, `basic` (default), `advanced` | | `--max-results` | Max results, 0-20 (default: 5) | | `--topic` | `general` (default), `news`, `finance` | | `--time-range` | `day`, `week`, `month`, `year` | | `--start-date` | Results after date (YYYY-MM-DD) | | `--end-date` | Results before date (YYYY-MM-DD) | | `--include-domains` | Comma-separated domains to include | | `--exclude-domains` | Comma-separated domains to exclude | | `--country` | Boost results from country | | `--include-answer` | Include AI answer (`basic` or `advanced`) | | `--include-raw-content` | Include full page content (`markdown` or `text`) | | `--include-images` | Include image results | | `--include-image-descriptions` | Include AI image descriptions | | `--chunks-per-source` | Chunks per source (advanced/fast depth only) | | `-o, --output` | Save the JSON response to a file | | `--json` | Structured JSON output | ## Search depth | Depth | Speed | Relevance | Best for | |-------|-------|-----------|----------| | `ultra-fast` | Fastest | Lower | Real-time chat, autocomplete | | `fast` | Fast | Good | Need chunks, latency matters | | `basic` | Medium | High | General-purpose (default) | | `advanced` | Slower | Highest | Precision, specific facts | ## Tips - **Keep queries under 400 characters** — think search query, not prompt. - **Break complex queries into sub-queries** for better results. - **Use `--include-raw-content`** when you need full page text (saves a separate extract call). - **Use `--include-domains`** to focus on trusted sources. - **Use `--time-range`** for recent information. - **Verify identity-sensitive facts at the exact primary source.** For releases, versions, ownership, or similarly named projects, confirm the official repository or domain instead of trusting a generated answer or package-name match alone. - Read from stdin: `echo "query" | tvly search - --json` ## See also - [tavily-extract](../tavily-extract/SKILL.md) — extract content from specific URLs - [tavily-research](../tavily-research/SKILL.md) — comprehensive multi-source research
Technical details
- First seen
- Sep 30, 2026 · 22:02 UTC
- Last seen
- Oct 1, 2026 · 18:00 UTC
- Collection status
- Collected
plugin_asdk_app_69f271663a288191ac98f46bed7cb032
Download listing JSON