<!-- twin of https://specstream.ai/migrate/brave-image-search -->
# Brave image search API compatible: change the address

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

Brave's Search plan is $5 per 1,000 requests, images included, up to 50 queries per second. Since November 10, 2026, SpecStream answers Brave's `/res/v1/images/search` call in Brave's JSON at the same $5 per 1,000.

The switch is the host: `https://api.specstream.ai` where your code has `https://api.search.brave.com`. The path, the `X-Subscription-Token` header and your parser stay; the token is now a SpecStream key.

An image search of up to 10 results costs $0.005, the price of a web search, with no daily limit. A new account gets $10 of credit, no card, which covers 2,000 image searches.

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

## Brave image search to SpecStream, parameter by parameter and field by field

| | SpecStream | Brave |
|---|---|---|
| Address | `GET https://api.specstream.ai/res/v1/images/search`, or `POST` with a JSON body | `GET https://api.search.brave.com/res/v1/images/search` |
| The key | A SpecStream key in the `X-Subscription-Token` header | A Brave key in the `X-Subscription-Token` header |
| Request | `q`, `country`, `search_lang`, `safesearch`, and `count` from 1 to 100 (10 when unset) | `q`, `country`, `search_lang`, and `count` up to 200 images (50 by default) |
| Each image | `type`, `title`, `url` (the page the image is on), `source`, `properties.url` (the image) and `meta_url`. `thumbnail`, the image's `width` and `height`, and `format` when the search engines give them | `results[]` with a thumbnail and `properties` holding the original image's `url` |
| Rate | No limit per key and no daily limit. A busy call gets `429` with `Retry-After` and is not charged | Up to 50 queries per second on the Search plan |
| Price | $0.005 a search of up to 10 images, $5 per 1,000 | $5 per 1,000 requests on the Search plan, images included |
| Free to start | $10 of credit, no card, which covers 2,000 image searches | $5 in free credits every month |

## The Brave image search reference, on SpecStream

### The call, before and after

```
# Before
curl -G "https://api.search.brave.com/res/v1/images/search" \
  -H "X-Subscription-Token: $BRAVE_API_KEY" \
  --data-urlencode "q=desert dunes" -d count=10

# After
curl -G "https://api.specstream.ai/res/v1/images/search" \
  -H "X-Subscription-Token: $SPECSTREAM_API_KEY" \
  --data-urlencode "q=desert dunes" -d count=10
```

The same path also answers `POST` with the parameters in a JSON body, for a client that builds its requests that way. The web search at `/res/v1/web/search` answers at the same host with the same key.

### What the route reads, and what it refuses

Read and applied: `q`, `country`, `search_lang`, `safesearch` and `count`. A call that sends no `count` gets 10 results at the base price, where Brave's default is 50; send `count` to ask for more, up to 100 in one call.

Refused, in Brave's `ErrorResponse` form: a call with no `X-Subscription-Token` gets `401`, and a `count` outside 1 to 100 gets `400` naming the range, so a client that sends Brave's maximum of 200 sets `count=100`.

### Every field that comes back

The reply has `type` set to `images`, `query` with `original` and the `country` you sent, and `results[]`. Each result has `type` set to `image_result`, `title`, `url` for the page the image is on, `source`, `properties` with `url` for the image itself, and `meta_url` with `scheme`, `netloc`, `hostname` and `path`.

`thumbnail` with `src`, `width` and `height`, the image's `properties.width` and `properties.height`, and `properties.format` such as `jpeg` or `png` are there when the search engines give them, and absent otherwise; the route never fills them in. One field is added, `specstream`, with the call's price.

Left out of each result: `page_fetched`, `properties.placeholder`, `meta_url.favicon` and `confidence`.

### The same price, no cap a second

Brave's Search plan prices a request at $5 per 1,000 and caps a key at 50 queries per second. On SpecStream an image search of up to 10 results is $0.005, the same as a web search with no daily limit. `count` asks for up to 100, and each started block of 10 more adds $0.006, so `count=100` costs $0.059. Credit you buy never expires. A busy call gets `429` in Brave's form with `Retry-After` and charges nothing.

### What is kept, set on the key

A key made with `zero_retention` keeps no request text and no answer once the reply is sent, on image searches as on every other call. `spend_cap_cents` sets the most that key can spend, so a loop in a Brave client cannot run past it.

