Tavily web
Web search, content extraction, site crawling, URL discovery, and AI-powered research using Tavily API via curl. Use when user needs web search results, current events, news, finance data, content from URLs, site-wide extraction, or multi-topic research with citations. Trigger phrases: 'search the web', 'find online', 'extract from URL', 'crawl site', 'research topic', 'latest news about', 'web search', 'tavily'.From its SKILL.md
npx -y skills add Lu1sDV/skillsmd --skill tavily-webAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.2 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it
Tavily Web Search & Research
CLI-based web search, extraction, crawling, and research via curl. No SDK installation required.
Prerequisites
TAVILY_API_KEYset in environment- Never hardcode or paste API keys into chat
Choosing the Right Method
| Need | Method | Cost | Latency |
|---|---|---|---|
| Web search results | search | 1-2 credits | Fast |
| Content from specific URLs | extract | 1+ credits | Fast |
| Content from entire site | crawl | Variable | Slow |
| URL discovery from a site | map | 1 credit | Fast |
| End-to-end research with AI synthesis | research | Higher | Minutes |
Quick Reference
search — Web Search
curl -s "https://api.tavily.com/search" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "your search query here",
"max_results": 5,
"search_depth": "basic",
"topic": "general"
}'
Key parameters:
| Parameter | Values | Notes |
|---|---|---|
query | string (max 400 chars) | Keep focused; split complex questions into sub-queries |
max_results | 1-20 (default 5) | Start small, increase if needed |
search_depth | basic (1 credit) / advanced (2 credits) | Use basic unless you need precision |
topic | general / news / finance | Determines ranking algorithm |
time_range | day / week / month / year | Filter by recency |
include_answer | true / "basic" / "advanced" | AI-generated answer from results |
include_domains | ["domain.com"] | Restrict to specific sites |
exclude_domains | ["domain.com"] | Exclude specific sites |
See references/search.md for full parameter reference and optimization tips.
extract — URL Content Extraction
curl -s "https://api.tavily.com/extract" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://example.com/page"],
"extract_depth": "basic",
"query": "focus on pricing info",
"chunks_per_source": 3,
"format": "markdown"
}'
Key parameters:
| Parameter | Values | Notes |
|---|---|---|
urls | array (max 20) | Target URLs to extract from |
extract_depth | basic / advanced | Advanced handles JS-rendered pages |
query | string | Focus extraction on specific content |
chunks_per_source | 1-5 | Control output volume |
format | markdown / text | Output format |
See references/extract.md for full reference.
crawl — Site-Wide Extraction
curl -s "https://api.tavily.com/crawl" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://docs.example.com",
"max_depth": 2,
"max_breadth": 10,
"limit": 20,
"instructions": "Find API documentation pages",
"extract_depth": "basic"
}'
Key parameters:
| Parameter | Values | Notes |
|---|---|---|
url | string | Starting URL |
max_depth | integer | How many link levels deep |
max_breadth | integer | Max links per page |
limit | integer | Total pages to extract |
instructions | string | Semantic focus for crawler |
select_paths | ["/docs/*"] | Include only matching paths |
exclude_paths | ["/blog/*"] | Skip matching paths |
See references/crawl.md for full reference.
map — URL Discovery
curl -s "https://api.tavily.com/map" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://docs.example.com"
}'
Returns a list of URLs found on the site. Useful as a precursor to targeted extract calls (Map-then-Extract pattern).
research — AI-Powered Research
# Start research task
curl -s "https://api.tavily.com/research" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "Analyze the competitive landscape for X in the SMB market",
"model": "auto",
"citation_format": "numbered"
}'
# Returns: { "request_id": "..." }
# Poll for completion
curl -s "https://api.tavily.com/research/REQUEST_ID" \
-H "Authorization: Bearer $TAVILY_API_KEY"
# Poll every 10s until status is "completed" or "failed"
Model selection: mini (focused queries, faster), pro (comprehensive, multi-topic), auto (let Tavily decide).
See references/research.md for prompting best practices and structured output schemas.
Procedure
- Formulate query — Keep under 400 chars. Split multi-part questions into 2-4 focused sub-queries.
- Pick topic —
generalfor most searches,newsfor current events (pair withtime_range),financefor market data. - Pick depth — Start with
basic(1 credit). Useadvanced(2 credits) only when precision matters. - Keep results small — Default
max_resultsto 5. Filter byscoreand domain trust. - Two-step for full text — Run
searchfirst, thenextracton 1-3 top URLs. This is cheaper and safer thaninclude_raw_content. - Cite sources — Always include
results[].urlas citations in your final answer. - For deep research — Use
researchendpoint with polling. Includecitation_formatfor automatic source attribution.
Pitfalls
| Pitfall | Mitigation |
|---|---|
include_raw_content on search explodes output | Use two-step: search then extract |
search_depth defaults may auto-upgrade to advanced | Set search_depth explicitly to control cost |
exact_match is very restrictive | Wrap phrase in quotes inside query instead |
country boosting only works with topic: "general" | Don't set country for news/finance topics |
| Crawl can be expensive on large sites | Set limit, max_depth, max_breadth conservatively |
| Research polling — don't poll too fast | Poll every 10 seconds, set a max wait timeout |
Verification
Check remaining credits:
curl -s "https://api.tavily.com/usage" \
-H "Authorization: Bearer $TAVILY_API_KEY"
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 Unauthorized | Invalid or missing API key | Verify TAVILY_API_KEY is set and valid |
| 429 Too Many Requests | Rate limit exceeded | Wait and retry; check usage quota |
| Empty results | Query too narrow or restrictive | Broaden query, remove domain filters |
| Slow response on search | advanced depth or too many results | Reduce max_results, use basic depth |
Keep request_id from responses for debugging.
What ships with it: 5 files
14.8 KB alongside SKILL.md
references/
- crawl.md2.8 KB
- extract.md2.5 KB
- research.md3.0 KB
- search.md3.6 KB
- README.md3.0 KB