<!-- twin of https://specstream.ai/migrate/bing-image-search -->
# Bing Image Search API v7 compatible: change the address

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

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.

[Get an API key](https://specstream.ai/signup?src=alternatives-migrate-bing-image-search&utm_source=alternatives-md&utm_campaign=migrate-bing-image-search&returnTo=%2Fworkspace%2Fsearch%3Froute%3Dbing-image-search) 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=10
```

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

The same key reads pages with the [Extract API](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=migrate-bing-image-search) at $0.80 per 1,000 pages, and [Deep Search](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=migrate-bing-image-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](https://specstream.ai/migrate/google-image-search?utm_source=alternatives&utm_campaign=migrate-bing-image-search), and every image API SpecStream answers is on the [image search API](https://specstream.ai/image-search-api?utm_source=alternatives&utm_campaign=migrate-bing-image-search) 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 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

### Is the Bing Image Search API retired?

Yes, since August 11, 2025, when Microsoft retired the Bing Search APIs and decommissioned existing instances. SpecStream answers the v7 image call at `https://api.specstream.ai/v7.0/images/search` today.

### What replaces the Bing Image Search API?

SpecStream answers the same `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?

One line: the endpoint becomes `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?

Nine: `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?

$0.005 for up to 10 images, which is $5 per 1,000, the price of a web search, and each started block of 10 more adds $0.006. There is no plan and no daily limit, and a call stopped by a `429` is not charged.

### Does SpecStream do reverse image search, like Bing Visual Search?

No. SpecStream searches images by words: `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, 2025](https://learn.microsoft.com/en-us/lifecycle/announcements/bing-search-api-retirement), read Nov 10, 2026
- [Bing Image Search API v7, endpoints](https://learn.microsoft.com/en-us/bing/search-apis/bing-image-search/reference/endpoints), read Nov 10, 2026
- [Bing Image Search API v7, query parameters](https://learn.microsoft.com/en-us/bing/search-apis/bing-image-search/reference/query-parameters), read Nov 10, 2026
- [Bing Image Search API v7, response objects](https://learn.microsoft.com/en-us/bing/search-apis/bing-image-search/reference/response-objects), read Nov 10, 2026
- [Bing Image Search API v7, headers](https://learn.microsoft.com/en-us/bing/search-apis/bing-image-search/reference/headers), read Nov 10, 2026
- [Microsoft, Bing APIs and Grounding with Bing pricing](https://www.microsoft.com/en-us/bing/apis), read Nov 10, 2026
- [Microsoft, Grounding with Bing tools](https://learn.microsoft.com/en-us/azure/foundry/agents/how-to/tools/bing-tools), read Nov 10, 2026
- [Google Custom Search JSON API overview](https://developers.google.com/custom-search/v1/overview), read Nov 10, 2026
- [Brave Search API](https://brave.com/search/api/), read Nov 10, 2026
- [SpecStream benchmarks](https://specstream.ai/benchmarks), read Nov 10, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 10, 2026
