<!-- twin of https://specstream.ai/alternatives/xai-web-search -->
# xAI web search tool alternatives in 2026: raw results for any model

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

The `web_search` tool on the xAI API costs $5 per 1,000 calls, and xAI bills the tokens of the request on top. Grok decides how many searches a request runs, and your code gets Grok's reply with its citations.

SpecStream gives Grok the same search for the same $5 per 1,000, with no tokens billed. Define a function tool that calls `GET https://api.specstream.ai/v1/web-search`, or add `https://api.specstream.ai/mcp` as a remote MCP tool.

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 Grok, any other model or code with no model at all.

[Get an API key](https://specstream.ai/signup?src=alternatives-xai-web-search&utm_source=alternatives-md&utm_campaign=xai-web-search&returnTo=%2Fworkspace%2Fagents%3Ftab%3Dkeys) New accounts get $10 of credit, no card. It covers 2,000 searches.

## SpecStream and the xAI web search tool side by side

| | SpecStream | xAI web search tool |
|---|---|---|
| Models it works with | Any model. Call `GET /v1/web-search` from your code, give it to Grok as a function tool, or connect the MCP server at `https://api.specstream.ai/mcp` to Grok, ChatGPT, Claude, Gemini or any agent framework | Grok, inside a request to the xAI API at `https://api.x.ai/v1` |
| 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 | $5 per 1,000 calls of `web_search` |
| Billed on top | Nothing. SpecStream bills no tokens, and `price_usd` in each reply is what the call cost | Token usage. xAI prices server-side tools on token usage and tool calls, and bills every standard token type for the model used in the request |
| Who decides how many searches run | Your code. One call is one search at one price | Grok. xAI's pricing page says the agent decides how many tools to call, so costs scale with query complexity |
| 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` | Grok's reply, with its citations in `response.citations` |
| Filters | `num` from 1 to 100 results, `page` from 1 to 10, `language`, `country`, `safe`, and operators such as `site:`, `-site:`, `filetype:` and `after:` that hold on every result | Up to 5 allowed domains or up to 5 excluded domains, not both in one request |
| 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=xai-web-search) | No accuracy score on its web search guide 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 Grok runs is a tool call at the call price, with the tokens on top |

## Why teams on the xAI web search tool move to SpecStream

### Give Grok SpecStream as a function tool

The xAI API takes OpenAI's Responses format at `https://api.x.ai/v1/responses`. Replace the `web_search` tool with a function tool. Grok asks for a search, your code calls the SpecStream Search API and sends back the answer and the ranked results as the `function_call_output`, and Grok writes its reply from them.

```
import json, os, requests

XAI = "https://api.x.ai/v1/responses"
XAI_HEADERS = {"Authorization": f"Bearer {os.environ['XAI_API_KEY']}"}

tools = [{
    "type": "function",
    "name": "search_web",
    "description": "Search the live web. Returns the answer with its page, and the ranked results with title, URL and snippet.",
    "parameters": {"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})

response = requests.post(XAI, headers=XAI_HEADERS, json={
    "model": "grok-4.7", "tools": tools,
    "input": [{"role": "user", "content": "Who is the CEO of Mistral AI?"}],
}).json()

while calls := [item for item in response["output"] if item["type"] == "function_call"]:
    response = requests.post(XAI, headers=XAI_HEADERS, json={
        "model": "grok-4.7", "tools": tools, "previous_response_id": response["id"],
        "input": [
            {"type": "function_call_output", "call_id": call["call_id"],
             "output": search(json.loads(call["arguments"])["q"])}
            for call in calls
        ],
    }).json()

print("".join(part.get("text", "") for item in response["output"] if item["type"] == "message" for part in item["content"]))
```

xAI also connects Grok to remote MCP servers over Streamable HTTP. Add SpecStream to `tools` as an `mcp` tool with your SpecStream API key in `headers`, and allow the `search_web` tool alone. xAI then calls SpecStream for you, and the [MCP guide for Grok](https://specstream.ai/docs/mcp/grok?utm_source=alternatives&utm_campaign=xai-web-search) covers Grok.

```
curl https://api.x.ai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -d '{
    "model": "grok-4.7",
    "input": [{"role": "user", "content": "Who is the CEO of Mistral AI?"}],
    "tools": [{
      "type": "mcp",
      "server_url": "https://api.specstream.ai/mcp",
      "server_label": "specstream",
      "allowed_tools": ["search_web"],
      "headers": {"Authorization": "Bearer '"$SPECSTREAM_API_KEY"'"}
    }]
  }'
```

### The same $5 per 1,000, with no tokens billed by SpecStream

100,000 searches cost $500 on SpecStream and $500 in `web_search` calls on xAI. On xAI the tokens of each request are billed on top, and Grok decides how many searches a request runs. On SpecStream your code decides, each reply carries `price_usd`, and the account's request log and usage totals show every call and its price. xAI bills remote MCP tools by tokens, with no price per tool call.

### 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. The scores and the method are at [specstream.ai/benchmarks](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=xai-web-search).

### Results your code can read and keep

A SpecStream search returns JSON your code reads without a model in between: the `answer` with the page it was read on and its read time, `rows` with the facts the request asks for, and `sources` in rank order, each marked `cited` when a value comes from it. Every charged search is kept in the account's history, and reading it costs nothing. Turn on `zero_retention` on a key when your users' searches must leave no trace.

When search is busy, `/v1/web-search` answers `503` with a `Retry-After` header and charges nothing. The Python and TypeScript SDKs send the call again once by themselves when the wait is 10 seconds or less.

### Page text, and whole datasets

Add `passages=true` and each source carries the text of its page closest to the question, up to about 3,500 characters. The Extract API returns the main text of a page at $0.80 per 1,000 pages. When the job is many records, Deep Search takes the request in plain words and returns every match on the live web as structured rows at 5¢, 15¢ or $1 a row. The most a run can cost is quoted before it starts.

## Other xAI web search tool alternatives

### SpecStream

The live web data engine for teams and agents, and the best alternative to the xAI web search tool. The Search API costs $5 per 1,000 searches, bills no tokens, works with Grok and any 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. Deep Search returns every match as structured rows at 5¢, 15¢ or $1 a row.

### OpenAI web search tool

A tool on the OpenAI API at $10 per 1,000 calls, plus search content tokens billed at the model's rates. Web search preview on other models costs $25 per 1,000 calls. SpecStream costs $5 per 1,000 searches with no tokens, for any model. [SpecStream as an OpenAI web search tool alternative](https://specstream.ai/alternatives/openai-web-search?utm_source=alternatives&utm_campaign=xai-web-search).

### Claude web search tool

A server tool on the Claude API at $10 per 1,000 searches, plus standard token costs for the content it brings back. SpecStream costs $5 per 1,000 searches and returns the results to Claude or any other model. [SpecStream as a Claude web search tool alternative](https://specstream.ai/alternatives/claude-web-search-tool?utm_source=alternatives&utm_campaign=xai-web-search).

### Gemini grounding with Google Search

On Gemini 3 and newer, 5,000 search requests a month are free, then $14 per 1,000, with a default limit of 1,500 requests a day per project on the paid tier. On SpecStream your code decides how many searches run, at $5 per 1,000, from any model.

### Grounding with Bing Search

A tool in Azure AI Foundry Agent Service at $14 per 1,000 transactions, and the tool output does not reach developers or end users. SpecStream returns the results to your code at $5 per 1,000 searches.

## How to switch from the xAI 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.

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 `{"type": "web_search"}` from `tools` in your xAI request, and add the function tool or the `mcp` tool shown above. The model, the input and the rest of the request stay the same.

4. Send back the reply's `data.answer` and `data.sources` as the `function_call_output`, trimmed to the fields Grok needs.

## Frequently asked questions

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

$5 per 1,000 calls of `web_search`, on xAI's pricing page today. xAI prices server-side tools on token usage and tool calls, so the tokens of the request are billed on top.

### Does the Grok API have web search?

Yes, the `web_search` tool, at $5 per 1,000 calls plus tokens. SpecStream gives Grok a search at the same $5 per 1,000 with no tokens billed, as a function tool or as a remote MCP tool at `https://api.specstream.ai/mcp`.

### What is the best alternative to the xAI web search tool?

SpecStream, at $5 per 1,000 searches with no tokens. Its Search API scores a 97.9 F-score on all 1,000 official SimpleQA Verified questions, and one call returns typed rows and, when the pages agree on one value, the answer and the page it was read on.

### Can Grok use an MCP server through the xAI API?

Yes. xAI's remote MCP tools take a `server_url` over Streamable HTTP or SSE, with `server_label`, `allowed_tools` and `headers`. Point it at `https://api.specstream.ai/mcp`, allow `search_web`, and each search costs $0.005.

### Can I use the SpecStream search with models other than Grok?

Yes, with any model. The same `GET /v1/web-search` call at $5 per 1,000 searches works from your code, and the MCP server connects to Grok, ChatGPT, Claude, Gemini and Le Chat.

### What happens when a SpecStream search is busy?

It answers `503` with a `Retry-After` header and charges nothing. Wait that many seconds and send it again; the Python and TypeScript SDKs do it once by themselves when the wait is 10 seconds or less.

### Does SpecStream have an API?

Yes, three. The Search API is `GET /v1/web-search` at $5 per 1,000 searches of up to 10 results. The Extract API is `POST /v1/extract` at $0.80 per 1,000 pages. Deep Search takes a request in plain words and returns structured rows.

### What do the model vendors' web search tools cost side by side?

On November 10, 2026, per 1,000 calls: $10 on OpenAI and on Claude, with tokens on top; $14 on Gemini 3 grounding and on Grounding with Bing Search; $5 on xAI, with tokens on top. SpecStream's Search API costs $5 per 1,000 searches of up to 10 results 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=xai-web-search).

## Sources

SpecStream wrote this page. Each xAI figure comes from xAI's own pricing page and docs.

- [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
- [xAI pricing](https://docs.x.ai/developers/pricing), read Nov 10, 2026
- [xAI web search tool](https://docs.x.ai/developers/tools/web-search), read Nov 10, 2026
- [xAI function calling](https://docs.x.ai/developers/tools/function-calling), read Nov 10, 2026
- [xAI remote MCP tools](https://docs.x.ai/developers/tools/remote-mcp), read Nov 10, 2026
- [OpenAI API pricing](https://developers.openai.com/api/docs/pricing), read Nov 10, 2026
- [Claude API pricing](https://platform.claude.com/docs/en/about-claude/pricing), 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
- [Grounding with Bing pricing](https://www.microsoft.com/en-us/bing/apis/grounding-pricing), read Nov 10, 2026
- [Grounding with Bing Search tools](https://learn.microsoft.com/en-us/azure/foundry/agents/how-to/tools/bing-tools), read Nov 10, 2026
