Skip to the page

Migrate from Tavily

The same POST /search, at $5 per 1,000.

A Tavily search costs $0.008 a credit pay as you go, and an advanced search takes 2 credits. SpecStream answers the same POST /search in Tavily's JSON for $0.005. This guide maps each parameter and each field.

The switch is one line: https://api.specstream.ai/tavily in place of https://api.tavily.com, and a SpecStream key as the Bearer token. Your code reads results[].title, url and content as before.

SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks. Every call is $5 per 1,000 searches of up to 10 results, basic or advanced.

New accounts get $10 of credit, no card. It covers 2,000 searches.

Tavily search to SpecStream, parameter by parameter and field by field

SpecStreamTavily
AddressPOST https://api.specstream.ai/tavily/searchPOST https://api.tavily.com/search
The keyA SpecStream key as Authorization: Bearer, or in api_key in the bodyA Tavily key in a Bearer authentication header
`max_results`0 to 20, and 5 when you send none. A value outside that range gets 4000 to 20, default 10
`search_depth`advanced runs the default search, basic and the rest the fast search. Both cost the same $0.005A basic search costs 1 credit and an advanced search 2 credits
`include_raw_content`true, markdown or text fills raw_content with the text of each page closest to the query, at no extra costmarkdown or true returns each result's page content as markdown
Cached or liveEvery search is read from the live web at the moment of the call. max_age_hours is accepted and not neededServes cached copies and fetches pages live as needed. max_age_hours from 1 to 720 sets the age of the cached copy, 0 fetches live
The replyquery, answer (with include_answer), images (always empty), follow_up_questions (null), results[], response_time, request_id, and usage.credits 1 with include_usageresults[] with a title, URL, content and relevance score, an optional answer, and the raw content when asked
Each resulttitle, url, content, score and raw_content, and published_date when the page has a date. score follows the rank, highest first. Not returned: favicon and imagesA title, URL, content and relevance score for each result
ErrorsTavily's {"detail": {"error": ...}}. An empty balance answers 432, the status Tavily's clients read as a limit. A 429 comes with Retry-After and charges nothingA failed URL extraction or map is not charged
Price per 1,000 searches$5 for up to 10 results, basic or advanced. 20 results cost $0.011 a call$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
When the money runs outNothing resets and nothing expires. Credit you buy stays until you use itRequests stop when the monthly credits run out, until they reset on the first day of the month or you upgrade
Free to start$10 of credit, no card, which covers 2,000 searches1,000 free credits a month, no credit card

The Tavily reference, on SpecStream

What else Tavily users price

How SpecStream scores

The same numbers as the benchmarks page, from the official tasks and scorers.

How to migrate, step by step

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. Set the base address to https://api.specstream.ai/tavily where your code has https://api.tavily.com, and send the SpecStream key as the Bearer token. In Python:

import requests

BASE = "https://api.specstream.ai/tavily"  # was https://api.tavily.com

reply = requests.post(
    f"{BASE}/search",
    headers={"Authorization": f"Bearer {SPECSTREAM_KEY}"},
    json={"query": "Who founded Mistral AI and when?", "max_results": 10, "include_answer": True},
    timeout=30,
)
reply.raise_for_status()
data = reply.json()
print(data["answer"])
for result in data["results"]:
    print(result["title"], result["url"], result["score"])

3. In JavaScript:

const res = await fetch("https://api.specstream.ai/tavily/search", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SPECSTREAM_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ query: "Who founded Mistral AI and when?", max_results: 10 }),
});
const data = await res.json();
for (const result of data.results) console.log(result.title, result.url);

4. Read 432 as an empty balance and 429 as a call to send again after Retry-After; neither is charged.

5. When your product needs every match in place of a results page, write the request in plain words. SpecStream reads it back as the conditions every row must meet and the facts to bring back, quotes the most it can cost, and delivers the rows after you approve.

Frequently asked questions

Something we didn't answer? Talk to a human

What is the best Tavily API alternative?
SpecStream, at $5 per 1,000 searches for basic and advanced calls alike. It answers Tavily's own POST /search at https://api.specstream.ai/tavily in Tavily's JSON, and scores 97.9 F-score on all 1,000 SimpleQA Verified questions.
Is there a free Tavily alternative?
SpecStream gives new accounts $10 of credit with no card, which covers 2,000 searches. The credit does not reset monthly and does not expire, and a call stopped by a 429 is never charged.
Does an advanced search cost more on SpecStream?
No. A call of up to 10 results costs $0.005 with search_depth advanced, include_answer or include_raw_content. On Tavily pay as you go an advanced search takes 2 credits at $0.008 each.
Which apps and SDKs take the SpecStream address for Tavily?
LangChain, langchain-tavily 0.2.18: pass api_base_url="https://api.specstream.ai/tavily" to TavilySearch.
Which Tavily fields does SpecStream not return?
Three: images is always an empty list, follow_up_questions is null and results carry no favicon. Each result has title, url, content, score and raw_content, and published_date when the page has a date.
Does the SpecStream route return raw_content?
Yes, with include_raw_content set to true, markdown or text. raw_content holds the text of the page closest to your query, up to about 3,500 characters, at no extra cost; the call takes about 3 s in place of 1 s.
How many results can one call return?
0 to 20, set with max_results, as on Tavily, and 5 when you send none. A call of up to 10 results costs $0.005 and a call of 20 costs $0.011.

Sources

SpecStream wrote this page. Each Tavily figure comes from Tavily's own pages, and each other provider's figure from that company's own page. The route's behavior is taken from its code.

  1. Tavily pricingtavily.com/pricing, read Nov 9, 2026
  2. Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 9, 2026
  3. Tavily search referencedocs.tavily.com/documentation/api-reference/endpoint/search.md, read Nov 9, 2026
  4. Exa pricingexa.ai/docs/admin/pricing.md, read Nov 9, 2026
  5. Brave Search APIbrave.com/search/api/, read Nov 9, 2026
  6. Serperserper.dev/, read Nov 9, 2026
  7. Parallel pricingparallel.ai/pricing, read Nov 9, 2026
  8. Parallel, migrate to Paralleldocs.parallel.ai/search/migrate-to-parallel, read Nov 9, 2026
  9. SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
  10. SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
  11. SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026