<!-- twin of https://specstream.ai/web-search/agno -->
# Web search in Agno: point Searxng or TavilyTools at SpecStream

Compared on Nov 10, 2026. The page: https://specstream.ai/web-search/agno

Two of Agno's web search toolkits take an address: `Searxng` by its `host` argument, and `TavilyTools` by `api_base_url` or the environment variable `TAVILY_API_BASE_URL`. SpecStream answers both. Our test on November 9, 2026 passed Agno with only the setting changed.

Set `TAVILY_API_BASE_URL=https://api.specstream.ai/tavily` and `TAVILY_API_KEY` to your SpecStream key, and your agent's code stays as it is. Or pass `host="https://api.specstream.ai/searxng/<key>"` to `Searxng`.

It is the most accurate web search API in the world: 97.9 F-score on all 1,000 SimpleQA Verified questions, at $5 per 1,000 searches. New accounts get $10 of credit, which covers 2,000 searches.

[Get an API key](https://specstream.ai/signup?src=alternatives-web-search-agno&utm_source=alternatives-md&utm_campaign=web-search-agno&returnTo=%2Fworkspace%2Fsearch%3Froute%3Dsearxng) New accounts get $10 of credit, no card. It covers 2,000 searches.

## SpecStream next to the search toolkits Agno ships, from each company's own pages and Agno's source on Nov 10, 2026

| | SpecStream | Tavily | Exa | Brave Search API |
|---|---|---|---|---|
| What you set in Agno | `TAVILY_API_BASE_URL=https://api.specstream.ai/tavily` for `TavilyTools`, or `Searxng(host="https://api.specstream.ai/searxng/<key>")` | `TAVILY_API_KEY`. With no `api_base_url`, `TavilyTools` calls `https://api.tavily.com` | An API key. `ExaTools` builds its client with the key alone, with no address argument | An API key. `BraveSearchTools` builds its client with the key alone, with no address argument |
| Price per 1,000 searches | $5, with up to 10 results a search | $0.008 a credit on pay as you go. A basic search takes 1 credit and an advanced search 2 | $4, $7 or $12, with up to 10 results, by search type | $5 per 1,000 requests |
| Free to start | $10 of credit, no card. It covers 2,000 searches | 1,000 credits a month, no card | $10 of credits every month plus a $10 onboarding bonus, no payment method | $5 in free credits every month |
| What one call counts as | One search of up to 10 results at $0.005. Each 10 results more add $0.006. A call stopped by a `429` charges nothing | Credits by the type of request: search, extract or crawl | One request at the base price for up to 10 results, plus $1 per 1,000 requests for each result above 10 | One request, up to 50 queries per second |
| What is kept from a search | Nothing, on a key with zero retention: no request text and no answer after the reply, in the history or in a log line | Its privacy page says it may use portions of your query data to improve its responses to future queries | Its privacy page says query data is used to improve its products, including by training and fine tuning models | Queries are never shared or trained on |
| Who gets zero retention | Every account. One field on the key, `zero_retention`, at the same $5 per 1,000 | Its privacy page says it keeps information for the period necessary to provide and improve the services | An Enterprise plan: its security page says to contact sales | Enterprise customers |

## Why Agno builders set SpecStream as their agent's search

### The setting, toolkit by toolkit

`TavilyTools` reads `TAVILY_API_BASE_URL` when you pass no `api_base_url`, so an agent already on Tavily moves with two environment variables and no change to its code. `Searxng` takes the address in code: it adds `/search?format=json&q=` to `host` and sends no key header, so the key goes in the address.

```
# Tavily toolkit, no code change
export TAVILY_API_BASE_URL=https://api.specstream.ai/tavily
export TAVILY_API_KEY=$SPECSTREAM_KEY
```

```
from agno.agent import Agent
from agno.tools.searxng import Searxng
from agno.tools.tavily import TavilyTools

search = Searxng(host="https://api.specstream.ai/searxng/YOUR_SPECSTREAM_KEY", fixed_max_results=5)

# or, in code instead of the environment
tavily = TavilyTools(api_base_url="https://api.specstream.ai/tavily", api_key="YOUR_SPECSTREAM_KEY")

agent = Agent(tools=[search])
```

### About one second a search, with two arguments

`Searxng` calls run on the fast search. `TavilyTools` asks for `search_depth="advanced"` and an answer by default, and SpecStream runs those on its default search, at about 3 s. Pass `search_depth="basic"` and `include_answer=False` for the fast search, at the same $0.005.

On November 9, 2026 production took 1, 5, 10 and 20 searches a second through the fast search and answered 718 of 720. The median was 0.82 s at 1 search a second and 1.07 s at 20 a second, and the 95th percentile stayed between 1.09 and 1.73 s. One account takes up to 8,800 searches a minute; a call over that gets a `429` with `Retry-After` and is not charged.

### $5 per 1,000 searches, advanced or basic

Tavily charges 2 credits for the advanced search that `TavilyTools` sends by default. On SpecStream a search of up to 10 results is $0.005 whatever its depth, and the answer comes at no extra cost. Credit you buy never expires, and there is no monthly plan.

### The most accurate web search API in the world

On SimpleQA Verified the SpecStream Search API scores 97.9 F-score on all 1,000 official questions, 978 of them correct. On WideSearch it scores 64.0 item F1 and 43.4 row F1 on all 200 official tasks. The Extract API scores 0.908 F1 on WCXB. Every score and its method is on the [benchmarks](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=web-search-agno) page.

### You decide what is kept, on each key

Create a key with `zero_retention` and a search made with it keeps no request text and no answer after the reply. `spend_cap_cents` is the most the key can spend, so an agent in a loop stops at the cap you set.

```
curl -X POST https://api.specstream.ai/v1/account/keys \
  -H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
  -d '{"name": "agno", "scopes": ["account:read", "finds:spend"], "spend_cap_cents": 500000, "zero_retention": true}'
```

### Search, pages and rows on one key

The same key reads up to 20 pages or documents a call with the [Extract API](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=web-search-agno) at $0.80 per 1,000 pages, and runs [Deep Search](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=web-search-agno): a request in plain words returns every match on the live web as rows, at 5¢, 15¢ or $1 a row, with the most a run can cost quoted before it starts. Agents connect to `https://api.specstream.ai/mcp` with OAuth or an API key.

## Other web search toolkits in Agno

### Tavily

A search API billed in credits: $0.008 a credit on pay as you go, 1 credit for a basic search and 2 for the advanced search `TavilyTools` sends by default, with 1,000 free credits a month. With `TAVILY_API_BASE_URL` on SpecStream, the same toolkit pays $0.005 a search at either depth.

### Exa

A search API at $4, $7 or $12 per 1,000 requests by search type, with $1 per 1,000 requests for each result above 10. Its privacy page says query data is used for training. On SpecStream a search is $5 per 1,000, and a key with `zero_retention` keeps nothing on every account.

### Brave Search API

A search API on Brave's own index at $5 per 1,000 requests, with $5 in free credits every month and up to 50 queries per second. SpecStream costs the same $5 per 1,000, searches the whole live web, and scores 97.9 F-score on SimpleQA Verified.

### Serper

Google results as JSON, sold in credit packs from $50 for 50,000, valid for 6 months. Agno's Serper toolkit fixes its address at `https://google.serper.dev`. SpecStream credit never expires, and `Searxng` on our address searches at $5 per 1,000.

## How to set SpecStream as web search in Agno

1. Create a key under Agents & API in the workspace. A new account gets $10 of credit, no card, which covers 2,000 searches.

2. Check the key with the call `TavilyTools` will make.

```
import requests

reply = requests.post(
    "https://api.specstream.ai/tavily/search",
    headers={"Authorization": "Bearer YOUR_SPECSTREAM_KEY"},
    json={"query": "open source vector databases", "max_results": 5},
).json()

for result in reply["results"]:
    print(result["title"], result["url"], result["content"])
```

3. Set `TAVILY_API_BASE_URL=https://api.specstream.ai/tavily` and `TAVILY_API_KEY` to your SpecStream key where the agent runs. For `Searxng`, pass `host="https://api.specstream.ai/searxng/<key>"`.

4. Run the agent. Each search is billed as one search on your key, inside the spending limit the key carries.

When an agent needs a whole dataset in place of a results page, write the request in plain words. SpecStream reads it back as the conditions every row must meet, quotes the most it can cost, and delivers the rows after you approve.

## Frequently asked questions

### How do I add web search to an Agno agent?

Add `TavilyTools` or `Searxng` to the agent's tools and point it at SpecStream: `TAVILY_API_BASE_URL=https://api.specstream.ai/tavily`, or `Searxng(host="https://api.specstream.ai/searxng/<key>")`. Our test on November 9, 2026 passed Agno with only the setting changed, and each search costs $0.005.

### Which environment variable sets the Tavily address in Agno?

`TAVILY_API_BASE_URL`. `TavilyTools` reads it when no `api_base_url` is passed, and reads the key from `TAVILY_API_KEY`.

### Do I need to host SearXNG for Agno's Searxng toolkit?

No. Pass `host="https://api.specstream.ai/searxng/<key>"` and SpecStream answers in SearXNG's JSON, at a median of 0.82 s a search on production.

### What is the best web search tool for Agno agents?

SpecStream, at 97.9 F-score on all 1,000 SimpleQA Verified questions and $5 per 1,000 searches. It answers Agno's `TavilyTools` and `Searxng` at their own address settings, so the agent's code stays as it is.

### How much does web search in Agno cost with SpecStream?

$0.005 a search of up to 10 results, at basic or advanced depth, with the answer included. A call stopped by a `429` charges nothing, and new accounts get $10 of credit, no card.

### Why is my Agno Tavily search slower than one second?

`TavilyTools` asks for an advanced search with an answer by default, which SpecStream runs on its default search in about 3 s. Pass `search_depth="basic"` and `include_answer=False` and the call runs on the fast search, at a median of 0.82 s.

## Sources

SpecStream wrote this page. Each figure on another provider comes from that company's own page, and each Agno setting from Agno's source on GitHub.

- [Agno Searxng toolkit](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/searxng.py), read Nov 10, 2026
- [Agno Tavily toolkit](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/tavily.py), read Nov 10, 2026
- [Agno Exa toolkit](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/exa.py), read Nov 10, 2026
- [Agno Brave toolkit](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/bravesearch.py), read Nov 10, 2026
- [Agno Serper toolkit](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/serper.py), read Nov 10, 2026
- [Tavily pricing](https://www.tavily.com/pricing), read Nov 9, 2026
- [Tavily search endpoint](https://docs.tavily.com/documentation/api-reference/endpoint/search), read Nov 9, 2026
- [Tavily privacy policy](https://www.tavily.com/privacy), read Nov 9, 2026
- [Exa pricing](https://exa.ai/pricing), read Nov 9, 2026
- [Exa privacy policy](https://exa.ai/privacy), read Nov 9, 2026
- [Exa security](https://exa.ai/docs/reference/security), read Nov 9, 2026
- [Brave Search API](https://brave.com/search/api/), read Nov 9, 2026
- [Serper](https://serper.dev/), read Nov 9, 2026
- [SpecStream benchmarks](https://specstream.ai/benchmarks), read Nov 10, 2026
- [SpecStream pricing](https://specstream.ai/pricing), read Nov 10, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 10, 2026
