<!-- twin of https://specstream.ai/bing-search/webthinker -->
# WebThinker after the Bing Search API: one setting to change

Compared on Nov 10, 2026. The page: https://specstream.ai/bing-search/webthinker

WebThinker searches with `--search_engine bing` by default, which calls the Bing Web Search API v7. Microsoft retired it on August 11, 2025 and decommissioned every instance and new sign-ups, so WebThinker's web search fails for anyone who sets it up today.

Both run scripts take `--bing_endpoint`. Set it to `https://api.specstream.ai/v7.0/search` and pass your SpecStream key as `--bing_subscription_key`. WebThinker then sends its usual Bing call to SpecStream, and `--search_engine bing` stays.

SpecStream answers Bing's v7 call in Bing's own JSON, scores 97.9 F-score on all 1,000 SimpleQA Verified questions and costs $5 per 1,000 searches, with no daily limit. A new account gets $10 of credit, no card.

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

## WebThinker web search and what replaces Bing, from each company's own pages on Nov 10, 2026

| | SpecStream | Bing Web Search API | Grounding with Bing Search | Google Custom Search | Brave Search API |
|---|---|---|---|---|---|
| Setting in WebThinker | `--bing_endpoint https://api.specstream.ai/v7.0/search`, with a SpecStream key in `--bing_subscription_key` | `--bing_endpoint` default: `https://api.bing.microsoft.com/v7.0/search` | Not a v7 address. Microsoft places it in Azure AI Agents | Not a `--search_engine` choice: WebThinker takes `bing` or `serper` | Not a `--search_engine` choice: WebThinker takes `bing` or `serper` |
| Open to a new account | Yes. Create a key and start with $10 of credit, no card | No. Retired on August 11, 2025, with every instance decommissioned and no new sign-up | Yes, with a Grounding with Bing Search resource in the Azure portal | No. Closed to new customers, and existing customers have until January 1, 2027 | Yes, with $5 in free credits every month |
| Price per 1,000 searches | $5, with up to 10 results a search | None. Microsoft decommissioned the product | $14 per 1,000 transactions | $5 per 1,000 queries after 100 free queries a day, for existing customers only | $5 per 1,000 requests |
| Limit | No limit per key and no daily limit. A busy call gets a `429` and is not charged | None. The API is retired | 150 transactions a second and 1 million a day | 10,000 queries a day | Up to 50 queries per second |
| What comes back | Bing's `webPages.value[]` with `name`, `url`, `snippet`, and `datePublished` when the page has a date | `webPages.value[]`, with the name, URL and snippet of each page | No raw results: developers and end users get no access to the content returned | The URL, title and text snippets of each result, in Google's own format | Up to 20 results a request, in Brave's own format |
| What answers the search | The whole live web, read at the moment of the call. 97.9 F-score on all 1,000 SimpleQA Verified questions | Nothing since August 11, 2025 | An answer from the model. Not all models support it | The Programmable Search Engine you configured | Brave's index. Its own page reports 85.3% on FreshQA |

## Why WebThinker developers point Bing search at SpecStream

### One argument to the run script

`run_web_thinker.py` and `run_web_thinker_report.py` both declare `--bing_endpoint` with Bing's retired address as the default, and pass it to `bing_web_search_async` on every search. Before and after:

```
python scripts/run_web_thinker.py \
    --single_question "What is OpenAI Deep Research?" \
    --search_engine bing \
    --bing_subscription_key "YOUR_BING_KEY" \
    --api_base_url "YOUR_API_BASE_URL" \
    --model_name "QwQ-32B" \
    --aux_api_base_url "YOUR_AUX_API_BASE_URL" \
    --aux_model_name "Qwen2.5-32B-Instruct" \
    --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \
    --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"
```

