Agent skill
tavily
Use this skill for web search, extraction, mapping, crawling, and research via Tavily’s REST API when web searches are needed and no built-in tool is available, or when Tavily’s LLM-friendly format is beneficial.
Install this agent skill to your Project
npx add-skill https://github.com/intellectronica/agent-skills/tree/main/skills/tavily
SKILL.md
Tavily
Purpose
Provide a curl-based interface to Tavily’s REST API for web search, extraction, mapping, crawling, and optional research. Return structured results suitable for LLM workflows and multi-step investigations.
When to Use
- Use when a task needs live web information, site extraction, mapping, or crawling.
- Use when web searches are needed and no built-in tool is available, or when Tavily’s LLM-friendly output (summaries, chunks, sources, citations) is beneficial.
- Use when a task requires structured search results, extraction, or site discovery from Tavily.
Required Environment
- Require
TAVILY_API_KEYin the environment. - If
TAVILY_API_KEYis missing, prompt the user to provide the API key before proceeding.
Base URL and Auth
- Base URL:
https://api.tavily.com - Authentication:
Authorization: Bearer $TAVILY_API_KEY - Content type:
Content-Type: application/json - Optional project tracking: add
X-Project-ID: <project-id>if project attribution is needed.
Tool Mapping (Tavily REST)
1) search → POST /search
Use for web search with optional answer and content extraction.
Recommended minimal request:
curl -sS -X POST "https://api.tavily.com/search" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-d '{
"query": "<query>",
"search_depth": "basic",
"max_results": 5,
"include_answer": true,
"include_raw_content": false,
"include_images": false
}'
Key parameters (all optional unless noted):
query(required): search textsearch_depth:basic|advanced|fast|ultra-fastchunks_per_source: 1–3 (advanced only)max_results: 0–20topic:general|news|financetime_range:day|week|month|year|d|w|m|ystart_date,end_date:YYYY-MM-DDinclude_answer:false|true|basic|advancedinclude_raw_content:false|true|markdown|textinclude_images: booleaninclude_image_descriptions: booleaninclude_favicon: booleaninclude_domains,exclude_domains: string arrayscountry: country name (general topic only)auto_parameters: booleaninclude_usage: boolean
Expected response fields:
answer(if requested),results[]withtitle,url,content,score,raw_content(optional),favicon(optional)response_time,usage,request_id
2) extract → POST /extract
Use for extracting content from specific URLs.
curl -sS -X POST "https://api.tavily.com/extract" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-d '{
"urls": ["https://example.com/article"],
"query": "<optional intent for reranking>",
"chunks_per_source": 3,
"extract_depth": "basic",
"format": "markdown",
"include_images": false,
"include_favicon": false
}'
Key parameters:
urls(required): array of URLsquery: rerank chunks by intentchunks_per_source: 1–5 (only whenqueryprovided)extract_depth:basic|advancedformat:markdown|texttimeout: 1–60 secondsinclude_usage: boolean
Expected response fields:
results[]withurl,raw_content,images,faviconfailed_results[],response_time,usage,request_id
3) map → POST /map
Use for generating a site map (URL discovery only).
curl -sS -X POST "https://api.tavily.com/map" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-d '{
"url": "https://docs.tavily.com",
"max_depth": 1,
"max_breadth": 20,
"limit": 50,
"allow_external": true
}'
Key parameters:
url(required)instructions: natural language guidance (raises cost)max_depth: 1–5max_breadth: 1+limit: 1+select_paths,select_domains,exclude_paths,exclude_domains: arrays of regex stringsallow_external: booleantimeout: 10–150 secondsinclude_usage: boolean
Expected response fields:
base_url,results[](list of URLs),response_time,usage,request_id
4) crawl → POST /crawl
Use for site traversal with built-in extraction.
curl -sS -X POST "https://api.tavily.com/crawl" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-d '{
"url": "https://docs.tavily.com",
"instructions": "Find all pages about the Python SDK",
"max_depth": 1,
"max_breadth": 20,
"limit": 50,
"extract_depth": "basic",
"format": "markdown",
"include_images": false
}'
Key parameters:
url(required)instructions: optional; raises cost and enableschunks_per_sourcechunks_per_source: 1–5 (only withinstructions)max_depth,max_breadth,limit: same as mapextract_depth:basic|advancedformat:markdown|textinclude_images,include_favicon,allow_externaltimeout: 10–150 secondsinclude_usage: boolean
Expected response fields:
base_url,results[]withurl,raw_content,faviconresponse_time,usage,request_id
Optional Research Workflow (Deep Investigation)
Use when a query needs multi-step analysis and citations.
create research task → POST /research
curl -sS -X POST "https://api.tavily.com/research" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-d '{
"input": "<research question>",
"model": "auto",
"stream": false,
"citation_format": "numbered"
}'
Expected response fields:
request_id,created_at,status(pending),input,model,response_time
get research status → GET /research/{request_id}
curl -sS -X GET "https://api.tavily.com/research/<request_id>" \
-H "Authorization: Bearer $TAVILY_API_KEY"
Expected response fields:
status:completedcontent: report text or structured objectsources[]:{ title, url, favicon }
streaming research (SSE)
Set "stream": true in the POST body and use curl with -N to stream events:
curl -N -X POST "https://api.tavily.com/research" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TAVILY_API_KEY" \
-d '{"input":"<question>","stream":true,"model":"pro"}'
Handle SSE events (tool calls, tool responses, content chunks, sources, done).
Usage Notes
- Treat
search,extract,map, andcrawlas the primary endpoints for discovery and content retrieval. - Return structured results with URLs, titles, and summaries for easy downstream use.
- Default to conservative parameters (
search_depth: basic,max_results: 5) unless deeper recall is needed. - Reuse consistent request bodies across calls to keep results predictable.
Error Handling
- If any request returns 401/403, prompt for or re-check
TAVILY_API_KEY. - If timeouts occur, reduce
max_depth/limitor usesearch_depth: basic. - If responses are too large, lower
max_resultsorchunks_per_source.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
raindrop-api
This skill provides comprehensive instructions for interacting with the Raindrop.io bookmarks service via its REST API using curl and jq. It covers authentication, CRUD operations for collections, raindrops (bookmarks), tags, highlights, filters, import/export, and backups. Use this skill whenever the user asks to work with their bookmarks from Raindrop.io, including reading, creating, updating, deleting, searching, or organising bookmarks and collections.
ultrathink
Display colorful ANSI art of the word "ultrathink". Use when the user says "ultrathink" or invokes /ultrathink.
nano-banana-pro
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
upstash-redis-kv
Read and write to Upstash Redis-compatible key-value store via REST API. Use when there is a need to save or retrieve key-value data, use Redis features (caching, counters, lists, sets, hashes, sorted sets, etc.) for the current interaction, or when the user explicitly asks to use Upstash or Redis.
notion-api
This skill provides comprehensive instructions for interacting with the Notion API via REST calls. This skill should be used whenever the user asks to interact with Notion, including reading, creating, updating, or deleting pages, databases, blocks, comments, or any other Notion content. The skill covers authentication, all available endpoints, pagination, error handling, and best practices.
gpt-image-1-5
Generate and edit images using OpenAI's GPT Image 1.5 model. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports text-to-image generation and image editing with optional mask. DO NOT read the image file first - use this skill directly with the --input-image parameter.
Didn't find tool you were looking for?