
Images Search
Give your coding agent programmatic Brave image search with thumbnails, source URLs, and SafeSearch when you need visuals for research, landing pages, or marketing assets.
Install
npx skills add https://github.com/brave/brave-search-skills --skill images-searchWhat is this skill?
- Brave Images API integration with X-Subscription-Token authentication
- Returns title, source URL, and thumbnail per result
- SafeSearch filter (e.g. strict) for brand-safe asset picking
- Up to 200 results per request with country and search_lang parameters
- Documented cURL quick start and query encoding examples
Adoption & trust: 583 installs on skills.sh; 148 GitHub stars; 2/3 security scanners passed (skills.sh audits).
Recommended Skills
Journey fit
Image search is most often pulled early in the journey when solo builders gather visual references, competitor screenshots, and mood-board assets before committing to design or copy. The research subphase is the canonical shelf because the skill’s primary trigger is discovery queries (landscapes, photography, reference imagery) rather than shipping or ops automation.
Common Questions / FAQ
Is Images Search safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Images Search
# 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 ```bash 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 ```bash 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 ```http 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 ```json { "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` | strin