AnySearch API compatible
Change the address, keep the code.
SpecStream answers AnySearch's POST /v1/search and POST /v1/extract in AnySearch's own JSON. A search of up to 10 results costs $0.001 and a page read $0.0008. AnySearch Pro lists $3 per 1,000 calls, for a search or for a page.
The switch is one address: https://api.specstream.ai/anysearch in place of https://api.anysearch.com, with a SpecStream key as the Bearer token. Your code reads data.results[] 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. New accounts get $10 of credit, no card.
New accounts get $10 of credit, no card. It covers 10,000 searches or 12,500 pages.
AnySearch to SpecStream, parameter by parameter and field by field
| SpecStream | AnySearch | |
|---|---|---|
| Search address | POST https://api.specstream.ai/anysearch/v1/search | POST https://api.anysearch.com/v1/search |
| Extract address | POST https://api.specstream.ai/anysearch/v1/extract | POST https://api.anysearch.com/v1/extract |
| The key | A SpecStream key as Authorization: Bearer, on every call | An AnySearch key as Authorization: Bearer. A call with no header is limited by IP address and counted against the daily free quota |
| `max_results` | 1 to 10, 10 when you send none | 1 to 10, default 10 |
| `format` | json or markdown fills each result's content with the text of its page closest to the query, at no extra cost | json or markdown. Markdown changes the result content, and the outer response is still JSON |
| `zone`, `language` | cn sets the country of the search to China. language sets its language | cn or intl, and a preferred language such as zh-CN or en |
| Extract | One URL a call, content up to 50,000 characters, $0.0008 a page. A page that cannot be read answers 422 and is not charged | One URL a call, content limited to 50,000 characters. One call for valid content |
| Price | $0.001 a search of up to 10 results and $0.0008 a page read | Pro: $3 per 1,000 calls, listed down from $5, sold as a one-time call pack. A search is one call and a page is one call |
| Free to start | $10 of credit once, no card: 10,000 searches or 12,500 pages | 1,000 calls a day. A spent day answers HTTP 402 until 00:00 UTC |
The AnySearch API reference, on SpecStream
The call, before and after
# Before
curl -X POST https://api.anysearch.com/v1/search \
-H "Authorization: Bearer $ANYSEARCH_API_KEY" -H "Content-Type: application/json" \
-d '{"query": "Global AI Semiconductor Industry Analysis", "max_results": 5}'
# After
curl -X POST https://api.specstream.ai/anysearch/v1/search \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"query": "Global AI Semiconductor Industry Analysis", "max_results": 5}'The body and the parser stay. The base address changes to https://api.specstream.ai/anysearch, and the key changes. Every parameter and field below is what the route answers on November 13, 2026.
Every parameter the route uses
Used in the search: query (required), max_results (1 to 10, 10 when you send none), language, and zone (cn sets the country of the search to China).
Used to shape the reply: format set to json or markdown reads each result's page and fills content with the text of that page closest to the query. The price stays $0.001. Without format, a result has title, url and snippet.
tag and params choose AnySearch's vertical sources. The route answers the general search: send no tag, or a tag of the general domain. A call that names another capability, such as finance.quote, answers 400 and is not charged.
Every field that comes back
The reply is AnySearch's envelope: code 0, message success, request_id and data. data.results is the list, each result with title, url, snippet, and content when you send format. data.metadata has total_results and search_time_ms.
One field is added beside data: specstream, with what the Search API returns beyond AnySearch's fields, including the call's price_usd. A parser that reads data never sees it.
Extract
curl -X POST https://api.specstream.ai/anysearch/v1/extract \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"url": "https://www.python.org/downloads/"}'The reply's data has url, title and content. url is the address you sent, also after a redirect, and content stops at 50,000 characters, both as on AnySearch. Each page read is one Extract API page at $0.0008. A page that cannot be read answers 422 with error_code extract_failed and is not charged.
AnySearch's extract takes one URL a request and does not read PDF files. SpecStream's own Extract API at POST /v1/extract reads up to 20 pages or documents a call, PDF, Word and Excel included, on the same key.
Errors in AnySearch's form
A refusal answers code -1 with message, request_id and error_code, and keeps its HTTP status. A missing or wrong key is 401. A bad field is 400. An empty balance is 402. When search is busy, the route answers 429 with Retry-After. None of them is charged.
AnySearch's docs warn that its HTTP 402 may contain a password and an API key, and tell clients to keep the response body out of logs. A 402 from SpecStream says the balance is empty and holds no credentials, so it can be logged whole.
What 100,000 questions cost on each
On AnySearch Pro a search is one call and each page read is one more, at $3 per 1,000 calls. On SpecStream a search of up to 10 results costs $0.001 and a page $0.0008. An agent that searches once and reads three pages per question pays $1,200 per 100,000 questions on AnySearch Pro and $340 on SpecStream.
The compare page has the plans side by side: AnySearch alternatives.
In an MCP client
Replace https://api.anysearch.com/mcp with https://api.specstream.ai/mcp. SpecStream's server runs over Streamable HTTP with OAuth or an API key, and the agent searches, reads pages and runs Deep Search from the same balance. Setup for each client is in the MCP docs.
The most accurate web search API
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 page.
You decide what is kept, on each key
Create the 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 a page with no text is not charged. Deep Search 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. The most a run can cost is approved before it starts.
What else AnySearch users price
Exa
A search API on Exa's own index, at $7 per 1,000 requests on auto and $4 on lite for up to 10 results, with its own request and reply. SpecStream answers Exa's call as well, at https://api.specstream.ai/exa, for $0.001 a search.
Tavily
A search API sold in credits at $0.008 each pay as you go: a basic search takes 1 credit and an advanced search 2. SpecStream answers Tavily's POST /search at https://api.specstream.ai/tavily for $0.001 a basic search.
Brave Search API
A search API on Brave's own index at $5 per 1,000 requests and 50 queries per second. SpecStream answers Brave's call at https://api.specstream.ai/res/v1/web/search at $1 per 1,000, a fifth of Brave's rate.
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 10,000 searches or 12,500 pages.
2. Set the base address to https://api.specstream.ai/anysearch where your code has https://api.anysearch.com, and send the SpecStream key as the Bearer token. In Python:
import os
import requests
BASE = "https://api.specstream.ai/anysearch" # was https://api.anysearch.com
HEADERS = {"Authorization": f"Bearer {os.environ['SPECSTREAM_API_KEY']}"}
response = requests.post(
f"{BASE}/v1/search",
headers=HEADERS,
json={"query": "Global AI Semiconductor Industry Analysis", "max_results": 5, "format": "markdown"},
timeout=30,
)
response.raise_for_status()
for result in response.json()["data"]["results"]:
print(result["title"], result["url"])
page = requests.post(f"{BASE}/v1/extract", headers=HEADERS, json={"url": "https://www.python.org/downloads/"}, timeout=60)
print(page.json()["data"]["content"][:500])3. In JavaScript:
const response = await fetch("https://api.specstream.ai/anysearch/v1/search", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SPECSTREAM_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ query: "Global AI Semiconductor Industry Analysis", max_results: 5 }),
});
const result = await response.json();
for (const item of result.data.results) console.log(item.title, item.url);4. Send the key on every call. A call with no Authorization header answers 401. Read 402 as an empty balance and 429 as a call to send again after Retry-After. None of them 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
Is there an AnySearch compatible API?
POST /v1/search and POST /v1/extract at https://api.specstream.ai/anysearch in AnySearch's JSON, for $0.001 a search of up to 10 results and $0.0008 a page read.How do I migrate from the AnySearch API?
https://api.specstream.ai/anysearch in place of https://api.anysearch.com, and a SpecStream key as the Bearer token. The body and the code that reads data.results[] stay as they are.How much does the AnySearch API cost?
Do AnySearch's vertical tags work?
tag or a tag of the general domain. A call that names another capability answers 400 and is not charged.Does /v1/extract work?
data.url, data.title and data.content up to 50,000 characters, at $0.0008 a page. A page that cannot be read answers 422 with extract_failed and is not charged.Do calls with no API key work?
401. A new account's $10 of credit covers 10,000 searches.Does SpecStream have an MCP server?
https://api.specstream.ai/mcp over Streamable HTTP, with OAuth or an API key. It searches, reads pages and runs Deep Search on one balance.Sources
SpecStream wrote this page. Each AnySearch fact comes from AnySearch's own docs and pricing page, and each other provider's figure from that company's own page. The route's behavior is taken from its code, read on November 13, 2026.
- AnySearch Search API docsanysearch.com/docs/api-endpoints/v1-search.md, read Nov 13, 2026
- AnySearch Web Content Extraction API docsanysearch.com/docs/api-endpoints/v1-extract.md, read Nov 13, 2026
- AnySearch authenticationanysearch.com/docs/auth.md, read Nov 13, 2026
- AnySearch MCP server setupanysearch.com/docs/mcp-install.md, read Nov 13, 2026
- AnySearch pricinganysearch.com/pricing, read Nov 13, 2026
- Exa pricingexa.ai/docs/admin/pricing.md, read Nov 13, 2026
- Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 13, 2026
- Brave Search APIbrave.com/search/api/, read Nov 13, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 13, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 13, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 13, 2026