```
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

The results come from the image search of several engines at once, one result for each image address. The same key answers Brave's web search at the same host (the [Brave migration](https://specstream.ai/migrate/brave?utm_source=alternatives&utm_campaign=migrate-brave-image-search) has every web field), and SerpApi's, Serper's and Google Custom Search's image calls too (see the [SerpApi Google Images](https://specstream.ai/migrate/serpapi-google-images?utm_source=alternatives&utm_campaign=migrate-brave-image-search) and [Google image search](https://specstream.ai/migrate/google-image-search?utm_source=alternatives&utm_campaign=migrate-brave-image-search) migrations).

The [Extract API](https://specstream.ai/extract-api?utm_source=alternatives&utm_campaign=migrate-brave-image-search) reads the page behind each `url`, up to 20 pages a call at $0.80 per 1,000 pages, and a page with no text is not charged. [Deep Search](https://specstream.ai/deep-search?utm_source=alternatives&utm_campaign=migrate-brave-image-search) returns every match for a request in plain words as structured rows, at 5¢, 15¢ or $1 a row, with a source URL on every value.

On SimpleQA Verified the SpecStream Search API scores 97.9 F-score on all 1,000 official questions, 978 of them correct, and on WideSearch 64.0 item F1 and 43.4 row F1 on all 200 official tasks. The Extract API scores 0.908 F1 on WCXB. Each score and its method is on the [benchmarks](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=migrate-brave-image-search) page.

## What else Brave image search users price

### Serper

Google results sold in credit packs from $1.00 per 1,000 for 50,000 credits, valid for 6 months, with 2,500 free queries. SpecStream credit never expires, and the same key answers Serper's `/images` call ([Serper images migration](https://specstream.ai/migrate/serper-images?utm_source=alternatives&utm_campaign=migrate-brave-image-search)).

### SerpApi

A plan per month: Starter is $25 for 1,000 searches, 200 an hour, and the free plan has 250 searches a month. SpecStream answers SerpApi's `engine=google_images` call at $0.005 with no plan ([SerpApi Google Images migration](https://specstream.ai/migrate/serpapi-google-images?utm_source=alternatives&utm_campaign=migrate-brave-image-search)).

### SearchApi

Developer is $40 a month for 10,000 searches, $4 per 1,000, after 100 free requests. SpecStream answers SearchApi's `engine=google_images` call with no plan to renew ([SearchApi Google Images migration](https://specstream.ai/migrate/searchapi-google-images?utm_source=alternatives&utm_campaign=migrate-brave-image-search)).

## 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 image searches.

2. Set the host to `https://api.specstream.ai` where your code has `https://api.search.brave.com`, and put the SpecStream key in `X-Subscription-Token`. In Python:

```
import requests

URL = "https://api.specstream.ai/res/v1/images/search"  # was https://api.search.brave.com/res/v1/images/search

reply = requests.get(URL, {"q": "desert dunes", "count": 20, "country": "us", "search_lang": "en"}, headers={"X-Subscription-Token": SPECSTREAM_KEY}, timeout=30)
reply.raise_for_status()
for result in reply.json()["results"]:
    image = result["properties"]
    print(image["url"], image.get("width"), image.get("height"), result["url"])
```

3. In JavaScript:

```
const url = new URL("https://api.specstream.ai/res/v1/images/search");
url.search = new URLSearchParams({ q: "desert dunes", count: "20" });
const reply = await fetch(url, { headers: { "X-Subscription-Token": process.env.SPECSTREAM_KEY } });
const data = await reply.json();
for (const result of data.results) console.log(result.title, result.properties.url, result.thumbnail?.src ?? "");
```

4. Set `count` to the number of images you want, from 1 to 100. Read `429` as a call to send again after `Retry-After`. It is not charged.

## Frequently asked questions

### Is there a Brave image search API alternative with the same JSON?

Yes. Since November 10, 2026, SpecStream answers `GET https://api.specstream.ai/res/v1/images/search` in Brave's shape, with the key in `X-Subscription-Token`. A search of up to 10 images costs $0.005.

### How much does the Brave image search API cost?

Brave's Search plan is $5 per 1,000 requests, images included, up to 50 queries per second, with $5 in free credits every month. SpecStream is also $5 per 1,000 image searches.

### How do I migrate from Brave image search?

Change one host: `https://api.search.brave.com` becomes `https://api.specstream.ai`, and a SpecStream key goes in `X-Subscription-Token`. `q`, `country`, `search_lang`, `safesearch` and `count` keep their meaning.

### How many images can one call ask for?

Up to 100 with `count`, and 10 when `count` is unset. Each started block of 10 above the first 10 adds $0.006.

### Which Brave image fields does SpecStream return?

Six on every result: `type`, `title`, `url`, `source`, `properties.url` and `meta_url`. `thumbnail`, the image's `width` and `height`, and `format` come when the search engines give them.

### Which Brave image fields are left out?

Four: `page_fetched`, `properties.placeholder`, `meta_url.favicon` and `confidence`.

## Sources

SpecStream wrote this page. Each Brave figure comes from Brave's own pages, and each other provider's figure from that company's own page, all read on Nov 10, 2026. The route's behavior comes from its code.

- [Brave Search API](https://brave.com/search/api/), read Nov 10, 2026
- [Brave Image Search API documentation](https://api-dashboard.search.brave.com/app/documentation/image-search/get-started), read Nov 10, 2026
- [Serper](https://serper.dev/), read Nov 10, 2026
- [SerpApi pricing](https://serpapi.com/pricing.md), read Nov 10, 2026
- [SearchApi pricing](https://www.searchapi.io/pricing), read Nov 10, 2026
- [SpecStream benchmarks](https://specstream.ai/benchmarks), read Nov 10, 2026
- [SpecStream pricing](https://specstream.ai/pricing), read Nov 10, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 10, 2026
