
๐งฉ One of 7 skills in the brave/brave-search-skills package โ works on its own, and pairs well with its siblings.
This is the playbook your agent receives when the skill activates โ you don't need to read it to use the skill, but it's here to audit before installing.
Images Search
Requires API Key: Get one at https://api.search.brave.com
Plan: Included in the Search plan. See https://api-dashboard.search.brave.com/app/subscriptions/subscribe
Endpoint
GET https://api.search.brave.com/res/v1/images/searchAuthentication: X-Subscription-Token: <API_KEY> header
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
q | string | Yes | - | Search query (1-400 chars, max 50 words) |
country | string | No | US | Search country (2-letter country code or ALL) |
search_lang | string | No | en | 2+ char language code |
count | int | No | 50 | Results to return (1-200) |
safesearch | string | No | strict | off or strict (no moderate for images) |
spellcheck | bool | No | true | Auto-correct query; corrected query in query.altered |
Response Format
{
"type": "images",
"query": {
"original": "mountain landscape",
"altered": null,
"spellcheck_off": false,
"show_strict_warning": false
},
"results": [
{
"type": "image_result",
"title": "Beautiful Mountain Landscape",
"url": "https://example.com/mountain-photo",
"source": "example.com",
"page_fetched": "2025-09-15T10:30:00Z",
"thumbnail": {
"src": "https://imgs.search.brave.com/...",
"width": 200,
"height": 150
},
"properties": {
"url": "https://example.com/images/mountain.jpg",
"placeholder": "https://imgs.search.brave.com/placeholder/...",
"width": 1920,
"height": 1080
},
"meta_url": {
"scheme": "https",
"netloc": "example.com",
"hostname": "example.com",
"favicon": "https://imgs.search.brave.com/favicon/...",
"path": "/mountain-photo"
},
"confidence": "high"
}
],
"extra": {
"might_be_offensive": false
}
}Response Fields
| Field | Type | Description |
|---|---|---|
type | string | Always "images" |
query.original | string | Original query |
query.altered | string? | Spellchecked query (null if no correction) |
query.spellcheck_off | bool? | Whether spellcheck was disabled |
query.show_strict_warning | bool? | True if strict safesearch hid relevant results |
results[] | array | List of image results |
results[].type | string | Always "image_result" |
results[].title | string? | Image title |
results[].url | string? | Page URL where image was found |
results[].source | string? | Source domain |
results[].page_fetched | string? | ISO datetime of last page crawl |
results[].thumbnail.src | string? | Brave-proxied thumbnail URL (~500px width) |
results[].thumbnail.width | int? | Thumbnail width |
results[].thumbnail.height | int? | Thumbnail height |
results[].properties.url | string? | Original full-size image URL |
results[].properties.placeholder | string? | Low-res placeholder URL (Brave-proxied) |
results[].properties.width | int? | Original image width (may be null) |
results[].properties.height | int? | Original image height (may be null) |
results[].meta_url.scheme | string? | URL protocol scheme |
results[].meta_url.netloc | string? | Network location |
results[].meta_url.hostname | string? | Lowercased domain |
results[].meta_url.favicon | string? | Favicon URL |
results[].meta_url.path | string? | URL path |
results[].confidence | string? | Relevance: low, medium, or high |
extra.might_be_offensive | bool | Whether results may contain offensive content |
Use Cases
- Visual content discovery: Build image galleries, mood boards, or visual research tools. Use
count=200for comprehensive coverage. Prefer overweb-searchwhen you need image-specific metadata (dimensions, thumbnails). - Content enrichment: Add relevant images to articles or generated content. Use
countryandsearch_langto target your audience's locale. - Safe image retrieval: Default
safesearch=strictensures family-friendly results out of the box. Only two modes (off/strict) โ no moderate option, unlike web/video/news search. - High-volume batch retrieval: Up to 200 images per request (vs 20 for web, 50 for videos/news). Ideal for bulk image sourcing or visual analysis pipelines.
Notes
- SafeSearch: Defaults to
strictfor images (stricter than web search) - High volume: Can return up to 200 results per request
- Thumbnails: Brave-proxied for user privacy (500px width). Use
properties.urlfor original full-resolution image. - Dimensions:
properties.width/heightmay be missing for some images - Placeholder:
properties.placeholderis a low-res URL (not inline base64) useful for progressive loading UX
Copy & paste โ that's it
npx skills add brave/brave-search-skills --skill "images-search" --full-depthRun this in your project โ your agent picks the skill up automatically.
Quick Start (cURL)
Basic Search
curl -s "https://api.search.brave.com/res/v1/images/search?q=mountain+landscape" \
-H "Accept: application/json" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"With Parameters
curl -s "https://api.search.brave.com/res/v1/images/search" \
-H "Accept: application/json" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-G \
--data-urlencode "q=northern lights photography" \
--data-urlencode "country=US" \
--data-urlencode "search_lang=en" \
--data-urlencode "count=20" \
--data-urlencode "safesearch=strict"No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under MITโ you can use, modify, and redistribute it under that license's terms.
View the full license file on GitHub โ