<!-- twin of https://specstream.ai/alternatives/claude-web-search-tool -->
# Claude web search tool alternatives in 2026: $5 per 1,000 searches

Compared on Nov 10, 2026. The page: https://specstream.ai/alternatives/claude-web-search-tool

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.

[Get an API key](https://specstream.ai/signup?src=alternatives-claude-web-search-tool&utm_source=alternatives-md&utm_campaign=claude-web-search-tool&returnTo=%2Fworkspace%2Fagents%3Ftab%3Dkeys) 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](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=claude-web-search-tool) | 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](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=claude-web-search-tool).

### 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 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](https://specstream.ai/docs/mcp/claude?utm_source=alternatives&utm_campaign=claude-web-search-tool) covers Claude.ai and Claude Desktop.

## Frequently asked questions

### How much does the Claude web search tool cost?

$10 per 1,000 searches on the Claude API, plus standard token costs for the content each search brings back. Each search counts as one use however many results it returns, and a search that fails with an error is not billed.

### Does Claude web search charge tokens on top?

Yes, standard token costs for the search content, and the results count as input tokens in each search of a turn and in later turns. SpecStream bills $5 per 1,000 searches and no tokens, and your handler decides which fields Claude reads.

### Can I use another web search API with the Claude API?

Yes, in two ways, at $5 per 1,000 searches on SpecStream. Define a client tool whose handler calls `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?

SpecStream, at $5 per 1,000 searches with no tokens. Its Search API is the most accurate web search API in the world, with a 97.9 F-score on all 1,000 official SimpleQA Verified questions, and it returns the answer, its page and the ranked results as JSON.

### What does web search cost on the other model APIs?

$10 per 1,000 calls on OpenAI plus search content tokens, $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, and $5 per 1,000 calls on xAI plus tokens. SpecStream costs $5 per 1,000 searches and bills no tokens. The whole table is on [web search tool pricing](https://specstream.ai/web-search-tool-pricing?utm_source=alternatives&utm_campaign=claude-web-search-tool).

### Does SpecStream have an MCP server?

Yes, at `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?

The call answers `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 pricing](https://specstream.ai/pricing), read Nov 10, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 10, 2026
- [SpecStream benchmarks](https://specstream.ai/benchmarks), read Nov 10, 2026
- [Anthropic web search tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool), read Nov 10, 2026
- [Anthropic pricing](https://platform.claude.com/docs/en/about-claude/pricing), read Nov 10, 2026
- [Anthropic MCP connector](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector), read Nov 10, 2026
- [OpenAI API pricing](https://developers.openai.com/api/docs/pricing), read Nov 10, 2026
- [OpenAI web search guide](https://platform.openai.com/docs/guides/tools-web-search), read Nov 10, 2026
- [Gemini API pricing](https://ai.google.dev/gemini-api/docs/pricing), read Nov 10, 2026
- [Gemini grounding with Google Search](https://ai.google.dev/gemini-api/docs/google-search), read Nov 10, 2026
- [xAI pricing](https://docs.x.ai/developers/pricing), read Nov 10, 2026
- [xAI web search](https://docs.x.ai/developers/tools/web-search), read Nov 10, 2026
