<!-- twin of https://specstream.ai/bing-search-api-open-source-apps -->
# 17 open-source projects still calling Bing's retired Search API

Read on Nov 10, 2026. The page: https://specstream.ai/bing-search-api-open-source-apps

On November 10, 2026, 17 open-source projects with 1,000 stars or more held Bing Search API v7's address at their latest commit: 14 AI apps and 3 security tools. Microsoft retired the Bing Search APIs on August 11, 2025.

4 of the 17 read Bing's address from a setting; 13 hold it in the code. Either way, `https://api.specstream.ai/v7.0/search` answers the same call in Bing's JSON, with a SpecStream key in `Ocp-Apim-Subscription-Key`.

SpecStream costs $5 per 1,000 searches and scores 97.9 F-score on all 1,000 SimpleQA Verified questions. New accounts get $10 of credit, no card, which covers 2,000 searches.

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

## The 17 projects, by stars on November 10, 2026

| | What changes on SpecStream | Stars on Nov 10, 2026 | The line that holds Bing's address | Setting or code |
|---|---|---|---|---|
| Open WebUI (open-webui/open-webui) | Set env `BING_SEARCH_V7_ENDPOINT` to `https://api.specstream.ai/v7.0/search`, `WEB_SEARCH_ENGINE=bing`, and a SpecStream key in `BING_SEARCH_V7_SUBSCRIPTION_KEY`. Tested on Nov 10, 2026. [Open WebUI guide](https://specstream.ai/web-search/open-webui?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps) | 158,302 | `backend/open_webui/retrieval/web/bing.py` line 69, the default of `BING_SEARCH_V7_ENDPOINT` | A setting: env `BING_SEARCH_V7_ENDPOINT` |
| MetaGPT (FoundationAgents/MetaGPT) | One line: `search_engine_bing.py`, `https://api.bing.microsoft.com/v7.0/search` becomes `https://api.specstream.ai/v7.0/search` | 71,238 | `metagpt/tools/search_engine_bing.py` line 17, the default of `bing_url` | In the code: the default of `bing_url` |
| AutoGen (microsoft/autogen) | One line: `bing_search.py`, `https://api.bing.microsoft.com/v7.0/search` becomes `https://api.specstream.ai/v7.0/search` | 61,775 | `python/packages/autogen-studio/autogenstudio/gallery/tools/bing_search.py` line 117, the AutoGen Studio gallery tool | In the code |
| LlamaIndex (run-llama/llama_index) | One line: `base.py`, `https://api.bing.microsoft.com/v7.0/` becomes `https://api.specstream.ai/v7.0/` | 52,867 | `llama-index-integrations/tools/llama-index-tools-bing-search/llama_index/tools/bing_search/base.py` line 8, `ENDPOINT_BASE_URL` of `BingSearchToolSpec` | In the code: the constructor takes `api_key`, `lang` and `results` |
| GPT Researcher (assafelovic/gpt-researcher) | One line: `bing.py`, `https://api.bing.microsoft.com/v7.0/search` becomes `https://api.specstream.ai/v7.0/search`. [GPT Researcher guide](https://specstream.ai/web-search/gpt-researcher?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps) | 30,618 | `gpt_researcher/retrievers/bing/bing.py` line 49, the Bing retriever | In the code |
| Semantic Kernel (microsoft/semantic-kernel) | In your code: set `BingTextSearchOptions.Endpoint` to `https://api.specstream.ai/v7.0/search`, tested on Nov 10, 2026, or pass it as the `uri` argument of `BingConnector`. [Semantic Kernel guide](https://specstream.ai/web-search/semantic-kernel?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps) | 28,750 | `dotnet/src/Plugins/Plugins.Web/Bing/BingConnector.cs` line 25, `DefaultUri` | In the code: a constructor argument `uri` overrides it |
| ShuiZe, a security tool (0x727/ShuiZe_0x727) | One line: `bingsearch.py`, `https://api.cognitive.microsoft.com/bing/v7.0/search` becomes `https://api.specstream.ai/bing/v7.0/search` | 4,016 | `Plugins/infoGather/subdomain/theHarvester/runTheHarvester/discovery/bingsearch.py` line 34, its copy of theHarvester | In the code |
| LazyLLM (LazyAGI/LazyLLM) | One argument in your code: `BingSearch(endpoint="https://api.specstream.ai/v7.0/search")`. Tested on Nov 10, 2026. [LazyLLM guide](https://specstream.ai/bing-search/lazyllm?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps) | 3,891 | `lazyllm/tools/tools/search/bing_search.py` line 12, the default of `endpoint` | In the code: the default of the `endpoint` argument |
| comfyui_LLM_party (heshengtao/comfyui_LLM_party) | One line: `search_web.py`, `https://api.bing.microsoft.com/v7.0/search` becomes `https://api.specstream.ai/v7.0/search` | 2,389 | `tools/search_web.py` line 189 | In the code |
| Kocoro Shannon (Kocoro-lab/Shannon) | One line: `web_search.py`, `https://api.cognitive.microsoft.com/bing/v7.0/search` becomes `https://api.specstream.ai/bing/v7.0/search` | 2,324 | `python/llm-service/llm_service/tools/builtin/web_search.py` line 805 | In the code |
| PyGPT (szczyglis-dev/py-gpt) | Set plugin option `bing_endpoint` ("Bing Search API endpoint") to `https://api.specstream.ai/v7.0/search` and put a SpecStream key where the Bing key goes | 2,020 | `src/pygpt_net/provider/web/microsoft_bing.py` line 55, the default of `bing_endpoint` | A setting: plugin option `bing_endpoint` |
| WebThinker (RUC-NLPIR/WebThinker) | Run with `--bing_endpoint https://api.specstream.ai/v7.0/search` and a SpecStream key. Tested on Nov 10, 2026. [WebThinker guide](https://specstream.ai/bing-search/webthinker?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps) | 1,472 | `scripts/run_web_thinker.py` line 104, the default of `--bing_endpoint` | A setting: CLI flag `--bing_endpoint` |
| codefuse-chatbot (codefuse-ai/codefuse-chatbot) | One line: `default_config.py`, `https://api.bing.microsoft.com/v7.0/search` becomes `https://api.specstream.ai/v7.0/search` | 1,294 | `configs/default_config.py` line 104, the constant `BING_SEARCH_URL` | In the code: a module constant |
| Search-o1 (RUC-NLPIR/Search-o1) | Run with `--bing_endpoint https://api.specstream.ai/v7.0/search` and a SpecStream key | 1,253 | `scripts/run_rag_agent.py` line 164, the default of `--bing_endpoint` | A setting: CLI flag `--bing_endpoint` |
| Creds, a security script (S3cur3Th1sSh1t/Creds) | One line: `Invoke-EnumerateAzureBlobs.ps1`, `https://api.cognitive.microsoft.com/bing/v7.0/search` becomes `https://api.specstream.ai/bing/v7.0/search` | 1,176 | `PowershellScripts/Invoke-EnumerateAzureBlobs.ps1` line 134 | In the code |
| Omniplex (Omniplex-ai/omniplex) | One line: `route.ts`, `https://api.bing.microsoft.com/v7.0/search` becomes `https://api.specstream.ai/v7.0/search` | 1,065 | `src/app/api/search/route.ts` line 4; the key comes from env `BING_API_KEY` | In the code: a constant |
| teemo, a security tool (bit4woo/teemo) | One line: `search_bing_api.py`, `http://api.cognitive.microsoft.com/bing/v7.0/search` becomes `https://api.specstream.ai/bing/v7.0/search` | 1,017 | `searchengine/search_bing_api.py` line 49 | In the code |

## What happens to these calls, and the one change

### 4 settings and 13 lines of code

4 projects read Bing's address from a setting: Open WebUI (env `BING_SEARCH_V7_ENDPOINT`), PyGPT (plugin option `bing_endpoint`), WebThinker and Search-o1 (CLI flag `--bing_endpoint`). A self-hoster sets it to `https://api.specstream.ai/v7.0/search` and puts a SpecStream key where the Bing key goes.

The other 13 hold the address in the line the table names. Where it is `https://api.bing.microsoft.com/v7.0/search`, it becomes `https://api.specstream.ai/v7.0/search`; where it is `https://api.cognitive.microsoft.com/bing/v7.0/search`, it becomes `https://api.specstream.ai/bing/v7.0/search`. Both paths answer, and only the host changes. A maintainer changes that line and every user moves with the next release.

### What these calls reach today

Microsoft's notice says the Bing Search APIs "will be retired on August 11, 2025" and that "Any existing instances of Bing Search APIs will be decommissioned completely, and the product will no longer be available to be used or new customer signup." Each line in the table calls that retired address, and a new user of any of these projects cannot get a Bing key.

WebThinker's README says so itself: "Bing Search API will be retired in August 2025." The [not working page](https://specstream.ai/bing-search-api-not-working?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps) covers what a self-hoster sees, and the [retirement page](https://specstream.ai/bing-search-api-retirement?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps) has Microsoft's dates.

### The same call, answered in Bing's JSON

Change the host and the key. The path, the header, the parameters and the parser stay.

```
# Before
curl "https://api.bing.microsoft.com/v7.0/search?q=open+source+vector+databases&count=10&offset=0" \
  -H "Ocp-Apim-Subscription-Key: $BING_KEY"

# After
curl "https://api.specstream.ai/v7.0/search?q=open+source+vector+databases&count=10&offset=0" \
  -H "Ocp-Apim-Subscription-Key: $SPECSTREAM_KEY"
```

The route reads `q`, `count` (1 to 50, 10 by default), `offset` (0 to 10,000) and `freshness`, and `textFormat` shapes the reply. Each result in `webPages.value[]` has `id`, `name`, `url`, `displayUrl`, `snippet`, `isFamilyFriendly` and `isNavigational`, and `datePublished` when the page has a date. `dateLastCrawled` and `deepLinks` do not come back. Every parameter and field is in [the migration guide](https://specstream.ai/migrate/bing-web-search-v7?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps).

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

A search of up to 10 results costs $0.005, and there is no limit per key and no daily limit. A busy call answers `429` with `Retry-After` and is not charged. Credit you buy never expires, and a new account gets $10 of credit, no card.

### The most accurate web search API in the world

The SpecStream Search API scores 97.9 F-score on all 1,000 official SimpleQA Verified questions, 978 of them correct, and 64.0 item F1 and 43.4 row F1 on all 200 official WideSearch tasks. The scores and the method are on the [benchmarks](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps) page.

### About one second a search

A Bing call for the first 10 results runs the fast search. On November 9, 2026 production answered 718 of 720 searches at 1 to 20 a second, with a median of 0.82 s at 1 a second and 1.07 s at 20 a second.

### Search, pages and rows on one key

The same key reads pages with the [Extract API](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps) at $0.80 per 1,000 pages. [Deep Search](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps) takes a request in plain words and returns every match on the live web as rows at 5¢, 15¢ or $1 a row. A key made with `zero_retention` keeps no request text and no answer after the reply.

### How the list was made

On November 10, 2026 we ran three GitHub code searches for Bing's v7 addresses: `api.bing.microsoft.com/v7.0/search` (6,048 results), `api.bing.microsoft.com/v7.0/news/search` (416) and `api.cognitive.microsoft.com/bing/v7.0/search` (447). The first two pages of each named 298 repositories. We opened the 43 with 1,000 stars or more, not archived and not forks, at their latest commit.

The table keeps the 17 whose latest commit holds Bing's address in a line we fetched and quoted. It leaves out test fixtures, documentation, comments and cached files, and it does not cover private code or forks. Stars are the count read that day. The same list for Google is [16 open-source AI apps calling Google's Custom Search](https://specstream.ai/google-custom-search-api-open-source-apps?utm_source=alternatives&utm_campaign=bing-search-api-open-source-apps).

## What Microsoft and others offer in its place

### Grounding with Bing Search

Microsoft's named replacement, a tool in Azure AI Agents at $14 per 1,000 transactions. It returns the model's answer citing publishers, and Microsoft says developers "don't have access to raw content". These projects parse a list of results. SpecStream returns that list, at $5 per 1,000.

### Grounding with Bing Custom Search

The same $14 per 1,000 transactions, again with no raw content for developers. Its page sits under Agents (classic), which Microsoft retires on March 31, 2027. SpecStream answers the v7 call these projects already make.

### Brave Search API

A search API on Brave's own index at $5 per 1,000 requests, with $5 in free credits every month. Brave's own migration guide says moving to it means swapping the endpoint and updating how you read the response. On SpecStream the reply is Bing's JSON, so the parser stays.

## How to move a project off Bing's address

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

2. If the project has a setting, set it to the address and give it the SpecStream key. For Open WebUI:

```
export WEB_SEARCH_ENGINE=bing
export BING_SEARCH_V7_ENDPOINT=https://api.specstream.ai/v7.0/search
export BING_SEARCH_V7_SUBSCRIPTION_KEY=$SPECSTREAM_KEY
```

3. If the address is in the code, change the line the table names. In Python:

```
import requests

URL = "https://api.specstream.ai/v7.0/search"  # was https://api.bing.microsoft.com/v7.0/search

reply = requests.get(URL, headers={"Ocp-Apim-Subscription-Key": SPECSTREAM_KEY}, params={"q": query, "count": 10}, timeout=20).json()
for page in reply.get("webPages", {}).get("value", []):
    print(page["name"], page["url"], page["snippet"])
```

In JavaScript:

```
const url = "https://api.specstream.ai/v7.0/search?" + new URLSearchParams({ q: query, count: "10" });
const reply = await fetch(url, { headers: { "Ocp-Apim-Subscription-Key": SPECSTREAM_KEY } }).then((r) => r.json());
for (const page of reply.webPages?.value ?? []) console.log(page.name, page.url, page.snippet);
```

4. Leave the parser. Each call is billed as one search on your key, and the key carries the spending limit you give it.

## Frequently asked questions

### Which apps use the Bing Search API?

On November 10, 2026, 17 open-source projects with 1,000 stars or more held Bing Search API v7's address at their latest commit, from Open WebUI (158,302 stars) to teemo (1,017). 14 are AI apps and 3 are security tools; the table names each file and line.

### Is the Bing Search API retired for open-source apps too?

Yes. Microsoft retired the Bing Search APIs on August 11, 2025 and decommissioned existing instances, so every project that calls the v7 address calls a retired API. Pointing it at `https://api.specstream.ai/v7.0/search` keeps the same call.

### Why is Open WebUI's Bing search not working?

Open WebUI's default for `BING_SEARCH_V7_ENDPOINT` is `https://api.bing.microsoft.com/v7.0/search`, the API Microsoft retired on August 11, 2025. Set it to `https://api.specstream.ai/v7.0/search` and put a SpecStream key in `BING_SEARCH_V7_SUBSCRIPTION_KEY`; we tested that setting on November 10, 2026.

### How do I fix MetaGPT's Bing search?

MetaGPT holds `https://api.bing.microsoft.com/v7.0/search` as the default of `bing_url` on line 17 of `metagpt/tools/search_engine_bing.py`. Change it to `https://api.specstream.ai/v7.0/search` and use a SpecStream key.

### What is a Bing Search API alternative for a self-hosted app?

SpecStream answers the Bing v7 call at `https://api.specstream.ai/v7.0/search` in Bing's JSON, at $5 per 1,000 searches. 4 of the 17 projects take the address as a setting, so a self-hoster changes no code.

### What does Microsoft offer instead?

Grounding with Bing Search in Azure AI Agents, at $14 per 1,000 transactions. It returns a model answer with citations, and developers do not get the raw results.

## Sources

SpecStream wrote this page. Each project's line was fetched from GitHub at the commit named in its link, and Microsoft's dates and prices come from Microsoft's own pages.

- [Microsoft Lifecycle, Bing Search APIs retiring on August 11, 2025](https://learn.microsoft.com/en-us/lifecycle/announcements/bing-search-api-retirement), read Nov 10, 2026
- [Microsoft Bing APIs, Grounding with Bing pricing](https://www.microsoft.com/en-us/bing/apis), read Nov 10, 2026
- [Microsoft Learn, Grounding with Bing tools](https://learn.microsoft.com/en-us/azure/foundry/agents/how-to/tools/bing-tools), read Nov 10, 2026
- [Microsoft Learn, Grounding with Bing Custom Search (classic)](https://learn.microsoft.com/en-us/azure/foundry-classic/agents/how-to/tools-classic/bing-custom-search), read Nov 10, 2026
- [Brave Search API](https://brave.com/search/api/), read Nov 10, 2026
- [Brave, Google API shutdown guide](https://brave.com/learn/google-api-shutdown/), read Nov 10, 2026
- [WebThinker, README.md line 28](https://github.com/RUC-NLPIR/WebThinker/blob/db387eb32/README.md#L28), read Nov 10, 2026
- [Open WebUI, backend/open_webui/retrieval/web/bing.py line 69](https://github.com/open-webui/open-webui/blob/b0e6098e9/backend/open_webui/retrieval/web/bing.py#L69), read Nov 10, 2026
- [MetaGPT, metagpt/tools/search_engine_bing.py line 17](https://github.com/FoundationAgents/MetaGPT/blob/11cdf466d/metagpt/tools/search_engine_bing.py#L17), read Nov 10, 2026
- [AutoGen, python/packages/autogen-studio/autogenstudio/gallery/tools/bing_search.py line 117](https://github.com/microsoft/autogen/blob/d07c667a3/python/packages/autogen-studio/autogenstudio/gallery/tools/bing_search.py#L117), read Nov 10, 2026
- [LlamaIndex, llama-index-integrations/tools/llama-index-tools-bing-search/llama_index/tools/bing_search/base.py line 8](https://github.com/run-llama/llama_index/blob/5f95c79fc/llama-index-integrations/tools/llama-index-tools-bing-search/llama_index/tools/bing_search/base.py#L8), read Nov 10, 2026
- [GPT Researcher, gpt_researcher/retrievers/bing/bing.py line 49](https://github.com/assafelovic/gpt-researcher/blob/ddd4db362/gpt_researcher/retrievers/bing/bing.py#L49), read Nov 10, 2026
- [Semantic Kernel, dotnet/src/Plugins/Plugins.Web/Bing/BingConnector.cs line 25](https://github.com/microsoft/semantic-kernel/blob/b714e97e3/dotnet/src/Plugins/Plugins.Web/Bing/BingConnector.cs#L25), read Nov 10, 2026
- [ShuiZe, Plugins/infoGather/subdomain/theHarvester/runTheHarvester/discovery/bingsearch.py line 34](https://github.com/0x727/ShuiZe_0x727/blob/4faed5a40/Plugins/infoGather/subdomain/theHarvester/runTheHarvester/discovery/bingsearch.py#L34), read Nov 10, 2026
- [LazyLLM, lazyllm/tools/tools/search/bing_search.py line 12](https://github.com/LazyAGI/LazyLLM/blob/4dc3bdbdb/lazyllm/tools/tools/search/bing_search.py#L12), read Nov 10, 2026
- [comfyui_LLM_party, tools/search_web.py line 189](https://github.com/heshengtao/comfyui_LLM_party/blob/3790b26a4/tools/search_web.py#L189), read Nov 10, 2026
- [Kocoro Shannon, python/llm-service/llm_service/tools/builtin/web_search.py line 805](https://github.com/Kocoro-lab/Shannon/blob/391b61913/python/llm-service/llm_service/tools/builtin/web_search.py#L805), read Nov 10, 2026
- [PyGPT, src/pygpt_net/provider/web/microsoft_bing.py line 55](https://github.com/szczyglis-dev/py-gpt/blob/a6766d0b2/src/pygpt_net/provider/web/microsoft_bing.py#L55), read Nov 10, 2026
- [WebThinker, scripts/run_web_thinker.py line 104](https://github.com/RUC-NLPIR/WebThinker/blob/db387eb32/scripts/run_web_thinker.py#L104), read Nov 10, 2026
- [codefuse-chatbot, configs/default_config.py line 104](https://github.com/codefuse-ai/codefuse-chatbot/blob/d6932ecfc/configs/default_config.py#L104), read Nov 10, 2026
- [Search-o1, scripts/run_rag_agent.py line 164](https://github.com/RUC-NLPIR/Search-o1/blob/c76a700fb/scripts/run_rag_agent.py#L164), read Nov 10, 2026
- [Creds, PowershellScripts/Invoke-EnumerateAzureBlobs.ps1 line 134](https://github.com/S3cur3Th1sSh1t/Creds/blob/51139c4e6/PowershellScripts/Invoke-EnumerateAzureBlobs.ps1#L134), read Nov 10, 2026
- [Omniplex, src/app/api/search/route.ts line 4](https://github.com/Omniplex-ai/omniplex/blob/6b0106501/src/app/api/search/route.ts#L4), read Nov 10, 2026
- [teemo, searchengine/search_bing_api.py line 49](https://github.com/bit4woo/teemo/blob/b7c1bca65/searchengine/search_bing_api.py#L49), read Nov 10, 2026