```
python scripts/run_web_thinker.py \
    --single_question "What is OpenAI Deep Research?" \
    --search_engine bing \
    --bing_subscription_key "$SPECSTREAM_API_KEY" \
    --bing_endpoint "https://api.specstream.ai/v7.0/search" \
    --api_base_url "YOUR_API_BASE_URL" \
    --model_name "QwQ-32B" \
    --aux_api_base_url "YOUR_AUX_API_BASE_URL" \
    --aux_model_name "Qwen2.5-32B-Instruct" \
    --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \
    --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"
```

The key argument stays required: without it the script stops with "Bing search engine is selected, but --bing_subscription_key is not provided." The report mode takes the same two arguments.

### The same request and the same JSON

WebThinker sends `GET` with `q`, `mkt`, `setLang`, `textDecorations` and `textFormat`, the key in `Ocp-Apim-Subscription-Key`. It reads `name`, `url`, `snippet`, `siteName` and `datePublished` from `webPages.value`, each with a default when it is absent. SpecStream answers in Bing's shape, 10 results a call at $0.005.

The same call from plain Python:

```
import os, requests

reply = requests.get(
    "https://api.specstream.ai/v7.0/search",
    headers={"Ocp-Apim-Subscription-Key": os.environ["SPECSTREAM_API_KEY"]},
    params={"q": "What is OpenAI Deep Research?", "count": 10},
).json()

for page in reply["webPages"]["value"]:
    print(page["name"], page["url"], page["snippet"])
```

Every parameter and field of the route is in the [Bing Web Search v7 guide](https://specstream.ai/migrate/bing-web-search-v7?utm_source=alternatives&utm_campaign=bing-search-webthinker), and what Microsoft ended, and when, is on the [Bing Search API retirement](https://specstream.ai/bing-search-api-retirement?utm_source=alternatives&utm_campaign=bing-search-webthinker) page.

### $5 per 1,000 searches, with no daily limit

A search of up to 10 results costs $0.005. There is no monthly plan and no daily limit. Credit you buy never expires, and a new account starts with $10 of credit, which covers 2,000 searches. A busy call gets a `429` with `Retry-After` and charges nothing.

### The most accurate web search API, in about one second

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](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=bing-search-webthinker) page.

Every Bing call runs the fast search. Measured on production on November 9, 2026, its median was 0.82 s at 1 search a second and 1.07 s at 20 a second, the 95th percentile stayed between 1.09 and 1.73 s, and it answered 718 of 720. There is no limit per key and no daily limit.

### 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. `spend_cap_cents` is the most the key can spend, so a long WebThinker run stops at the cap you set.

```
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](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=bing-search-webthinker) at $0.80 per 1,000 pages, and a page with no text is not charged. [Deep Search](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=bing-search-webthinker) 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.

## Other web search options for WebThinker

### WebThinker with Serper

WebThinker's own README says the Bing Search API "will be retired in August 2025" and adds `--search_engine serper`. Serper sells credits in packs, 50,000 for $50, valid for 6 months. SpecStream keeps `--search_engine bing` working, and its credit never expires.

### Grounding with Bing Search

Microsoft's named replacement for the Bing Search APIs, at $14 per 1,000 transactions, inside Azure AI Agents. It returns an answer with citations, and developers get no access to the raw results, so WebThinker has no `webPages.value` to read. SpecStream returns Bing's `webPages.value[]` at $5 per 1,000.

### Google Custom Search JSON API

$5 per 1,000 queries after 100 free a day, up to 10,000 a day, for existing customers only: Google closed it to new customers and ends it on January 1, 2027. It answers a different request with a different reply. SpecStream keeps WebThinker's Bing call and costs the same $5 per 1,000, with no daily limit.

## How to move WebThinker web search to SpecStream

1. Create a key under Agents & API in the SpecStream workspace. A new account gets $10 of credit, no card, which covers 2,000 searches.

2. Check the key with the call Bing's v7 API takes. A `200` with `webPages.value` means the key works.

```
curl -H "Ocp-Apim-Subscription-Key: $SPECSTREAM_API_KEY" \
  "https://api.specstream.ai/v7.0/search?q=test&count=3"
