Bing and Google search API
For teams whose product still calls the Bing Web Search API or the Google Custom Search JSON API: one setting points it at the Search API, and its searches work again.
Microsoft retired the Bing Web Search API in August 2025. Google closed the Custom Search JSON API to new customers and says: "Existing Custom Search JSON API customers have until January 1, 2027 to transition to an alternative solution."
The Search API answers both requests in their own shape. Your product keeps its code. You change the address and the key.
The two addresses
Bing Web Search API v7. Use this search address in place of https://api.bing.microsoft.com/v7.0/search. Your key goes in the Ocp-Apim-Subscription-Key header. The reply has webPages.value with name, url and snippet.
Google Custom Search JSON API. Use https://api.specstream.ai as the base address in place of https://www.googleapis.com or https://customsearch.googleapis.com. The full search address is below. Your key goes in key=. cx is accepted with any value. The reply has items with title, link and snippet.
Products that call Bing
Set the setting to the value, and put your key where the last column says, in place of the Bing key.
| Product | Setting | Value | Your key goes in |
|---|---|---|---|
| Open WebUI | BING_SEARCH_V7_ENDPOINT | https://api.specstream.ai/v7.0/search | BING_SEARCH_V7_SUBSCRIPTION_KEY |
| Semantic Kernel (.NET) | BingTextSearchOptions.Endpoint | https://api.specstream.ai/v7.0/search | apiKey of BingTextSearch |
| Semantic Kernel (Java) | bing.search.url or BING_SEARCH_URL | https://api.specstream.ai/v7.0/search | apiKey of BingConnector |
| LazyLLM | endpoint of BingSearch | https://api.specstream.ai/v7.0/search | subscription_key |
| spider (spider_agent) | BingProvider::with_api_url | https://api.specstream.ai/v7.0/search | BingProvider::new |
| Memoh (Bing provider) | base_url | https://api.specstream.ai/v7.0/search | api_key |
| OmAgent | bing_endpoint | https://api.specstream.ai/v7.0/search | bing_api_key |
| WebThinker | --bing_endpoint | https://api.specstream.ai/v7.0/search | --bing_subscription_key |
| MM-REACT | BING_SEARCH_URL | https://api.specstream.ai/v7.0/search | BING_SUBSCRIPTION_KEY |
| LLMxMapReduce | BING_SEARCH_V7_ENDPOINT | https://api.specstream.ai/v7.0/search | BING_SEARCH_V7_SUBSCRIPTION_KEY, with SERP_API_KEY unset |
Products that call Google
Set the setting to the value, and put your key where the last column says, in place of the Google key. Where the product asks for a search engine ID, any value works.
| Product | Setting | Value | Your key goes in |
|---|---|---|---|
| Memoh (Google provider) | base_url | https://api.specstream.ai/customsearch/v1 | api_key, and any value in cx |
| neuro-san-studio | GOOGLE_SEARCH_URL | https://api.specstream.ai/customsearch/v1 | GOOGLE_SEARCH_API_KEY, and any value in GOOGLE_SEARCH_CSE_ID |
| OpenAgent (Google web search provider) | providerUrl | https://api.specstream.ai/customsearch/v1 | clientSecret, and any value in clientId |
| trpc-agent-go | WithBaseURL | https://api.specstream.ai | WithAPIKey, and any value in WithEngineID |
| Mattermost Agents plugin | API URL (optional) | https://api.specstream.ai/customsearch/v1 | Google API Key, and any value in Search Engine ID |
| SWIRL (SearchProvider) | url | https://api.specstream.ai/customsearch/v1 | credentials as key=YOUR_SPECSTREAM_KEY |
Check it works
Run one search in your product. It returns results as it did before. To check your key first, call the address yourself:
A wrong or missing key gets status 401.
Cost
Each search is one Search API call at $5 per 1,000 searches of up to 10 results. It comes out of your balance, with no quote and no approval. Search API has the details.
A call that asks for more than 10 results costs more. Set the count to 10 or less to pay the base price.
Your key
Get your key on the Search API screen of your SpecStream workspace. New accounts start with $10 of credit, no card.
Tavily, Exa, Brave, Serper, SearXNG and Firecrawl clients move the same way: Search API by one setting.