Brave Image Search
Search images via Brave Search API.
Usage
curl -s "https://api.search.brave.com/res/v1/images/search?q=QUERY&count=COUNT" \
-H "X-Subscription-Token: $BRAVE_API_KEY"
Parameters
| Param | Required | Description |
|---|
q
| yes | Search query (URL-encoded) |
count
| no | Results count (1-100, default 20) |
country
| no | 2-letter code (US, DE, IL) for region bias |
search_lang
| no | Language code (en, de, he) |
safesearch
| no | off, moderate, strict (default: moderate) |
Response Parsing
Key fields in each result:
results[].title
— Image title
results[].properties.url
— Full image URL
results[].thumbnail.src
— Thumbnail URL
results[].source
— Source website
results[].properties.width/height
— Dimensions
Example
Search for "sunset beach" images in Israel:
curl -s "https://api.search.brave.com/res/v1/images/search?q=sunset%20beach&count=5&country=IL" \
-H "X-Subscription-Token: $BRAVE_API_KEY"
Then extract from JSON response:
- Thumbnail:
.results[0].thumbnail.src
- Full image:
.results[0].properties.url
Delivering Results
When presenting image search results:
- Send images directly to the user (don't just list URLs)
- Use
results[].properties.url
for full images or results[].thumbnail.src
for thumbnails
- Include image title as caption
- If more results exist than shown, tell the user (e.g., "Found 20 images, showing 3 — want more?")
Example flow:
User: "find me pictures of sunsets"
→ Search with count=10
→ Send 3-5 images with captions
→ "Found 10 sunset images, showing 5. Want to see more?"
Notes
- URL-encode query strings (spaces →
%20
)
- API key from env:
$BRAVE_API_KEY
- Respect rate limits per subscription tier