DuckDuckGo Search
OpenClaw supports DuckDuckGo as a key-free web_search provider. No API
key or account is required.
WARNING
DuckDuckGo is an experimental, unofficial integration that pulls results from DuckDuckGo's non-JavaScript search pages — not an official API. Expect occasional breakage from bot-challenge pages or HTML changes.
Setup
No API key needed — just set DuckDuckGo as your provider:
- Configure
openclaw configure --section web # Select "duckduckgo" as the provider
Config
{
tools: {
web: {
search: {
provider: "duckduckgo",
},
},
},
}
Optional plugin-level settings for region and SafeSearch:
{
plugins: {
entries: {
duckduckgo: {
config: {
webSearch: {
region: "us-en", // DuckDuckGo region code
safeSearch: "moderate", // "strict", "moderate", or "off"
},
},
},
},
},
}
Tool parameters
| Parameter | Description |
|---|---|
query | Search query (required) |
count | Results to return (1-10, default: 5) |
region | DuckDuckGo region code (e.g. us-en, uk-en, de-de) |
safeSearch | SafeSearch level: strict, moderate (default), or off |
Region and SafeSearch can also be set in plugin config (see above) — tool parameters override config values per-query.
Notes
- No API key — works out of the box, zero configuration
- Experimental — gathers results from DuckDuckGo's non-JavaScript HTML search pages, not an official API or SDK
- Bot-challenge risk — DuckDuckGo may serve CAPTCHAs or block requests under heavy or automated use
- HTML parsing — results depend on page structure, which can change without notice
- Auto-detection order — DuckDuckGo is the first key-free fallback (order 100) in auto-detection. API-backed providers with configured keys run first, then Ollama Web Search (order 110), then SearXNG (order 200)
- SafeSearch defaults to moderate when not configured
TIP
For production use, consider Brave Search (free tier available) or another API-backed provider.
Related
- Web Search overview -- all providers and auto-detection
- Brave Search -- structured results with free tier
- Exa Search -- neural search with content extraction