188 lines
5.1 KiB
Markdown
188 lines
5.1 KiB
Markdown
|
|
# Tavily API Reference
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
Tavily is a search engine optimized for Large Language Models (LLMs) and AI applications. It provides:
|
||
|
|
|
||
|
|
- **AI-optimized results**: Results specifically formatted for LLM consumption
|
||
|
|
- **Answer generation**: Optional AI-generated summaries from search results
|
||
|
|
- **Raw content extraction**: Clean, parsed HTML content from sources
|
||
|
|
- **Domain filtering**: Include or exclude specific domains
|
||
|
|
- **Image search**: Relevant images for visual context
|
||
|
|
- **Topic specialization**: General or news-focused search
|
||
|
|
|
||
|
|
## API Key Setup
|
||
|
|
|
||
|
|
1. Visit https://tavily.com and sign up
|
||
|
|
2. Generate an API key from your dashboard
|
||
|
|
3. Store the key securely:
|
||
|
|
- **Recommended**: Add to Clawdbot config under `skills.entries.tavily.apiKey`
|
||
|
|
- **Alternative**: Set `TAVILY_API_KEY` environment variable
|
||
|
|
|
||
|
|
## Search Parameters
|
||
|
|
|
||
|
|
### Required
|
||
|
|
|
||
|
|
- `query` (string): The search query
|
||
|
|
|
||
|
|
### Optional
|
||
|
|
|
||
|
|
| Parameter | Type | Default | Description |
|
||
|
|
|-----------|------|---------|-------------|
|
||
|
|
| `search_depth` | string | `"basic"` | `"basic"` (fast, ~1-2s) or `"advanced"` (comprehensive, ~5-10s) |
|
||
|
|
| `topic` | string | `"general"` | `"general"` or `"news"` (current events, last 7 days) |
|
||
|
|
| `max_results` | int | 5 | Number of results (1-10) |
|
||
|
|
| `include_answer` | bool | true | Include AI-generated answer summary |
|
||
|
|
| `include_raw_content` | bool | false | Include cleaned HTML content of sources |
|
||
|
|
| `include_images` | bool | false | Include relevant images |
|
||
|
|
| `include_domains` | list[str] | null | Only search these domains |
|
||
|
|
| `exclude_domains` | list[str] | null | Exclude these domains |
|
||
|
|
|
||
|
|
## Response Format
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"query": "What is quantum computing?",
|
||
|
|
"answer": "Quantum computing is a type of computing that uses...",
|
||
|
|
"results": [
|
||
|
|
{
|
||
|
|
"title": "Quantum Computing Explained",
|
||
|
|
"url": "https://example.com/quantum",
|
||
|
|
"content": "Quantum computing leverages...",
|
||
|
|
"score": 0.95,
|
||
|
|
"raw_content": null
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"images": ["https://example.com/image.jpg"],
|
||
|
|
"response_time": "1.67",
|
||
|
|
"usage": {
|
||
|
|
"credits": 1
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Use Cases & Best Practices
|
||
|
|
|
||
|
|
### When to Use Tavily
|
||
|
|
|
||
|
|
1. **Research tasks**: Comprehensive information gathering
|
||
|
|
2. **Current events**: News-focused queries with `topic="news"`
|
||
|
|
3. **Domain-specific search**: Use `include_domains` for trusted sources
|
||
|
|
4. **Visual content**: Enable `include_images` for visual context
|
||
|
|
5. **LLM consumption**: Results are pre-formatted for AI processing
|
||
|
|
|
||
|
|
### Search Depth Comparison
|
||
|
|
|
||
|
|
| Depth | Speed | Results Quality | Use Case |
|
||
|
|
|-------|-------|-----------------|----------|
|
||
|
|
| `basic` | 1-2s | Good | Quick lookups, simple facts |
|
||
|
|
| `advanced` | 5-10s | Excellent | Research, complex topics, comprehensive analysis |
|
||
|
|
|
||
|
|
**Recommendation**: Start with `basic`, use `advanced` for research tasks.
|
||
|
|
|
||
|
|
### Domain Filtering
|
||
|
|
|
||
|
|
**Include domains** (allowlist):
|
||
|
|
```python
|
||
|
|
include_domains=["python.org", "github.com", "stackoverflow.com"]
|
||
|
|
```
|
||
|
|
Only search these specific domains - useful for trusted sources.
|
||
|
|
|
||
|
|
**Exclude domains** (denylist):
|
||
|
|
```python
|
||
|
|
exclude_domains=["pinterest.com", "quora.com"]
|
||
|
|
```
|
||
|
|
Remove unwanted or low-quality sources.
|
||
|
|
|
||
|
|
### Topic Selection
|
||
|
|
|
||
|
|
**General** (`topic="general"`):
|
||
|
|
- Default mode
|
||
|
|
- Broader web search
|
||
|
|
- Historical and evergreen content
|
||
|
|
- Best for most queries
|
||
|
|
|
||
|
|
**News** (`topic="news"`):
|
||
|
|
- Last 7 days only
|
||
|
|
- News-focused sources
|
||
|
|
- Current events and developments
|
||
|
|
- Best for "latest", "recent", "current" queries
|
||
|
|
|
||
|
|
## Cost & Rate Limits
|
||
|
|
|
||
|
|
- **Credits**: Each search consumes credits (1 credit for basic search)
|
||
|
|
- **Free tier**: Check https://tavily.com/pricing for current limits
|
||
|
|
- **Rate limits**: Varies by plan tier
|
||
|
|
|
||
|
|
## Error Handling
|
||
|
|
|
||
|
|
Common errors:
|
||
|
|
|
||
|
|
1. **Missing API key**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"error": "Tavily API key required",
|
||
|
|
"setup_instructions": "Set TAVILY_API_KEY environment variable"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
2. **Package not installed**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"error": "tavily-python package not installed",
|
||
|
|
"install_command": "pip install tavily-python"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
3. **Invalid API key**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"error": "Invalid API key"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
4. **Rate limit exceeded**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"error": "Rate limit exceeded"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Python SDK
|
||
|
|
|
||
|
|
The skill uses the official `tavily-python` package:
|
||
|
|
|
||
|
|
```python
|
||
|
|
from tavily import TavilyClient
|
||
|
|
|
||
|
|
client = TavilyClient(api_key="tvly-...")
|
||
|
|
response = client.search(
|
||
|
|
query="What is AI?",
|
||
|
|
search_depth="advanced",
|
||
|
|
max_results=10
|
||
|
|
)
|
||
|
|
```
|
||
|
|
|
||
|
|
Install: `pip install tavily-python`
|
||
|
|
|
||
|
|
## Comparison with Other Search APIs
|
||
|
|
|
||
|
|
| Feature | Tavily | Brave Search | Perplexity |
|
||
|
|
|---------|--------|--------------|------------|
|
||
|
|
| AI Answer | ✅ Yes | ❌ No | ✅ Yes |
|
||
|
|
| Raw Content | ✅ Yes | ❌ No | ❌ No |
|
||
|
|
| Domain Filtering | ✅ Yes | Limited | ❌ No |
|
||
|
|
| Image Search | ✅ Yes | ✅ Yes | ❌ No |
|
||
|
|
| News Mode | ✅ Yes | ✅ Yes | ✅ Yes |
|
||
|
|
| LLM Optimized | ✅ Yes | ❌ No | ✅ Yes |
|
||
|
|
| Speed | Medium | Fast | Medium |
|
||
|
|
| Free Tier | ✅ Yes | ✅ Yes | Limited |
|
||
|
|
|
||
|
|
## Additional Resources
|
||
|
|
|
||
|
|
- Official Docs: https://docs.tavily.com
|
||
|
|
- Python SDK: https://github.com/tavily-ai/tavily-python
|
||
|
|
- API Reference: https://docs.tavily.com/documentation/api-reference
|
||
|
|
- Pricing: https://tavily.com/pricing
|