web_search provider. It returns structured results with title, url, and snippet fields.
For compatibility, OpenClaw also supports legacy Perplexity Sonar/OpenRouter setups. If you use OPENROUTER_API_KEY, an sk-or-... key in plugins.entries.perplexity.config.webSearch.apiKey, or set plugins.entries.perplexity.config.webSearch.baseUrl / model, the provider switches to the chat-completions path and returns AI-synthesized answers with citations instead of structured Search API results.
Install plugin
Install the official plugin, then restart Gateway:Getting a Perplexity API key
- Create a Perplexity account at perplexity.ai/settings/api.
- Generate an API key in the dashboard.
- Store the key in config or set
PERPLEXITY_API_KEYin the Gateway environment.
OpenRouter compatibility
If you were already using OpenRouter for Perplexity Sonar, keepprovider: "perplexity" and set OPENROUTER_API_KEY in the Gateway environment, or store an sk-or-... key in plugins.entries.perplexity.config.webSearch.apiKey.
Optional compatibility controls:
plugins.entries.perplexity.config.webSearch.baseUrlplugins.entries.perplexity.config.webSearch.model
Config examples
Native Perplexity Search API
OpenRouter / Sonar compatibility
Where to set the key
Via config: runopenclaw configure --section web. It stores the key in ~/.openclaw/openclaw.json under plugins.entries.perplexity.config.webSearch.apiKey. That field also accepts SecretRef objects.
Via environment: set PERPLEXITY_API_KEY or OPENROUTER_API_KEY in the Gateway process environment. For a gateway install, put it in ~/.openclaw/.env (or your service environment). See Env vars.
If provider: "perplexity" is configured and the Perplexity key SecretRef is unresolved with no env fallback, startup/reload fails fast.
Tool parameters
These parameters apply to the native Perplexity Search API path.Search query.
Number of results to return (1-10).
2-letter ISO country code (e.g.
US, DE).ISO 639-1 language code (e.g.
en, de, fr).Time filter -
day is 24 hours.Only results published after this date (
YYYY-MM-DD).Only results published before this date (
YYYY-MM-DD).Domain allowlist/denylist array (max 20).
Total content budget (max 1000000).
Per-page token limit.
query,count, andfreshnessare accepted.countis compatibility-only there; the response is still one synthesized answer with citations rather than an N-result list.- Search API-only filters (
country,language,date_after,date_before,domain_filter,max_tokens,max_tokens_per_page) return explicit errors.
Domain filter rules
- Maximum 20 domains per filter.
- Cannot mix allowlist and denylist entries in the same request.
- Use a
-prefix for denylist entries (e.g.,["-reddit.com"]).
Notes
- Perplexity Search API returns structured web search results (
title,url,snippet). - OpenRouter, or an explicit
plugins.entries.perplexity.config.webSearch.baseUrl/model, switches Perplexity back to Sonar chat completions for compatibility. - Sonar/OpenRouter compatibility returns one synthesized answer with citations, not structured result rows.
- Results are cached for 15 minutes by default (configurable via
cacheTtlMinutes).
Related
Web search overview
All providers and auto-detection rules.
Brave search
Structured results with country and language filters.
Exa search
Neural search with content extraction.
Perplexity Search API docs
Official Perplexity Search API quickstart and reference.