Tavily vs Serper in 2026
One SpecStream key answers both calls.
On Nov 10, 2026, a basic Tavily search costs $0.008 pay as you go and an advanced one $0.016. Serper sells Google results in prepaid packs from $1.00 to $0.30 per 1,000 credits, valid for 6 months. Each answers in its own JSON.
SpecStream answers both calls. Point Tavily code at https://api.specstream.ai/tavily and Serper code at https://api.specstream.ai/serper, put one SpecStream key where the old key went, and the same body returns the same JSON.
Every call costs $5 per 1,000 searches of up to 10 results, from credit that never expires. The Search API scores a 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks.
New accounts get $10 of credit, no card. It covers 2,000 searches.
SpecStream, Tavily and Serper side by side
| SpecStream | Tavily | Serper | |
|---|---|---|---|
| Your code | Runs as it is. https://api.specstream.ai/tavily in place of https://api.tavily.com, https://api.specstream.ai/serper in place of https://google.serper.dev, and one SpecStream key for both | POST https://api.tavily.com/search, with the key as a Bearer token | POST https://google.serper.dev/search, with the key in X-API-KEY |
| Price per 1,000 searches | $5 for up to 10 results, on either route, basic or advanced, with page text included on the Tavily route | $8 for basic searches pay as you go ($0.008 a credit, 1 credit each). $16 for advanced, at 2 credits each | $1.00 per 1,000 credits on the 50k pack, $0.75 on 500k, $0.50 on 2.5M and $0.30 on 12.5M |
| How you pay | From a balance, with no monthly plan. Credit you buy never expires | Monthly plans at $0.0075 to $0.005 a credit: Project is $30 a month for 4,000 credits, Growth $500 a month for 100,000. Credits reset on the first day of each month | Prepaid packs with no monthly subscription. Credits are valid for 6 months |
| Free to start | $10 of credit, no card. That is 2,000 searches | 1,000 credits a month, no credit card | 2,500 free queries, no credit card |
| When the credit runs out | Nothing resets and nothing expires. A busy call answers 429 with Retry-After and is not charged | Requests stop until your credits reset or you upgrade to a paid plan | Serper stops accepting new queries when the balance reaches zero. A credit is deducted for each successful response |
| What answers the call | The whole live web, read at the moment of the call. 97.9 F-score on all 1,000 SimpleQA Verified questions (978 correct) and 64.0 item F1 on all 200 WideSearch tasks | Cached copies, with pages fetched live as needed. max_age_hours from 1 to 720 asks for a copy fetched within that many hours | Google, queried live on each call, with nothing cached. The query takes a country and a language |
| What comes back | Each route's own JSON: Tavily's results[] with title, url, content and score, or Serper's organic[] with title, link, snippet and position, and answerBox when the search has an answer | Results, with each page's content as markdown or text through include_raw_content, 0 to 20 a call | organic results with snippet and position, knowledgeGraph, peopleAlsoAsk and relatedSearches |
| Beyond search | Extract API at $0.80 per 1,000 pages, map and crawl, and Deep Search: every match on the live web as structured rows at 5¢, 15¢ or $1 a row, rerun on a schedule if you save the request | Extract at 1 credit for every 5 successful URLs on basic. Research from 4 to 250 credits a request | Google result types: images, news, maps, places, videos, shopping, scholar, patents and autocomplete |
Why teams that weigh Tavily and Serper pick SpecStream
Both calls, one key
You do not have to choose an API or rewrite one. Tavily's call and Serper's call both run on SpecStream, each on its own path and in its own JSON. The address changes, and the key.
# Tavily: before
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}'
# Tavily: after
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}'# Serper: before
curl -X POST https://google.serper.dev/search \
-H "X-API-KEY: $SERPER_API_KEY" -H "Content-Type: application/json" \
-d '{"q": "open source vector databases", "num": 10, "page": 1}'
# Serper: after
curl -X POST https://api.specstream.ai/serper/search \
-H "X-API-KEY: $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"q": "open source vector databases", "num": 10, "page": 1}'In the clients it is one setting: TavilyClient(api_key=SPECSTREAM_API_KEY, api_base_url="https://api.specstream.ai/tavily"), api_base_url on LangChain's TavilySearch, and base_url="https://api.specstream.ai/serper" on crewAI's SerperDevTool.
What stays the same
The Tavily route reads query, max_results (0 to 20), include_domains, exclude_domains, time_range, topic news with days, start_date, end_date, include_answer and include_raw_content, and returns results[] with title, url, content, score and raw_content. The Tavily migration guide lists every parameter and field.
The Serper route reads q with operators such as site:, num from 1 to 100, page and tbs date ranges, and returns organic[] with title, link, snippet and position, plus answerBox on page 1 when the search has an answer. It serves web search, and knowledgeGraph, peopleAlsoAsk and relatedSearches are not in the reply. The Serper migration guide lists every parameter and field.
One price for every call
On SpecStream a search of up to 10 results costs $0.005 on either route, Tavily basic or advanced, with page text or without. Each started block of 10 more results adds $0.006. 100,000 searches cost $500, from credit that never expires: no monthly reset as on Tavily's plans, and no 6 month limit as on Serper's packs. A busy call answers 429 with Retry-After and is not charged.
The most accurate web search API in the world, in about one second
The SpecStream Search API scores a 97.9 F-score on all 1,000 official SimpleQA Verified questions, with 978 correct. On WideSearch it scores 64.0 item F1 and 43.4 row F1 on all 200 official tasks, and the Extract API scores 0.908 F1 on WCXB. The scores and the method are at specstream.ai/benchmarks.
A call of up to 10 results without page text runs the fast search. On November 9, 2026 production answered 718 of 720 fast searches: 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.
Zero retention on any key
Create the 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.
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 a page with no text is not charged. Tavily Extract calls answer on the Tavily route, and Serper news at /serper/news. Deep Search takes a request in plain words and returns every match on the live web as structured rows at 5¢, 15¢ or $1 a row. The most a run can cost is approved before it starts.
Other search APIs teams price against Tavily and Serper
Exa
$7 per 1,000 searches on auto and $4 on lite for the first 10 results, with a free balance of $10 a month. SpecStream answers Exa's POST /search at https://api.specstream.ai/exa, in Exa's JSON, with the same key that answers Tavily and Serper.
SerpApi
Google results by monthly plan, month to month: Starter is $25 for 1,000 searches, with 200 successful searches an hour. SpecStream answers SerpApi's GET /search.json?engine=google at https://api.specstream.ai/serpapi, at $5 per 1,000 with no plan.
Brave Search API
$5 per 1,000 requests, with $5 in free credits every month and 50 queries a second. SpecStream answers Brave's GET /res/v1/web/search in Brave's JSON on the same key.
Firecrawl
Hobby costs $19 a month for 5,000 credits and Standard $99 for 100,000. SpecStream answers Firecrawl's search, scrape, map and crawl calls at https://api.specstream.ai/firecrawl, with search at $5 per 1,000 and pages at $0.80 per 1,000.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to move Tavily or Serper code to SpecStream
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. In Tavily code, set the base address to https://api.specstream.ai/tavily and send the SpecStream key as the Bearer token.
import os, requests
BASE = "https://api.specstream.ai/tavily" # was https://api.tavily.com
reply = requests.post(
f"{BASE}/search",
headers={"Authorization": f"Bearer {os.environ['SPECSTREAM_API_KEY']}"},
json={"query": "Who founded Mistral AI and when?", "max_results": 10},
timeout=30,
).json()
for result in reply["results"]:
print(result["title"], result["url"], result["score"])3. In Serper code, set the base address to https://api.specstream.ai/serper and put the same key in X-API-KEY.
const res = await fetch("https://api.specstream.ai/serper/search", { // was https://google.serper.dev
method: "POST",
headers: { "X-API-KEY": process.env.SPECSTREAM_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ q: "open source vector databases", num: 10, page: 1 }),
});
const data = await res.json();
for (const result of data.organic) console.log(result.position, result.title, result.link);4. Leave the rest. Both routes bill each call of up to 10 results at $0.005 from one balance. Serper's credits field is always 1, so read the price of a call from specstream.price_usd.
Frequently asked questions
Something we didn't answer? Talk to a human
Is Tavily better than Serper?
Tavily vs Serper pricing: what does each cost?
Can I use both Tavily and Serper?
https://api.specstream.ai/tavily and Serper code calls https://api.specstream.ai/serper, each in its own JSON, on one balance and one request history.Do Tavily and Serper have a free tier?
Do I have to rewrite my Tavily or Serper code to move?
q, num and page, and both parsers stay as they are.Which is better for an LLM app, Google results or an AI search API?
Sources
SpecStream wrote this page. Each figure for Tavily, Serper and the other APIs comes from that company's own page.
- 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
- Serper homepage and pricingserper.dev/, read Nov 10, 2026
- Exa pricingexa.ai/docs/admin/pricing.md, read Nov 10, 2026
- SerpApi pricingserpapi.com/pricing, read Nov 10, 2026
- Brave Search APIbrave.com/search/api/, read Nov 10, 2026
- Firecrawl pricingfirecrawl.dev/pricing, read Nov 10, 2026
- 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




