intellectronica/agent-skills

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.

First seen Jan 20, 2026

Installation

$ npx skills add intellectronica/agent-skills --skill tavily

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from intellectronica/agent-skills · top by installs.

npx skills add intellectronica/agent-skills

Browse all from intellectronica/agent-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 292
License LICENSE.txt
Default branch main
Open issues 1
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 7,303 B
  • docs SUMMARY.md 3,882 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 615 installs

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 TAVILYAPIKEY in the environment.
  • If TAVILYAPIKEY is missing, prompt the user to provide the API key before proceeding.

Base URL and Auth

  • Base URL: https://api.tavily.com
  • Authentication: Authorization: Bearer $TAVILYAPIKEY
  • 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 text
  • search_depth: basic | advanced | fast | ultra-fast
  • chunkspersource: 1–3 (advanced only)
  • max_results: 0–20
  • topic: general | news | finance
  • time_range: day|week|month|year|d|w|m|y
  • startdate, enddate: YYYY-MM-DD
  • include_answer: false | true | basic | advanced
  • includerawcontent: false | true | markdown | text
  • include_images: boolean
  • includeimagedescriptions: boolean
  • include_favicon: boolean
  • includedomains, excludedomains: string arrays
  • country: country name (general topic only)
  • auto_parameters: boolean
  • include_usage: boolean

Expected response fields:

  • answer (if requested), results[] with title, url, content, score, raw_content (optional), favicon (optional)
  • responsetime, usage, requestid

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 URLs
  • query: rerank chunks by intent
  • chunkspersource: 1–5 (only when query provided)
  • extract_depth: basic | advanced
  • format: markdown | text
  • timeout: 1–60 seconds
  • include_usage: boolean

Expected response fields:

  • results[] with url, raw_content, images, favicon
  • failedresults[], responsetime, 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–5
  • max_breadth: 1+
  • limit: 1+
  • selectpaths, selectdomains, excludepaths, excludedomains: arrays of regex strings
  • allow_external: boolean
  • timeout: 10–150 seconds
  • include_usage: boolean

Expected response fields:

  • baseurl, results[] (list of URLs), responsetime, 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 enables chunkspersource
  • chunkspersource: 1–5 (only with instructions)
  • maxdepth, maxbreadth, limit: same as map
  • extract_depth: basic | advanced
  • format: markdown | text
  • includeimages, includefavicon, allow_external
  • timeout: 10–150 seconds
  • include_usage: boolean

Expected response fields:

  • baseurl, results[] with url, rawcontent, favicon
  • responsetime, usage, requestid

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:

  • requestid, createdat, 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: completed
  • content: report text or structured object
  • sources[]: { 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, and crawl as the primary endpoints for discovery and content retrieval.
  • Return structured results with URLs, titles, and summaries for easy downstream use.
  • Default to conservative parameters (searchdepth: basic, maxresults: 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 TAVILYAPIKEY.
  • If timeouts occur, reduce maxdepth/limit or use searchdepth: basic.
  • If responses are too large, lower maxresults or chunksper_source.