Bing Image Search API v7 compatible
Change the address.
Microsoft retired the Bing Search APIs on August 11, 2025, and decommissioned every existing instance. SpecStream answers the Bing Image Search v7 call, GET /v7.0/images/search, in Bing's JSON today.
The switch is one line: https://api.specstream.ai in place of https://api.bing.microsoft.com, and a SpecStream key in the Ocp-Apim-Subscription-Key header. value[].contentUrl is still the image, and hostPageUrl its page.
An image search of up to 10 results costs $0.005, which is $5 per 1,000, the price of a web search, with no plan and no daily limit. The same key runs web search scoring 97.9 F-score on all 1,000 SimpleQA Verified questions.
New accounts get $10 of credit, no card. It covers 2,000 searches.
Bing Image Search API v7 to SpecStream, parameter by parameter and field by field
| SpecStream | Bing Image Search API v7 | |
|---|---|---|
| Address | GET https://api.specstream.ai/v7.0/images/search, and /bing/v7.0/images/search, the path Microsoft's SDKs build | GET https://api.bing.microsoft.com/v7.0/images/search. Retired on August 11, 2025, with existing instances decommissioned |
| The key | A SpecStream key in the Ocp-Apim-Subscription-Key header, or subscription-key= in the address | The subscription key you received when you created a Bing resource in the Azure Portal |
| `count` | 1 to 100, and 10 when you send none. Up to 10 results is one search at $0.005, and each started block of 10 more adds $0.006 | The number of images to return. The default is 35 and the maximum is 150 |
| `offset` | From 0. Send the reply's nextOffset as offset for the next page | The zero based offset: the number of results to skip before returning results |
| `mkt`, `setLang`, `cc`, `safeSearch`, `freshness` | Read. freshness takes Day, Week or Month | Market, language, country, safe search and age of the images |
| The reply | _type Images, readLink, queryContext.originalQuery, totalEstimatedMatches, currentOffset, nextOffset and value | The Images answer, with value[] holding each image |
| `contentUrl` and `hostPageUrl` | contentUrl is the image, hostPageUrl and hostPageDisplayUrl the page it is on, and name its title | contentUrl is a URL to the image on the source website, and hostPageUrl the URL of the webpage that includes the image |
| Sizes, thumbnail and format | width, height, thumbnailUrl, thumbnail {width, height} and encodingFormat (jpeg, png) when the search engines give them | Sizes, a thumbnail and the format of each image, and contentSize, the image's file size |
| Left out | contentSize, datePublished, imageId, imageInsightsToken, insightsMetadata, accentColor, webSearchUrl, pivotSuggestions and queryExpansions, because no engine gives them | Each is a field of Bing's v7 image reply |
| Errors | Bing's ErrorResponse: _type and errors[] with code, subCode and message. A 429 comes with Retry-After and charges nothing | When a request fails, the top level object in the response is the ErrorResponse object |
| Price per 1,000 searches | $5. An image search of up to 10 results is one search at $0.005, the price of a web search | No longer sold. Microsoft's named replacement, Grounding with Bing Search, costs $14 per 1,000 transactions |
| Daily limit | None. Calls spend from your balance, inside the spending limit you set on the account or the key | Grounding with Bing Search: 1 million transactions a day, 150 a second |
Bing's image search call, on SpecStream
The call, before and after
# Before
curl -G https://api.bing.microsoft.com/v7.0/images/search \
-H "Ocp-Apim-Subscription-Key: $BING_KEY" \
--data-urlencode "q=autumn leaves" -d count=10
# After
curl -G https://api.specstream.ai/v7.0/images/search \
-H "Ocp-Apim-Subscription-Key: $SPECSTREAM_KEY" \
--data-urlencode "q=autumn leaves" -d count=10The path, the header, the parameters and the parser stay. The address changes, and the key. Your code reads value[].contentUrl, hostPageUrl and name as it did on Bing.
The parameters the route reads
Read and used: q, count (1 to 100), offset (from 0), mkt, setLang, cc, safeSearch and freshness (Day, Week or Month). setLang and cc win over the language and country in mkt.
A call with no q gets 400 with Bing's ErrorResponse: code InvalidRequest, subCode ParameterMissing, parameter q.
Every field that comes back
The reply has _type Images, readLink (the call's own address, without the key), queryContext with originalQuery, totalEstimatedMatches, currentOffset (the offset you sent), nextOffset (that offset plus the images returned) and value.
Each image in value has name, contentUrl (the image), hostPageUrl and hostPageDisplayUrl (the page it is on). thumbnailUrl, thumbnail with width and height, encodingFormat, width and height are there when the search engines give them, and a reply never makes one up.
Left out, because no engine gives them: contentSize, datePublished, imageId, imageInsightsToken, insightsMetadata, accentColor, webSearchUrl, pivotSuggestions and queryExpansions. The route answers /images/search; /images/trending is not answered. One field is added: specstream on the reply, with the call's price_usd and request_id.
$5 per 1,000 image searches, with no daily limit
An image search of up to 10 results is one search at $0.005, the same price as a web search. Bing's default was 35 images a call; on SpecStream a call that names no count gets 10, so send count when you want more: 30 images cost $0.017. There is no plan to buy and no daily limit. A busy call answers 429 in Bing's error form with Retry-After and is not charged. Credit you buy never expires.
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.
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}'Images, web, news and pages on one key
SpecStream is the live web data engine. The key that answers Bing's image call also answers Bing's web call: the Bing Web Search v7 migration guide covers it parameter by parameter. Web search scores 97.9 F-score on all 1,000 SimpleQA Verified questions and 64.0 item F1 on all 200 WideSearch tasks; the method is on the benchmarks page.
The same key reads pages with the Extract API at $0.80 per 1,000 pages, and Deep Search returns every match for a request in plain words as structured rows at 5¢, 15¢ or $1 a row. Code written for Google's image call moves the same way: see Google Custom Search image search, and every image API SpecStream answers is on the image search API page.
What else Bing Image Search customers can use
Grounding with Bing Search
Microsoft's named replacement, a tool for Azure AI Agents at $14 per 1,000 transactions, up to 150 transactions a second. Microsoft says developers and end users don't have access to the raw content it returns, so there is no list of images to read. SpecStream returns the value[] your code reads, at $5 per 1,000.
Google Custom Search JSON API
Its searchType=image call returns image results at $5 per 1,000 queries, but the API is closed to new customers and Google discontinues it on January 1, 2027. SpecStream answers that call too, on the same key.
Brave Search API
Brave sells complete search results, images included, at $5 per 1,000 requests with $5 in free credits every month, in Brave's own reply shape. SpecStream answers in Bing's shape, so the parser you wrote for v7 keeps working.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to migrate, step by step
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. Set the endpoint to https://api.specstream.ai where your code has https://api.bing.microsoft.com, and put the SpecStream key in the Ocp-Apim-Subscription-Key header. In Python:
import requests
ENDPOINT = "https://api.specstream.ai" # was https://api.bing.microsoft.com
reply = requests.get(
f"{ENDPOINT}/v7.0/images/search",
headers={"Ocp-Apim-Subscription-Key": SPECSTREAM_KEY},
params={"q": "autumn leaves", "count": 10, "mkt": "en-US"},
timeout=30,
)
reply.raise_for_status()
for image in reply.json()["value"]:
print(image["contentUrl"], image["hostPageUrl"], image.get("width"), image.get("height"))3. In JavaScript:
const params = new URLSearchParams({ q: "autumn leaves", count: "10" });
const res = await fetch(`https://api.specstream.ai/v7.0/images/search?${params}`, {
headers: { "Ocp-Apim-Subscription-Key": process.env.SPECSTREAM_KEY },
});
const data = await res.json();
for (const image of data.value) console.log(image.contentUrl, image.hostPageUrl);4. Code built on Microsoft's SDK joins /bing/v7.0 to its endpoint: set that endpoint to https://api.specstream.ai and the call lands on /bing/v7.0/images/search, which answers the same way. In Python that is ImageSearchClient(endpoint="https://api.specstream.ai", credentials=CognitiveServicesCredentials(SPECSTREAM_KEY)), and client.images.search(query=..., count=...) stays as it is. Tested on November 10, 2026 with azure-cognitiveservices-search-imagesearch 2.0.1.
5. Send count when you want more than 10 images, read the size and thumbnail fields with a default, and drop any read of contentSize. To page, send nextOffset as offset. On a 429, wait the seconds in Retry-After and send the call again; nothing was charged.
Frequently asked questions
Something we didn't answer? Talk to a human
Is the Bing Image Search API retired?
https://api.specstream.ai/v7.0/images/search today.What replaces the Bing Image Search API?
GET /v7.0/images/search call in Bing's JSON, at $5 per 1,000 searches. Microsoft points to Grounding with Bing Search at $14 per 1,000 transactions, which gives developers no raw content to read.Does my Bing Image Search code need changes?
https://api.specstream.ai and the Ocp-Apim-Subscription-Key header takes a SpecStream key. q, count, offset, mkt and safeSearch stay, and value[].contentUrl is still the image.Which Bing image fields does SpecStream not return?
contentSize, datePublished, imageId, imageInsightsToken, insightsMetadata, accentColor, webSearchUrl, pivotSuggestions and queryExpansions. width, height, thumbnailUrl, thumbnail and encodingFormat come back when the search engines give them.How much does a Bing compatible image search cost?
429 is not charged.Does SpecStream do reverse image search, like Bing Visual Search?
q is the query, as on Bing's /v7.0/images/search call.Sources
SpecStream wrote this page. Each Microsoft figure comes from Microsoft's own pages, and each other provider's figure from that company's own page. The route's behavior is taken from its code.
- Microsoft, Bing Search APIs retiring on August 11, 2025learn.microsoft.com/en-us/lifecycle/announcements/bing-search-api-retirement, read Nov 10, 2026
- Bing Image Search API v7, endpointslearn.microsoft.com/en-us/bing/search-apis/bing-image-search/reference/endpoints, read Nov 10, 2026
- Bing Image Search API v7, query parameterslearn.microsoft.com/en-us/bing/search-apis/bing-image-search/reference/query-parameters, read Nov 10, 2026
- Bing Image Search API v7, response objectslearn.microsoft.com/en-us/bing/search-apis/bing-image-search/reference/response-objects, read Nov 10, 2026
- Bing Image Search API v7, headerslearn.microsoft.com/en-us/bing/search-apis/bing-image-search/reference/headers, read Nov 10, 2026
- Microsoft, Bing APIs and Grounding with Bing pricingmicrosoft.com/en-us/bing/apis, read Nov 10, 2026
- Microsoft, Grounding with Bing toolslearn.microsoft.com/en-us/azure/foundry/agents/how-to/tools/bing-tools, read Nov 10, 2026
- Google Custom Search JSON API overviewdevelopers.google.com/custom-search/v1/overview, read Nov 10, 2026
- Brave Search APIbrave.com/search/api/, read Nov 10, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 10, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 10, 2026




