POST /v1/images · engine=brave
Brave Image Search API
Image results from Brave Search with full-size URLs, thumbnails, dimensions and the page each image appears on. One page often returns 100 images.
Updated
Overview
What the Brave Image Search API does
Brave Search runs its own web index, built by its own crawler, so its results are independent of both Google and Bing. Use it when you want a second, independent view of the web next to Google, or a non-Google source for an AI agent.
/v1/images with engine: "brave" returns Brave's image results: image_url (the full-size file), thumbnail_url, image_width, image_height, and the link, domain and source of the page it appears on. A single page often holds 100 images.
What you get
-
results[]array - Images: position, title, image_url (full size), thumbnail_url, image_width, image_height, and the host page's link, domain and source.
-
metaobject - request_id, credits_used, cached, latency_ms, parse_quality, engine (the provider that answered) and route (each provider attempt with outcome and ms).
Request
curl https://api.serpkite.com/v1/images \
-H "Authorization: Bearer $SERPKITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q":"espresso machine","engine":"brave"}'Response (live response, trimmed)
{
"request": {
"country": "us",
"endpoint": "images",
"engine": "brave",
"language": "en",
"num": 10,
"page": 1,
"q": "espresso machine"
},
"results": [
{
"domain": "unsplash.com",
"image_height": 4500,
"image_url": "https://images.unsplash.com/photo-1769970630324-64c66587e525?fm=jpg&q=60&w=3000&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=NHwxMjA3fDA=",
"image_width": 3000,
"link": "https://unsplash.com/s/photos/espresso-machine",
"position": 1,
"source": "unsplash.com",
"thumbnail_url": "https://imgs.search.brave.com/OAcfgr6F2qnP9gueftSD5MjG2wiRbW61RYHft5bsJ2s/rs:fit:500:0:1:0/g:ce/aHR0cHM6Ly9pbWFn/ZXMudW5zcGxhc2gu/Y29tL3Bob3RvLTE3/Njk5NzA2MzAzMjQt/NjRjNjY1ODdlNTI1/P2ZtPWpwZyZxPTYw/Jn…",
"title": "Espresso pouring into a white cup from machine"
},
{
"domain": "americastestkitchen.com",
"image_height": 452,
"image_url": "https://res.cloudinary.com/hksqkdlah/image/upload/c_fill,dpr_2.0,f_auto,fl_lossy.progressive.strip_profile,g_faces:auto,q_auto:low,w_226/v1/ATK%20Reviews/2025/Espresso%20Machines/Espresso_Machines_Bad_Drip_Tray",
"image_width": 452,
"link": "https://www.americastestkitchen.com/equipment_reviews/1803-espresso-machines",
"position": 2,
"source": "americastestkitchen.com",
"thumbnail_url": "https://imgs.search.brave.com/5qkB27DjX9Rgpcpy7UIX3ebfl_X7dkgXG-PdCEa_7tk/rs:fit:500:0:1:0/g:ce/aHR0cHM6Ly9yZXMu/Y2xvdWRpbmFyeS5j/b20vaGtzcWtkbGFo/L2ltYWdlL3VwbG9h/ZC9jX2ZpbGwsZHBy/XzIuMCxmX2F1dG8s/Zm…",
"title": ""
}
],
"meta": {
"request_id": "req_01J8ZK4M6Q2V7",
"credits_used": 1,
"cached": false,
"engine": "brave",
"route": [
{
"provider": "brave",
"outcome": "ok",
"ms": 1682
}
],
"latency_ms": 1701,
"parse_quality": "ok"
}
}
Every response also carries X-Credits-Used, X-Credits-Remaining,
X-Cache and X-Tokens-Estimate headers.
Run this query in the playground
One key, many engines
Brave through SerpKite
- Same key, same envelope and the same SDK call as Google: only
enginechanges. meta.enginenames the provider that answered andmeta.routelists every attempt. A result is never relabelled.engine: "auto"keeps Google first and falls back to Brave and the other engines only when Google fails. How fallback works- Failed, blocked and empty attempts are free; you pay only for the provider that answered.
Everything Brave serves on SerpKite
-
Brave Search API
POST /v1/search · engine=brave -
Brave News API
POST /v1/news · engine=brave -
Brave Image Search API
POST /v1/images · engine=brave -
Brave Video Search API
POST /v1/videos · engine=brave
See all engines on the multi-engine search page or in the providers reference.
engine=auto answered by Brave (illustrative)
{
"request": {
"endpoint": "images",
"engine": "auto",
"q": "espresso machine"
},
"meta": {
"engine": "brave",
"route": [
{
"provider": "google",
"outcome": "blocked",
"ms": 2140
},
{
"provider": "brave",
"outcome": "ok",
"ms": 640
}
]
}
}Measured Oct 25, 2026
How Brave behaves on this endpoint
Three queries ("espresso machine", "northern lights norway", "mid century modern chair") sent to /v1/images with engine=brave through the production API.
- Images per page
- 100 on all three queries
- Median response time
- 1.7 s
- Fields on every image
image_url,thumbnail_url,image_width,image_height,link,domainandsource- Images with a title
- 96%
- Image size
- Median width 1,000 px; 54% at least 1,000 px wide
- Host sites
- 56 different domains across 300 images
Filters and limits
-
Brave returns its image results as one list of up to 200. SerpKite cuts it into pages of 100, so
page: 2holds the rest; a page past the end comes back empty and isn't charged. -
timeworks forday,week,monthandyear, andstart_date/end_dateranges work too.time: "hour"is a400 invalid_requestand isn't charged: Brave has no past-hour filter. -
safe: trueuses Brave's strict SafeSearch. Otherwise Brave's moderate setting applies; it can't be switched off completely. -
countryandlanguageare sent as Brave'scountryandsearch_langon every request (Japanese isjp, and Chinese is split into simplified and traditional).
Reference
Parameters
The parameters /v1/images accepts, in the JSON body or the query string.
| Name | Type | Default | Description |
|---|---|---|---|
q
required
|
string | – | The search query. Required. Up to 2,048 characters. |
engine
|
string | string[] | "brave" for this page. "auto" tries Google first and falls back to other engines; a list such as ["google", "brave"] limits the route to those engines. | |
country
|
string | us | Country to search from, as a two-letter ISO code (us, gb, de, in…). Defaults to the country a location ends in. |
language
|
string | en | Interface language, as a language code with an optional region (en, de, pt-BR, zh-TW…). |
page
|
integer | 1 | Results page, 1–10. Each page is billed separately. |
format
|
string | json | Response format. markdown is LLM-ready prose; compact is JSON with only the fields agents need. Values: json, compact, markdown. |
fields
|
string | – | Comma-separated projection, e.g. results.title,results.link,knowledge_graph. Cuts tokens. |
max_age
|
integer | – | Accept a cached result up to this many seconds old. Cache hits cost 50% of the credits. |
Full reference, error codes and headers are in the /v1/images reference. Queue up to 100 requests at half price with POST /v1/batches.
Use cases
What people build with the Brave Image Search API
A second index for agents
Ground answers in two independent indexes: Google by default, Brave with one parameter.
Fallback when Google is blocked
engine=auto tries Google first and answers from Brave when Google is unavailable.
Index comparison
Run the same query on Google and Brave and compare which domains each index ranks.
Pricing
Brave Image Search API pricing
Cost per call
1 credit
per page of results
- From $0.60 per 1,000 calls at volume.
- Credits never expire. No subscription.
- Failed, empty and blocked calls are refunded.
- 2,500 free credits = 2,500 calls, then 1,000 credits a month.
For reference: Serper lists Google searches at $1.00 per 1k on its entry tier and $0.30 at its best tier, and its credits expire after 6 months. SerpKite credits cost $1.00 to $0.60 per 1k.
| Pack | Price | Per 1k credits | Per 1k calls | Calls per pack |
|---|---|---|---|---|
| Starter | $10 | $1.00 | $1.00 | 10,000 |
| Growth | $50 | $0.80 | $0.80 | 62,500 |
| Pro | $300 | $0.60 | $0.60 | 500,000 |
FAQ
Brave Image Search API: common questions
Keep exploring
Related APIs and integrations
Use it from
Start building
Start with the Brave Image Search API
2,500 free credits, then 1,000 every month. No credit card.