Claude web search tool alternatives in 2026
$5 per 1,000 searches.
Anthropic's web search tool costs $10 per 1,000 searches on the Claude API, plus standard token costs for the content it brings back. The results count as input tokens again in later turns, and each page's content reaches your code encrypted.
SpecStream gives Claude the same search for $5 per 1,000. Define a client tool whose handler calls GET https://api.specstream.ai/v1/web-search, or add https://api.specstream.ai/mcp to the request with Anthropic's MCP connector.
SpecStream is the live web data engine for teams and agents. Its Search API scores a 97.9 F-score on all 1,000 SimpleQA Verified questions and returns the results themselves, for Claude, any other model or code with no model at all.
New accounts get $10 of credit, no card. It covers 2,000 searches.
SpecStream and the web search tools of the model APIs
| SpecStream | Claude web search tool | OpenAI web search | Gemini grounding | xAI web search | |
|---|---|---|---|---|---|
| Models it works with | Any model. Call GET /v1/web-search from a client tool, or connect the MCP server at https://api.specstream.ai/mcp to Claude with Anthropic's MCP connector, or to any MCP client | Claude, on the Claude API: add a web_search tool to the request's tools | OpenAI models, in a response from the OpenAI API | Gemini models, through Grounding with Google Search on the Gemini API | Grok models, as the web_search tool on the xAI API |
| Price per 1,000 searches | $5, for a search of up to 10 results. Each started block of 10 more results adds $0.006, up to 100 results | $10 per 1,000 searches. Each search counts as one use, however many results it returns | $10 per 1,000 calls for web search. $25 per 1,000 calls for web search preview on other models | $14 per 1,000 search requests on Gemini 3 and newer, after 5,000 free a month. $35 per 1,000 grounded prompts on Gemini 2.5, after 1,500 free a day | $5 per 1,000 calls |
| Billed on top | Nothing. SpecStream bills no tokens, and the reply's price_usd is what the call cost. A busy call answers 503 with Retry-After and is not charged | Standard token costs for search content. The results count as input tokens in each search of a turn and in later turns | Search content tokens at the model's rates on the $10 rows. They are free on web search preview for other models | Gemini 3 and newer bill the project for each search query the model decides to run | Token usage, beside the tool calls. xAI prices its server tools on both |
| What your code can read | answer with its value, the page it was read on and its read time in seen_at, rows with the facts the request asks for, and sources in rank order with title, url, site and snippet | Each result's url, title and page_age. The page content is encrypted_content, passed back to the API in later turns. Citations carry up to 150 characters of cited text | The model's text with url_citation annotations: the URL, title and location of each cited source | The model's text with inline annotations holding the citations, and the search queries and suggestions it ran | The Grok response, with its citations in response.citations |
| Limits and filters | num from 1 to 100 results, page from 1 to 10, language, country, safe, and operators such as site:, filetype: and after: that hold on every result | max_uses, lists of domains to allow or block, and user_location | Up to 100 allowed domains or up to 100 blocked domains | A default limit of 1,500 requests a day per project on the paid tier, for Gemini 3 and newer | Up to 5 allowed domains or up to 5 excluded domains |
| 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. Scores and method at specstream.ai/benchmarks | No accuracy score on its web search tool page or its pricing page | No accuracy score on its web search guide or its pricing page | No accuracy score on its grounding page or its pricing page | No accuracy score on its web search page or its pricing page |
| A whole dataset | Deep Search: a request in plain words returns every match on the live web as structured rows at 5¢, 15¢ or $1 a row, under a maximum you approve before it runs | Each search Claude runs is billed at $10 per 1,000, with the tokens on top | Each search the model runs is a call at the call price, with the tokens on top | Each search query the model runs is billed, after the free allowance | Each search Grok runs is a call at $5 per 1,000, with the tokens on top |
Why teams on the Claude web search tool move to SpecStream
Give Claude SpecStream as a tool
Replace the web_search server tool with a client tool of the same name. Claude asks for a search, your handler calls the SpecStream Search API and returns the answer and the ranked results, and Claude writes its reply from them.
import json, os, requests
ANTHROPIC = "https://api.anthropic.com/v1/messages"
HEADERS = {"x-api-key": os.environ["ANTHROPIC_API_KEY"], "anthropic-version": "2023-06-01"}
web_search = {
"name": "web_search",
"description": "Search the live web. Returns the answer with its page, and the ranked results with title, URL and snippet.",
"input_schema": {"type": "object", "properties": {"q": {"type": "string"}}, "required": ["q"]},
}
def search(q):
reply = requests.get(
"https://api.specstream.ai/v1/web-search",
params={"q": q},
headers={"Authorization": f"Bearer {os.environ['SPECSTREAM_API_KEY']}"},
).json()["data"]
sources = [{"title": s["title"], "url": s["url"], "snippet": s["snippet"]} for s in reply["sources"]]
return json.dumps({"answer": reply["answer"], "sources": sources})
messages = [{"role": "user", "content": "Who is the CEO of Mistral AI?"}]
while True:
response = requests.post(ANTHROPIC, headers=HEADERS, json={
"model": "claude-opus-5-5", "max_tokens": 1024, "tools": [web_search], "messages": messages,
}).json()
messages.append({"role": "assistant", "content": response["content"]})
if response["stop_reason"] != "tool_use":
break
messages.append({"role": "user", "content": [
{"type": "tool_result", "tool_use_id": block["id"], "content": search(block["input"]["q"])}
for block in response["content"] if block["type"] == "tool_use"
]})
print("".join(block["text"] for block in response["content"] if block["type"] == "text"))With Anthropic's MCP connector the Claude API calls SpecStream for you. Add the server to mcp_servers with your SpecStream API key as the token, and turn on the search_web tool alone.
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-11-20" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Who is the CEO of Mistral AI?"}],
"mcp_servers": [{
"type": "url",
"url": "https://api.specstream.ai/mcp",
"name": "specstream",
"authorization_token": "'"$SPECSTREAM_API_KEY"'"
}],
"tools": [{
"type": "mcp_toolset",
"mcp_server_name": "specstream",
"default_config": {"enabled": false},
"configs": {"search_web": {"enabled": true}}
}]
}'Your model, prompt and conversation stay as they are
Claude decides when to search, reads the results and writes the answer with the pages it used, as it does with the built-in tool. Your handler decides what reaches the context: the answer and ten titles, URLs and snippets, or the page text with passages=true.
$5 per 1,000 searches, with no tokens billed by SpecStream
100,000 searches cost $500 on SpecStream. On the Claude web search tool they cost $1,000, plus the token costs for the content each search brings back, which count again in every later turn. Each SpecStream reply carries price_usd, and the account's request log and usage totals show every call and its price. A new account gets $10 of credit, no card, which covers 2,000 searches.
The most accurate web search API in the world
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, 100 in English and 100 in Chinese, in our run of November 8, 2026. The scores and the method are at specstream.ai/benchmarks.
Results your code can read and keep
The Claude web search tool returns each page's content as encrypted_content, which the API decrypts in later turns and your code cannot read. A SpecStream search returns plain JSON: the answer, the page it was read on and the time it was read, the rows and the ranked sources. The same search serves Claude, GPT, Gemini, a local model or a script with no model.
const reply = await fetch(
"https://api.specstream.ai/v1/web-search?" + new URLSearchParams({ q: "Who is the CEO of Mistral AI?" }),
{ headers: { Authorization: `Bearer ${process.env.SPECSTREAM_API_KEY}` } },
).then((r) => r.json());
const { answer, sources, price_usd } = reply.data;
console.log(answer?.value, answer?.page, price_usd);Every charged search is kept in the account's history at GET /v1/web-search/answers, and reading it costs nothing. Turn on zero_retention on a key and its searches keep no request text and no answer after the reply.
Page text, and whole datasets
The Extract API returns the main text of up to 20 pages or documents a call at $0.80 per 1,000 pages, and a page with no text is not charged. 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, each value with its source URL, under a maximum you approve before it runs.
Other Claude web search tool alternatives
SpecStream
The live web data engine for teams and agents, and the best alternative to the Claude web search tool. The Search API costs $5 per 1,000 searches, bills no tokens, works with Claude and every other model, and scores 97.9 F-score on all 1,000 official SimpleQA Verified questions. The Extract API costs $0.80 per 1,000 pages.
OpenAI web search tool
A tool inside a response from an OpenAI model, at $10 per 1,000 calls plus search content tokens at the model's rates, or $25 per 1,000 calls for web search preview on other models. It serves OpenAI models. SpecStream costs $5 per 1,000 searches and serves Claude and OpenAI models from the same key.
Gemini grounding with Google Search
Grounding on the Gemini API. On Gemini 3 and newer, 5,000 search requests a month are free, then $14 per 1,000, billed for each query the model decides to run, with a default limit of 1,500 requests a day on the paid tier. On Gemini 2.5 it costs $35 per 1,000 grounded prompts. On SpecStream your code decides how many searches run, at $5 per 1,000.
xAI web search
The web_search tool on the xAI API costs $5 per 1,000 calls, and xAI bills the token usage of the request beside it. It filters to at most 5 domains. SpecStream costs $5 per 1,000 searches with no tokens, and returns the answer, its page and the ranked results to Claude or any other model.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to switch from the Claude web search tool
1. Create a key under Agents & API in the workspace, with the finds:spend scope and a spending limit. A new account gets $10 of credit, no card, which covers 2,000 searches. Turn on zero_retention when your users' searches must leave no trace.
2. Run one search to see the reply.
curl -G https://api.specstream.ai/v1/web-search \
-H "Authorization: Bearer $SPECSTREAM_API_KEY" \
--data-urlencode "q=Who is the CEO of Mistral AI?"3. Remove the web_search tool (web_search_20250305 or a later version) from tools in your Messages API request, and add the client tool or the MCP connector shown above. The rest of the request stays the same.
4. Return the reply's data.answer and data.sources as the tool_result, trimmed to the fields Claude needs. The MCP guide for Claude covers Claude.ai and Claude Desktop.
Frequently asked questions
Something we didn't answer? Talk to a human
How much does the Claude web search tool cost?
Does Claude web search charge tokens on top?
Can I use another web search API with the Claude API?
GET https://api.specstream.ai/v1/web-search, or add https://api.specstream.ai/mcp to mcp_servers with Anthropic's MCP connector and turn on the search_web tool.What is the best alternative to the Claude web search tool?
What does web search cost on the other model APIs?
Does SpecStream have an MCP server?
https://api.specstream.ai/mcp over Streamable HTTP, with OAuth or an API key. The search_web tool answers a question for $0.005, and the agent spends from the same balance as your team, inside the limits set on its key.What happens when the SpecStream Search API is busy?
503 with a Retry-After header and costs $0. Wait that many seconds and send it again; the Python and TypeScript SDKs from 1.3.2 send it again once by themselves when the wait is 10 seconds or less.Sources
SpecStream wrote this page. Each rival figure 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
- Anthropic web search toolplatform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool, read Nov 10, 2026
- Anthropic pricingplatform.claude.com/docs/en/about-claude/pricing, read Nov 10, 2026
- Anthropic MCP connectorplatform.claude.com/docs/en/agents-and-tools/mcp-connector, read Nov 10, 2026
- OpenAI API pricingdevelopers.openai.com/api/docs/pricing, read Nov 10, 2026
- OpenAI web search guideplatform.openai.com/docs/guides/tools-web-search, read Nov 10, 2026
- Gemini API pricingai.google.dev/gemini-api/docs/pricing, read Nov 10, 2026
- Gemini grounding with Google Searchai.google.dev/gemini-api/docs/google-search, read Nov 10, 2026
- xAI pricingdocs.x.ai/developers/pricing, read Nov 10, 2026
- xAI web searchdocs.x.ai/developers/tools/web-search, read Nov 10, 2026




