images-search
brave/brave-search-skills
Search for images with SafeSearch filtering and retrieve up to 200 results with metadata.
What is images-search?
Images Search queries the Brave Search API to find images matching a search term, returning title, source URL, thumbnail, and original image dimensions. Use it when you need visual content discovery, enrichment, or bulk image sourcing with privacy-respecting Brave-proxied thumbnails.
- Search images by query with 1-400 character terms (max 50 words)
- Return up to 200 image results per request with title, source, and thumbnail
- Filter by country (2-letter code or ALL) and language
- Apply SafeSearch filtering (strict by default, or off)
- Provide original image URLs, dimensions, and low-res placeholders for progressive loading
- Include confidence scores (low/medium/high) and offensive-content warnings
How to install images-search
npx skills add https://github.com/brave/brave-search-skills --skill images-search- Brave Search API key (get at https://api.search.brave.com)
- Active Search plan subscription (https://api-dashboard.search.brave.com/app/subscriptions/subscribe)
- API key provided as X-Subscription-Token header in requests
How to use images-search
- 1.Set the BRAVE_SEARCH_API_KEY environment variable with your API key
- 2.Call the endpoint GET https://api.search.brave.com/res/v1/images/search with required parameter q (search query)
- 3.Optionally add country, search_lang, count (1-200), safesearch (off or strict), and spellcheck parameters
- 4.Parse the JSON response to extract results array with title, url, source, thumbnail, and properties fields
- 5.Use thumbnail.src for Brave-proxied preview images and properties.url for original full-resolution images
Use cases
- Build image galleries or mood boards by searching and retrieving 200 images in one request
- Enrich articles or generated content with relevant images filtered by locale and SafeSearch setting
- Create visual research tools that display Brave-proxied thumbnails while linking to original full-resolution images
- Implement bulk image sourcing pipelines for analysis or curation with confidence scoring
- Content creators and developers building image-heavy applications
- Teams enriching articles or generated content with visual assets
- Researchers and analysts needing bulk image retrieval with metadata
- Applications requiring family-friendly image results by default
images-search FAQ
images-search returns image-specific metadata (dimensions, thumbnails, confidence scores) and supports up to 200 results per request. Use it when you need visual content; web-search is better for general information retrieval.
Yes. SafeSearch defaults to strict (family-friendly) and can be set to off. Unlike web/video/news search, images only support two modes—no moderate option.
Yes. Thumbnails are Brave-proxied (~500px width) for user privacy. The original full-resolution image URL is in properties.url if you need the unproxied version.
Yes. properties.width and properties.height contain the original image dimensions, though they may be null for some images.
Confidence indicates relevance: low, medium, or high. Use it to filter or rank results by how well they match your search query.
Full instructions (SKILL.md)
Source of truth, from brave/brave-search-skills.
name: images-search description: USE FOR image search. Returns images with title, source URL, thumbnail. Supports SafeSearch filter. Up to 200 results.
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
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"
Endpoint
GET https://api.search.brave.com/res/v1/images/search
Authentication: 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
Related skills
More from brave/brave-search-skills and the wider catalog.

news-search
Search news articles with freshness filtering, SafeSearch, and custom ranking via Goggles.

web-search
Web search API with ranked results, snippets, and rich metadata—use for data extraction and custom ranking.

dingtalk-document
Manage DingTalk knowledge bases and documents—create, read, write, and control member access.

dingtalk-message
Send DingTalk messages via Webhook robots, enterprise apps, work notifications, and more.

crawl4ai
Use when scraping JavaScript-heavy pages or SPAs, crawling multiple URLs concurrently, extracting structured data with reusable CSS/JSON schemas, or building automated web data pipelines. Wraps the Crawl4AI library (`crwl` CLI and Python SDK) with schema-generation patterns for LLM-free extraction. Triggers on crawl4ai, crwl, scrape JS-heavy site, scrape SPA, headless browser scrape, schema-based extraction, batch crawl, sitemap crawl, web data pipeline. SKIP when a static HTML page can be read with `defuddle` / `fetch-web` — those are faster cold-start and don't need a browser.

agent-browser
Browser automation CLI for AI agents to navigate, interact with, and test websites programmatically.