skills/ai-apis/brave-search/SKILL.md
Privacy-first web search API with filters and snippet extraction.
npx skillsauth add alphaonedev/openclaw-graph brave-searchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides access to Brave Search, a privacy-focused web search API that enables querying the web without tracking, while supporting filters and snippet extraction for AI-driven applications.
Use this when you need quick, private web searches in AI workflows, such as fetching real-time data for responses, avoiding data collection in user queries, or integrating search into tools that require filtered results (e.g., safe search for family-friendly content).
Always authenticate requests using the $BRAVE_API_KEY environment variable. Make HTTP GET requests to the endpoint with required parameters. Structure queries as URL-encoded strings. For AI agents, integrate via HTTP clients in languages like Python or curl. Test in a loop for pagination by incrementing the 'offset' parameter (e.g., start at 0, then 10).
Endpoint: https://api.search.brave.com/res/v1/web/search
Authentication: Include header 'X-Subscription-Token: $BRAVE_API_KEY' (set via export BRAVE_API_KEY=your_key in your environment).
Key parameters: q (query string), count (number of results, e.g., 10), offset (for pagination, e.g., 0), search_lang (e.g., "en"), country (e.g., "US"), safe (e.g., "active" for safe search).
Example curl command:
curl -H "X-Subscription-Token: $BRAVE_API_KEY" "https://api.search.brave.com/res/v1/web/search?q=AI+assistants&count=5&search_lang=en"
Python snippet using requests:
import requests; import os;
response = requests.get('https://api.search.brave.com/res/v1/web/search', headers={'X-Subscription-Token': os.environ['BRAVE_API_KEY']], params={'q': 'open source AI', 'count': 3})
Config format: Store API key in .env files as BRAVE_API_KEY=your_key, and load with a library like python-dotenv.
Integrate by wrapping API calls in your AI agent's code; use async requests for non-blocking operations. For example, in OpenClaw, call this skill before generating responses that require external data. Handle config by exporting $BRAVE_API_KEY or reading from a secure vault. If combining with other AI APIs, chain this skill after tools like language models to enrich outputs (e.g., search for context, then summarize). Avoid caching results longer than 1 hour due to web content volatility.
Check HTTP status codes: 200 for success, 401 for invalid API key (retry after verifying $BRAVE_API_KEY), 429 for rate limit (wait and retry with exponential backoff, e.g., 5-10 seconds). Parse JSON responses for errors like "error": "Bad request" and log details. In code, use try-except blocks:
try: response = requests.get(...)
except requests.exceptions.RequestException as e: print(f"Error: {e}"); exit(1)
For CLI, pipe output to grep for error patterns and handle failures by exiting with a non-zero code.
tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui