Azure Chat Bing search
Change two fields and it answers again.
Azure Chat's Bing Search extension calls the Bing Web Search API v7, which Microsoft retired on August 11, 2025. The extension still points at api.bing.microsoft.com, so its searches fail.
Change two fields of the extension: the endpoint to https://api.specstream.ai/v7.0/search?q=BING_SEARCH_QUERY, and the value of the Ocp-Apim-Subscription-Key header to a SpecStream key. Our test passed with those two fields.
SpecStream scores 97.9 F-score on all 1,000 SimpleQA Verified questions and costs $5 per 1,000 searches. A new account gets $10 of credit, no card, which covers 2,000 searches.
New accounts get $10 of credit, no card. It covers 2,000 searches.
Web search for Azure Chat's Bing extension, from each company's own pages on Nov 10, 2026
| SpecStream | Bing Web Search API v7 | Grounding with Bing Search | Brave Search API | |
|---|---|---|---|---|
| Open to a new account | Yes. Create a key and start with $10 of credit, no card | No. Retired on August 11, 2025, every existing instance decommissioned and no new sign-up | Microsoft's named replacement, a tool inside Azure AI Agents | Yes, with $5 in free credits every month |
| The endpoint in the extension | https://api.specstream.ai/v7.0/search?q=BING_SEARCH_QUERY | https://api.bing.microsoft.com/v7.0/search?q=BING_SEARCH_QUERY, the extension's default | No endpoint to call. An Azure AI agent calls it while a model writes its response | https://api.search.brave.com/res/v1/web/search, with Brave's own parameters |
| The key header | Ocp-Apim-Subscription-Key, the header the extension already sends | Ocp-Apim-Subscription-Key | A Grounding with Bing Search resource in the Azure portal, connected to the agent | X-Subscription-Token, so the extension's header has to change too |
| What the model gets | Bing's JSON: _type, queryContext, webPages.value[] with id, name, url, displayUrl and snippet, and rankingResponse | webPages.value[] with name and url, and optionally snippet, for each result | The model's result grounded with Bing data, citing the publishers. Developers and end users don't have access to the raw content | Brave's JSON: web.results[] with title, url and description |
| Price | $5 per 1,000 searches of up to 10 results | No longer sold | $14 per 1,000 transactions | $5 per 1,000 requests |
| Limit | No daily limit. Up to 8,800 searches a minute on one account | Every existing instance decommissioned | 150 transactions per second | 50 queries per second |
Why Azure Chat teams point the Bing extension at SpecStream
Two fields of the extension you already have
Azure Chat's Bing Search extension is a GET to an endpoint with BING_SEARCH_QUERY in the address, and a header named Ocp-Apim-Subscription-Key. SpecStream answers that call at /v7.0/search with the key in that same header, so the header name, the function schema and the description stay as they are.
# Extensions, Bing Search, the function
API endpoint https://api.bing.microsoft.com/v7.0/search?q=BING_SEARCH_QUERY
-> https://api.specstream.ai/v7.0/search?q=BING_SEARCH_QUERY
# Extensions, Bing Search, the header
Key Ocp-Apim-Subscription-Key (unchanged)
Value YOUR API KEY HERE -> your SpecStream keyThis is the call the extension sends after the model fills in the query:
curl "https://api.specstream.ai/v7.0/search?q=azure+openai+pricing" \
-H "Ocp-Apim-Subscription-Key: $SPECSTREAM_API_KEY"
# {"_type": "SearchResponse", "queryContext": {...}, "webPages": {"value": [{"name": "...", "url": "...", "snippet": "..."}, ...]}, ...}In our test this call returned 200 with nine results in webPages.value, each with id, name, url, displayUrl, snippet, isFamilyFriendly and isNavigational.
Why changing the key and the URL to another provider did not work
Azure Chat sends the extension's headers as they are written and hands the whole JSON reply to the model, with no field mapping in between. When the call is not OK, the chat gets the text There was an error calling the api: followed by the status. Another provider wants its own header and its own parameters: Brave reads the key from X-Subscription-Token, not from Ocp-Apim-Subscription-Key.
Users in issue 519 found this. One wrote that Brave did not work by "just updating the API key and the search URL". SpecStream takes Bing's header, Bing's address shape and returns Bing's JSON, so those two values are the whole change.
The same call from Python and JavaScript
Any code that called Bing v7 moves the same way: the address changes and the key goes in the same header.
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": "azure openai pricing", "count": 10},
).json()
for page in reply["webPages"]["value"]:
print(page["name"], page["url"], page["snippet"])const reply = await fetch(
"https://api.specstream.ai/v7.0/search?q=" + encodeURIComponent("azure openai pricing"),
{ headers: { "Ocp-Apim-Subscription-Key": process.env.SPECSTREAM_API_KEY } },
).then((r) => r.json());
for (const page of reply.webPages.value) console.log(page.name, page.url);$5 per 1,000 searches, with no daily limit
A search of up to 10 results costs $0.005, and each started block of 10 more results adds $0.006. 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.
The most accurate web search API in the world
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.
About one second a search, measured under load
The Bing v7 route runs on the fast search. On November 9, 2026 production took 1, 5, 10 and 20 fast searches a second and answered 718 of 720. The median was 0.82 s at 1 search a second and 1.07 s at 20 a second, and the 95th percentile stayed between 1.09 and 1.73 s. One account can send up to 8,800 searches a minute; a call over that is answered with Retry-After and is not charged.
You decide what is kept, on each key
Give Azure Chat a key with zero_retention and a search made with it keeps no request text and no answer after the reply. The charge keeps the account, the key, the request ID, the price and the time. 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 takes a request in plain words and returns every match on the live web as structured rows, at 5¢, 15¢ or $1 a row, with a source URL on every value. The most a run can cost is quoted before it starts.
Other options for Azure Chat web search after Bing
Grounding with Bing Search
Microsoft's replacement: a tool inside Azure AI Agents at $14 per 1,000 transactions, with a limit of 150 transactions a second. It returns a model's answer with citations, and developers don't get the raw results, so it does not plug into Azure Chat's extension. SpecStream answers the extension in Bing's JSON at $5 per 1,000.
Brave Search API
A search API on Brave's own index at $5 per 1,000 requests, with $5 in free credits every month and 50 queries per second. It takes its key in X-Subscription-Token and answers in Brave's shape, so the extension's header and parameters change. SpecStream keeps the extension as it is.
Tavily
A search API billed in credits at $0.008 each on pay as you go, with 1,000 free credits a month. It is a POST with a JSON body, so the extension is rebuilt for it. SpecStream answers the Bing GET the extension already sends, at $0.005 a search.
Google Custom Search JSON API
Closed to new customers, and existing customers have until January 1, 2027. It costs $5 per 1,000 queries and stops at 10,000 a day. SpecStream costs the same $5 per 1,000 with no daily limit and takes a new account today.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to bring Azure Chat's Bing search back on 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 the extension will send. A 200 with webPages.value means Azure Chat gets the same.
curl "https://api.specstream.ai/v7.0/search?q=test" -H "Ocp-Apim-Subscription-Key: $SPECSTREAM_API_KEY"3. In Azure Chat, open Extensions and edit the Bing Search extension. In its function, set API endpoint to https://api.specstream.ai/v7.0/search?q=BING_SEARCH_QUERY.
4. Under headers, keep the key Ocp-Apim-Subscription-Key and set its value to your SpecStream key. Azure Chat stores the header value as a secret. Save and publish the extension.
5. Start a chat with the extension on and ask a question about this week. Each search shows up in your SpecStream request log with its price.
Frequently asked questions
Something we didn't answer? Talk to a human
Why is Bing search not working in Azure Chat?
api.bing.microsoft.com. Set the endpoint to https://api.specstream.ai/v7.0/search?q=BING_SEARCH_QUERY and the header value to a SpecStream key, and search works again.What is the best Bing extension alternative for Azure Chat?
Ocp-Apim-Subscription-Key, so the extension keeps its header, schema and description.Why did Brave not work when I changed the key and the URL?
X-Subscription-Token, and Azure Chat's Bing extension sends Ocp-Apim-Subscription-Key. A user in issue 519 reported the same in August 2025. SpecStream reads the header the extension already sends.Can Azure Chat use Grounding with Bing Search?
How much does Azure Chat web search cost with SpecStream?
Does SpecStream work with other apps that called Bing v7?
GET /v7.0/search with Ocp-Apim-Subscription-Key works at https://api.specstream.ai/v7.0/search, answered in Bing's webPages.value shape.Sources
SpecStream wrote this page. Azure Chat's settings come from its source and issues on GitHub, and each provider's figure from that company's own page.
- Azure Chat Bing Search extension, bing-search.tsxgithub.com/microsoft/azurechat/blob/main/src/features/extensions-page/extension-hero/bing-search.tsx, read Nov 10, 2026
- Azure Chat extension runtime, chat-api-dynamic-extensions.tsgithub.com/microsoft/azurechat/blob/main/src/features/chat-page/chat-services/chat-api/chat-api-dynamic-extensions.ts, read Nov 10, 2026
- Azure Chat issue 519, Bing web search after shutdowngithub.com/microsoft/azurechat/issues/519, read Nov 10, 2026
- Microsoft, Bing Search API retirementlearn.microsoft.com/en-us/lifecycle/announcements/bing-search-api-retirement, read Nov 10, 2026
- Grounding with Bing Search pricingmicrosoft.com/en-us/bing/apis/grounding-pricing, read Nov 10, 2026
- Microsoft, Grounding with Bing Search toolslearn.microsoft.com/en-us/azure/foundry/agents/how-to/tools/bing-tools, read Nov 10, 2026
- Bing Web Search API response objectslearn.microsoft.com/en-us/bing/search-apis/bing-web-search/reference/response-objects, read Nov 10, 2026
- Brave Search APIbrave.com/search/api/, read Nov 10, 2026
- Tavily API creditsdocs.tavily.com/documentation/api-credits.md, read Nov 10, 2026
- Google Custom Search JSON API overviewdevelopers.google.com/custom-search/v1/overview, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- SpecStream pricingspecstream.ai/pricing, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026




