Skip to main content
The Perplexity plugin registers a web_search provider with two transports: the native Perplexity Search API (structured results with filters) and Perplexity Sonar chat completions, direct or via OpenRouter (AI-synthesized answers with citations).
This page covers the Perplexity provider setup. For the Perplexity tool (how the agent uses it), see Perplexity search.
PropertyValue
TypeWeb search provider (not a model provider)
AuthPERPLEXITY_API_KEY (native) or OPENROUTER_API_KEY (via OpenRouter)
Config pathplugins.entries.perplexity.config.webSearch.apiKey
Overridesplugins.entries.perplexity.config.webSearch.baseUrl / .model
Get a keyperplexity.ai/settings/api

Install plugin

openclaw plugins install @openclaw/perplexity-plugin
openclaw gateway restart

Getting started

1

Set the API key

openclaw configure --section web
Or set the key directly:
openclaw config set plugins.entries.perplexity.config.webSearch.apiKey "pplx-xxxxxxxxxxxx"
A key exported as PERPLEXITY_API_KEY or OPENROUTER_API_KEY in the Gateway environment also works.
2

Start searching

web_search auto-detects Perplexity once its key is the available search credential; no further setup is required. To pin the provider explicitly:
openclaw config set tools.web.search.provider perplexity

Search modes

The plugin resolves transport in this order:
  1. webSearch.baseUrl or webSearch.model set: always routes through Sonar chat completions against that endpoint, regardless of key type.
  2. Otherwise, key source decides the endpoint: a configured key’s prefix picks the transport (config beats environment variables); an environment key uses its matching endpoint directly.
Key prefixTransportFeatures
pplx-Native Perplexity Search API (https://api.perplexity.ai)Structured results, domain/language/date filters
sk-or-OpenRouter (https://openrouter.ai/api/v1), Sonar modelAI-synthesized answers with citations
A configured key with any other prefix also uses the native Search API. The chat-completions path defaults to the perplexity/sonar-pro model; override it with plugins.entries.perplexity.config.webSearch.model.

Native API filtering

FilterDescriptionTransport
countResults per search, 1-10 (default 5)Native only
freshnessRecency window: day, week, month, yearBoth
country2-letter country code (us, de, jp)Native only
languageISO 639-1 language code (en, fr, zh)Native only
date_after / date_beforePublished-date range in YYYY-MM-DDNative only
domain_filterMax 20 domains; allowlist or --prefixed denylist, never mixedNative only
max_tokens / max_tokens_per_pageContent budget across all results / per pageNative only
Native-only filters return a descriptive error on the chat-completions path. freshness cannot be combined with date_after/date_before.

Advanced configuration

A key exported only in an interactive shell is not visible to a launchd/systemd Gateway daemon unless that environment is explicitly imported. Set the key in ~/.openclaw/.env or via env.shellEnv so the Gateway process can read it. See Environment variables for the full precedence order.
To route Perplexity searches through OpenRouter, set an OPENROUTER_API_KEY (prefix sk-or-) instead of a native Perplexity key. OpenClaw detects the key and switches to the Sonar transport automatically. Useful if you already have OpenRouter billing set up and want to consolidate providers there.

Perplexity search tool

How the agent invokes Perplexity searches and interprets results.

Configuration reference

Full configuration reference including plugin entries.