# Tavily Rust SDK
Unofficial (for now 🫠) Rust SDK for the
[Tavily Search API](https://tavily.com) - the AI-powered search engine for LLM
applications 🚀
> [!NOTE]
> Requires an API key. You can get one by signing up at
> [Tavily](https://app.tavily.com/home). The API key should be kept secure and
> not shared publicly.
## Installation
```bash
cargo add tavily
```
or add it to your `Cargo.toml`:
```toml
[dependencies]
tavily = "^2.0.0"
```
## Quick Start
```rust
use tavily::{Tavily, SearchRequest, Result};
#[tokio::main]
async fn main() -> Result<()> {
let tavily = Tavily::builder("tvly-your-api-key")
.timeout(Duration::from_secs(60))
.max_retries(5)
.build()?;
// Simple search
let results = tavily.search("Latest AI developments").await?;
// Advanced search with customization
let mut request = SearchRequest::new("tvly-your-api-key", "Breaking tech news");
request
.search_depth("advanced")
.topic("news")
.include_answer(true)
.max_results(10);
let results = tavily.call(&request).await?;
// Extract content from URLs
let urls = vec![
"https://tavily.com/",
"https://github.com/PierreLouisLetoquart",
"https://www.google.com/",
];
let results = tavily.extract(urls).await?;
Ok(())
}
```
## Features
- **Simple Search**: Quick search queries with minimal configuration
- **Answer Mode**: Get AI-generated answers along with search results
- **Advanced Customization**: Control search depth, topics, time range, and more
- **Domain Filtering**: Include or exclude specific domains
- **Rich Content**: Optional image results and descriptions
## Documentation
For detailed examples and API documentation, check out:
- [Examples Directory](./examples)
- [API Documentation](https://docs.tavily.com/docs/)
- [Error Codes](https://docs.tavily.com/docs/rest-api/api-reference#error-codes)
## License
[MIT](./LICENSE)