Metaso Search API compatible
Change the address, keep the code.
SpecStream answers the Metaso (秘塔AI搜索) Search API's POST /api/v1/search and POST /api/v1/reader in Metaso's own JSON. A search of up to 10 results costs $0.001, and a page read costs $0.0008.
The switch is one address: https://api.specstream.ai/metaso/api/v1 in place of https://metaso.cn/api/v1, with a SpecStream key as the Bearer token. Your code reads webpages[] 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.
Metaso Search API to SpecStream, parameter by parameter and field by field
| SpecStream | Metaso Search API | |
|---|---|---|
| Search address | POST https://api.specstream.ai/metaso/api/v1/search | POST https://metaso.cn/api/v1/search |
| Reader address | POST https://api.specstream.ai/metaso/api/v1/reader, the page as Markdown or JSON | POST https://metaso.cn/api/v1/reader, the page's full text as Markdown or JSON |
| The key | A SpecStream key as Authorization: Bearer | A Metaso key as Authorization: Bearer, made under API Keys on metaso.cn |
| `scope` | webpage (the default), document and image | webpage, document, paper, image, video and podcast |
| `size` | 1 to 100, 10 when you send none | 1 to 100, default 10 in metaso-search-mcp |
| `includeSummary`, `includeRawContent` | The text of each page closest to the query, up to about 3,500 characters, at no extra cost | Recall enhanced with page summaries, and the original text of every source page |
| Question answering | GET /v1/web-search returns an answer with the page it was read from, at $0.005 a call | An answer to the question, with format chat_completions |
| Price | $0.001 a search of up to 10 results, $0.0008 a page read | 0.03 yuan a call with 5,000 free calls, in a Woshipm review of August 2025 |
The Metaso Search API reference, on SpecStream
The call, before and after
# Before
curl -X POST https://metaso.cn/api/v1/search \
-H "Authorization: Bearer $METASO_API_KEY" -H "Content-Type: application/json" \
-d '{"q": "Who founded Mistral AI and when?", "scope": "webpage", "size": 10, "includeSummary": true}'
# After
curl -X POST https://api.specstream.ai/metaso/api/v1/search \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-d '{"q": "Who founded Mistral AI and when?", "scope": "webpage", "size": 10, "includeSummary": true}'The body and the parser stay. The base address changes to https://api.specstream.ai/metaso/api/v1, and the key changes. Every parameter and field below is what the route answers on November 12, 2026.
The MCP server that takes the address as a setting
metaso-search-mcp, the community MCP server for Metaso's API, reads its base address from METASO_BASE_URL. Set it to SpecStream's address and put your SpecStream key in METASO_API_KEY:
{
"mcpServers": {
"metaso-search-mcp": {
"command": "npx",
"args": ["metaso-search-mcp"],
"env": {
"METASO_API_KEY": "YOUR_SPECSTREAM_KEY",
"METASO_BASE_URL": "https://api.specstream.ai/metaso/api/v1"
}
}
}
}Its metaso_search and metaso_reader tools then call SpecStream. Its paper, video and podcast scopes answer 400.
Every parameter the route uses
Used in the search: q, scope (webpage by default, document for PDF files, image for images), size (1 to 100, sent as a number or a string) and page (from 1, each page continuing the same ranked list).
Used to shape the reply: includeSummary or includeRawContent set to true reads each result's page and fills summary or rawContent with the text of that page closest to the query, up to about 3,500 characters. A page not read in time keeps its snippet. For a whole page, send its URL to the reader. conciseSnippet comes back in searchParameters.
Every field that comes back
The search reply has searchParameters (q, scope, size, includeSummary, includeRawContent, conciseSnippet), total, and the list for the scope: webpages, documents or images. Each item has title, link, snippet and position, date when the page states one, and summary or rawContent when you ask for them. An image item adds imageUrl and thumbnail.
Not returned: credits, Metaso's count of the credits a call used.
One field is added: specstream, with what the Search API returns beyond Metaso's fields, including the call's price_usd. A parser that reads Metaso's fields never sees it.
The reader
curl -X POST https://api.specstream.ai/metaso/api/v1/reader \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" -H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"url": "https://www.python.org/downloads/"}'With Accept: text/plain the reply is the page as Markdown. With Accept: application/json it is title, url, date when the page states one, and markdown. Each page read is one Extract API page at $0.0008. A page that cannot be read answers 422 and is not charged.
Errors in Metaso's form
A refused key keeps its HTTP status, 401, and answers in Metaso's body: errCode 2005 with errMsg, plus message, which metaso-search-mcp prints. A scope this route does not search answers 400. When search is busy, the route answers 429 with Retry-After, and nothing is charged.
$1 per 1,000 searches, page text included
A search of up to 10 results costs $0.001, with or without includeSummary and includeRawContent. Each started block of 10 more results adds $0.0012: size 20 costs $0.0022, size 50 costs $0.0058 and size 100 costs $0.0118. A reader call costs $0.0008 a page. A call stopped by a 429 charges nothing.
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 Metaso Search API 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.
2. Set the base address to https://api.specstream.ai/metaso/api/v1 where your code has https://metaso.cn/api/v1, and send the SpecStream key as the Bearer token. In Python:
import requests
BASE = "https://api.specstream.ai/metaso/api/v1" # was https://metaso.cn/api/v1
reply = requests.post(
f"{BASE}/search",
headers={"Authorization": f"Bearer {SPECSTREAM_KEY}"},
json={"q": "Who founded Mistral AI and when?", "scope": "webpage", "size": 10, "includeSummary": True},
timeout=30,
)
reply.raise_for_status()
for page in reply.json()["webpages"]:
print(page["title"], page["link"], page.get("date"))3. In JavaScript:
const res = await fetch("https://api.specstream.ai/metaso/api/v1/search", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SPECSTREAM_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ q: "Who founded Mistral AI and when?", scope: "webpage", size: 10 }),
});
const data = await res.json();
for (const page of data.webpages) console.log(page.title, page.link);4. Read 401 as a refused key, 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 a Metaso Search API compatible API?
POST /api/v1/search and POST /api/v1/reader at https://api.specstream.ai/metaso/api/v1 in Metaso's JSON, for $0.001 a search of up to 10 results and $0.0008 a page read.How do I migrate from the Metaso API?
https://api.specstream.ai/metaso/api/v1 in place of https://metaso.cn/api/v1, and a SpecStream key as the Bearer token. The body and the code that reads webpages[] stay as they are.How much does the Metaso API cost?
Which Metaso scopes work?
webpage, document and image. scholar, paper, video and podcast answer 400.Does includeRawContent return the whole page?
/reader at $0.0008 a page.Does metaso-search-mcp work with SpecStream?
METASO_BASE_URL to https://api.specstream.ai/metaso/api/v1 and METASO_API_KEY to your SpecStream key, and its search and reader tools call SpecStream.Does Metaso's question answering API work?
model and format chat_completions has no route here. SpecStream's own Search API at GET /v1/web-search returns an answer with the page it was read from, at $0.005 a call.Sources
SpecStream wrote this page. Each Metaso fact comes from Metaso's own API pages and the source of the community server metaso-search-mcp, Metaso's price from a review on Woshipm, and each other provider's figure from that company's own page. The route's behavior is taken from its code, read on November 12, 2026.
- Metaso Search API playgroundmetaso.cn/search-api/playground, read Nov 12, 2026
- Metaso API Keysmetaso.cn/search-api/api-keys, read Nov 12, 2026
- metaso-search-mcp READMEraw.githubusercontent.com/SecretRichGarden/metasota-API-MCP/main/README.md, read Nov 12, 2026
- metaso-search-mcp sourceraw.githubusercontent.com/SecretRichGarden/metasota-API-MCP/main/src/index.ts, read Nov 12, 2026
- Woshipm review of the Metaso APIwoshipm.com/evaluating/6252191.html, read Nov 12, 2026
- Exa pricingexa.ai/docs/admin/pricing.md, read Nov 12, 2026
- Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 12, 2026
- Brave Search APIbrave.com/search/api/, read Nov 12, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 12, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 12, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 12, 2026