```

3. Add `--bing_endpoint` to your run command and pass the SpecStream key as `--bing_subscription_key`:

```
python scripts/run_web_thinker.py \
    --single_question "What is OpenAI Deep Research?" \
    --search_engine bing \
    --bing_subscription_key "$SPECSTREAM_API_KEY" \
    --bing_endpoint "https://api.specstream.ai/v7.0/search" \
    --api_base_url "YOUR_API_BASE_URL" \
    --model_name "QwQ-32B" \
    --aux_api_base_url "YOUR_AUX_API_BASE_URL" \
    --aux_model_name "Qwen2.5-32B-Instruct" \
    --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \
    --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"
```

4. Run a question or a benchmark split as before. Each search shows in your SpecStream request log with its price.

## Frequently asked questions

### Why is WebThinker web search not working?

Microsoft retired the Bing Search APIs on August 11, 2025 and decommissioned every instance, and `bing` is WebThinker's default search engine. Pass `--bing_endpoint https://api.specstream.ai/v7.0/search` with a SpecStream key and Bing search runs again.

### Where do I get a WebThinker Bing API key now?

Not from Microsoft: Bing has taken no new customer sign-up since August 11, 2025. Create a SpecStream key with $10 of credit, no card, and pass it as `--bing_subscription_key`.

### What value does --bing_endpoint take?

The full search address: `https://api.specstream.ai/v7.0/search`. WebThinker adds the query and its market and language parameters itself.

### What is the best WebThinker Bing alternative?

SpecStream, at $5 per 1,000 searches with no daily limit and 97.9 F-score on all 1,000 SimpleQA Verified questions. It answers the Bing call WebThinker already makes, so `--search_engine bing` stays.

### How much does a WebThinker benchmark run cost with SpecStream?

$0.005 a search of 10 results. A run that makes 2,000 searches costs $10, which is the credit a new account starts with.

### Does the report mode take the same setting?

Yes. `run_web_thinker_report.py` declares the same `--bing_endpoint` and `--bing_subscription_key` arguments as `run_web_thinker.py`.

## Sources

SpecStream wrote this page. WebThinker's settings come from its source on GitHub, and each provider's figure from that company's own page.

- [WebThinker run_web_thinker.py](https://raw.githubusercontent.com/RUC-NLPIR/WebThinker/main/scripts/run_web_thinker.py), read Nov 10, 2026
- [WebThinker run_web_thinker_report.py](https://raw.githubusercontent.com/RUC-NLPIR/WebThinker/main/scripts/run_web_thinker_report.py), read Nov 10, 2026
- [WebThinker bing_search.py](https://raw.githubusercontent.com/RUC-NLPIR/WebThinker/main/scripts/search/bing_search.py), read Nov 10, 2026
- [WebThinker README](https://raw.githubusercontent.com/RUC-NLPIR/WebThinker/main/README.md), read Nov 10, 2026
- [Bing Search API retirement](https://learn.microsoft.com/en-us/lifecycle/announcements/bing-search-api-retirement), read Nov 10, 2026
- [Google Custom Search JSON API overview](https://developers.google.com/custom-search/v1/overview), read Nov 10, 2026
- [Grounding with Bing Search pricing](https://www.microsoft.com/en-us/bing/apis/grounding-pricing), read Nov 10, 2026
- [Bing APIs](https://www.microsoft.com/en-us/bing/apis), 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
- [Bing Web Search response objects](https://learn.microsoft.com/en-us/bing/search-apis/bing-web-search/reference/response-objects), read Nov 10, 2026
- [Brave Search API](https://brave.com/search/api/), read Nov 10, 2026
- [Brave Search API documentation](https://api-dashboard.search.brave.com/app/documentation/web-search/get-started), read Nov 10, 2026
- [Serper](https://serper.dev/), read Nov 10, 2026
- [SpecStream benchmarks](https://specstream.ai/benchmarks), read Nov 10, 2026
- [SpecStream pricing](https://specstream.ai/pricing), read Nov 10, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 10, 2026
