Brave Search API vs Tavily in 2026
One key answers both calls.
On Nov 10, 2026, the Brave Search API costs $5 per 1,000 requests with $5 in free credits a month. Tavily costs $0.008 a credit pay as you go, 1 credit a basic search and 2 an advanced one.
SpecStream answers both calls on one key. Brave code calls https://api.specstream.ai in place of https://api.search.brave.com, and Tavily code calls https://api.specstream.ai/tavily in place of https://api.tavily.com. The bodies and the parsers stay.
Every search costs $5 per 1,000 for up to 10 results, basic or advanced. SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on WideSearch. New accounts get $10 of credit, no card.
New accounts get $10 of credit, no card. It covers 2,000 searches.
SpecStream, Brave Search API and Tavily side by side
| SpecStream | Brave Search API | Tavily | |
|---|---|---|---|
| Your code today | Runs as it is on both. Brave's GET /res/v1/web/search answers at https://api.specstream.ai with the key in X-Subscription-Token, and Tavily's POST /search at https://api.specstream.ai/tavily with the key as the Bearer token | GET https://api.search.brave.com/res/v1/web/search with a Brave key in X-Subscription-Token | POST https://api.tavily.com/search with a Tavily key as the Bearer token |
| Price per 1,000 searches | $5 for up to 10 results, on every route and every search depth. 11 to 20 results cost $0.011 a call | $5 per 1,000 requests on the Search plan. Answers costs $4 per 1,000 requests plus $5 per million input and output tokens | $8 basic and $16 advanced at $0.008 a credit pay as you go, or $0.0075 to $0.005 a credit on monthly plans from $30 for 4,000 credits to $500 for 100,000 |
| How you pay | From a balance, with no monthly plan. Credit you buy never expires, and a key's spend_cap_cents is the most it can spend | Prepaid credits: load credits, use as you go | Monthly credits. When they run out, requests stop until they reset on the first day of the month or you upgrade |
| What answers the call | The whole live web, read at the moment of the call | Brave's own search index. Search operators are written inside q | Tavily's search, which serves cached copies and fetches pages live as needed. max_age_hours sets the cached copy's age from 1 to 720 hours, or 0 to fetch live |
| What comes back | Each API's own reply. On Brave's path, web.results[] with title, url and description. On /tavily, results[] with title, url, content and score, and answer and raw_content when asked, at no extra cost | web.results[] with a title, URL and description, and up to 5 extra excerpts per result | results[] with a title, URL, content and relevance score, an optional answer and each page's raw content when asked |
| Results per call | Up to 20 on both routes. GET /v1/web-search on the same key returns up to 100 for one search, for $0.059 | count up to 20, 20 by default, and offset from 0 to 9 | max_results from 0 to 20, 10 by default |
| Volume | No limit per key and no daily limit. A busy call gets a 429 with Retry-After and charges nothing | 50 queries per second on the Search plan | Requests stop when the month's credits run out |
| Free to start | $10 of credit, no card: 2,000 searches | $5 in free credits every month | 1,000 free credits a month, no credit card |
| Published accuracy | 97.9 F-score on all 1,000 official SimpleQA Verified questions (978 correct). 64.0 item F1 and 43.4 row F1 on all 200 official WideSearch tasks. Extract API 0.908 F1 on WCXB. Method at specstream.ai/benchmarks | No accuracy score on its API page | No accuracy score on its pricing page |
| Reading pages and every match as rows | Extract API at $0.80 per 1,000 pages, and Deep Search: every match on the live web as structured rows at 5¢, 15¢ or $1 a row, with the most a run can cost quoted before it starts | Up to 5 extra excerpts with each search result | include_raw_content returns each result's page as markdown or text |
Why teams give their agent SpecStream search
Both calls on one key
A team does not have to pick one search API and rewrite the other. Each call keeps its path, its body and its parser; the address and the key change.
# Brave Search API, before and after
curl "https://api.search.brave.com/res/v1/web/search?q=open+source+vector+databases&count=10" \
-H "X-Subscription-Token: $BRAVE_API_KEY"
curl "https://api.specstream.ai/res/v1/web/search?q=open+source+vector+databases&count=10" \
-H "X-Subscription-Token: $SPECSTREAM_API_KEY"
# Tavily, before and after
curl -X POST https://api.tavily.com/search \
-H "Authorization: Bearer $TAVILY_API_KEY" -H "Content-Type: application/json" \
-d '{"query": "Who founded Mistral AI and when?", "max_results": 5}'
curl -X POST https://api.specstream.ai/tavily/search \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"query": "Who founded Mistral AI and when?", "max_results": 5}'Each call of up to 10 results is one search at $0.005. A call that names no result count gets 10 results at that price, on Brave's path and on Tavily's.
What stays the same
On Brave's path, q, count from 1 to 20, offset and freshness are read, and country, search_lang and safesearch are accepted. The reply has type, query, mixed and web.results[], and a refusal keeps Brave's ErrorResponse shape. Each result carries one description, so extra_snippets comes back empty. Every parameter is in the Brave migration guide.
On /tavily, query, max_results, include_domains, exclude_domains, time_range and topic are read. The reply has query, answer, results[] with title, url, content, score and raw_content, response_time and request_id; favicon and images are not returned. Every parameter is in the Tavily migration guide.
$5 per 1,000, basic or advanced
Brave's Search plan costs $5 per 1,000 requests from prepaid credits. On Tavily pay as you go, 1,000 basic searches cost $8 and 1,000 advanced searches $16, and requests stop when the month's credits run out. SpecStream charges $5 per 1,000 searches of up to 10 results on both routes, with page text and the answer at no extra cost, from a balance that never expires.
The most accurate web search API, in about one second
The SpecStream Search API scores a 97.9 F-score on all 1,000 official SimpleQA Verified questions, 978 of them correct, and 64.0 item F1 and 43.4 row F1 on all 200 official WideSearch tasks. Every score and its method is on the benchmarks page.
Both routes run the fast search unless the call asks for page text, the answer or more than ten results. On November 9, 2026 production took 1 to 20 fast searches a second 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. There is no limit per key and no daily limit.
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: it is not in the history, its answer is not reused for another call, and its log lines carry neither. spend_cap_cents is the most the key can spend.
curl -X POST https://api.specstream.ai/v1/account/keys \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"name": "production", "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 at $0.80 per 1,000 pages, and runs Deep Search, which returns every match for a request in plain words as structured rows at 5¢, 15¢ or $1 a row, with a source URL on every value. Save a request and it reruns hourly to yearly, with each row labeled changed, unchanged or no longer matching.
Other search APIs for an AI agent
SpecStream
The live web data engine for teams and agents. Search at $5 per 1,000 on its own API or on the Brave, Tavily, Exa, Serper, Parallel and Firecrawl routes, pages at $0.80 per 1,000, and every match as structured rows at 5¢, 15¢ or $1 a row.
Exa
$4 per 1,000 requests on lite and $7 on auto and fast. SpecStream answers Exa's POST /search at https://api.specstream.ai/exa, in Exa's JSON, at $5 per 1,000.
Serper
Google results from prepaid packs, $1.00 per 1,000 on the 50k pack, with credits valid for 6 months. SpecStream answers Serper's call at https://api.specstream.ai/serper/search, and its credit never expires.
Parallel
Search from $1 per 1,000 requests. SpecStream answers Parallel's POST /v1/search at https://api.specstream.ai/parallel in Parallel's JSON, and the same key reads pages and returns rows.
Firecrawl search
2 credits per search, from monthly plans that start at $19. SpecStream answers Firecrawl's search at https://api.specstream.ai/firecrawl. Tavily vs Firecrawl.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to move Brave and Tavily calls to SpecStream
1. Create a key under Agents & API in the workspace, with a spending limit. A new account gets $10 of credit, no card, which covers 2,000 searches.
2. Point the Brave calls at https://api.specstream.ai and put the SpecStream key in X-Subscription-Token.
import os, requests
reply = requests.get(
"https://api.specstream.ai/res/v1/web/search", # was https://api.search.brave.com
params={"q": "open source vector databases", "count": 10},
headers={"X-Subscription-Token": os.environ["SPECSTREAM_API_KEY"]},
).json()
for result in reply["web"]["results"]:
print(result["title"], result["url"])3. Point the Tavily calls at https://api.specstream.ai/tavily and send the SpecStream key as the Bearer token.
const reply = await fetch("https://api.specstream.ai/tavily/search", { // was https://api.tavily.com/search
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SPECSTREAM_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ query: "Who founded Mistral AI and when?", max_results: 5 }),
}).then((r) => r.json());
for (const result of reply.results) console.log(result.title, result.url, result.score);4. Leave the rest. Each call of up to 10 results is billed at $0.005, and the reply's specstream field carries the call's price.
Frequently asked questions
Something we didn't answer? Talk to a human
Is the Brave Search API better than Tavily?
Brave Search API vs Tavily pricing: what does each cost?
Can I use both Brave and Tavily?
https://api.specstream.ai/res/v1/web/search and Tavily calls to https://api.specstream.ai/tavily/search, each in its own JSON, from one balance.Which is faster, Brave or Tavily?
Does Tavily have a monthly limit?
Do LangChain and crewAI work with SpecStream?
langchain-tavily takes api_base_url="https://api.specstream.ai/tavily" on TavilySearch, and crewAI's BraveSearchTool takes search_url="https://api.specstream.ai/res/v1/web/search".Is there a free tier?
Sources
SpecStream wrote this page. Each figure for Brave, Tavily and the other tools comes from that company's own page.
- SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- Brave Search APIbrave.com/search/api/, read Nov 10, 2026
- Brave Web Search documentationapi-dashboard.search.brave.com/app/documentation/web-search/get-started, read Nov 10, 2026
- Brave Search API on AWS Marketplaceaws.amazon.com/marketplace/pp/prodview-qjlabherxghtq, read Nov 10, 2026
- Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 10, 2026
- Tavily pricingtavily.com/pricing, read Nov 10, 2026
- Tavily search referencedocs.tavily.com/documentation/api-reference/endpoint/search.md, read Nov 10, 2026
- Exa pricingexa.ai/docs/admin/pricing.md, read Nov 10, 2026
- Serperserper.dev/, read Nov 10, 2026
- Parallel pricingparallel.ai/pricing, read Nov 10, 2026
- Firecrawl pricingfirecrawl.dev/pricing, read Nov 10, 2026




