Skip to main content

Model Providers

Perplexity

Call models on the Perplexity Router API through your Verdictan gateway. Your Perplexity key stays on the gateway, and your application calls the gateway with its application token.

Router is a private preview, so check that your account has access first. This integration is not for Perplexity's web-search Agent API. See the Router quickstart.

Before you start​

  • A working gateway from the quickstart.
  • A Perplexity account with Router API preview access, an API key, and a full Router model ID.
  • The gateway startup command, and a separate application token for test requests.

Configure the provider​

Keep /router at the end of base_url:

policy-config.yaml
pack:
  name: perplexity-integration
  version: 1.0.0
  enabled: true
policies:
  chain:
    - prompt-injection
providers:
  targets:
    - id: perplexity-primary
      provider: perplexity
      model: "replace-with-router-model-id"
      base_url: https://api.perplexity.ai/router
      secret_key_ref:
        env: VERDICTAN_PERPLEXITY_API_KEY

The gateway appends /v1/chat/completions, so requests go to /router/v1/chat/completions. It sends the key from VERDICTAN_PERPLEXITY_API_KEY as a Bearer token.

Start and verify​

For configuration deployment from your terminal, use CLI 0.1.14 or later. Check In sync before the Perplexity request. Keep its provider key on the gateway.

With the quickstart in Docker, follow the container steps instead of steps 1 to 3.

  1. In the gateway terminal, set the key and lint the file:

    export VERDICTAN_PERPLEXITY_API_KEY="<provider-api-key>"
    verdictan policy lint --file policy-config.yaml
  2. Restart the test gateway with the key in its environment.

  3. Deploy the file to the test agent in Configurations. If that agent already runs pack.version 1.0.0, increase the version first. Then wait for the gateway log line connected read model refresh applied updated config with your version as config_version. Try the change on a test gateway has the steps.

  4. In a second terminal, send a request for the configured model:

    export VERDICTAN_CLIENT_TOKEN="<application-token>"
    curl --fail-with-body http://127.0.0.1:41002/v1/chat/completions \
      -H "Authorization: Bearer ${VERDICTAN_CLIENT_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{"model":"replace-with-router-model-id","messages":[{"role":"user","content":"Reply with Hello."}]}'

choices[0].message.content contains the reply, and the request appears in History when capture is on, or in the delivered events.

Supported requests​

RequestSupport
Chat CompletionsYes. Streaming and tools work if the model supports them.
MessagesTranslated to Chat Completions
Responses, embeddings, audio, image input, response_format, parallel tool callsNo
Perplexity Agent API and its search toolsNo

Failure behavior​

ProblemWhat to check
401 from the gatewayThe application token is active, and the key is set on the gateway host.
Provider authentication or access errorVERDICTAN_PERPLEXITY_API_KEY is set, and the account has Router preview access.
404 from Perplexitybase_url ends in /router.
Model not foundThe full Router model ID matches the target.
Provider 429 or another upstream errorThe response body and your Perplexity limits. See Error Handling.

Limits​

  • Model names, prices, rate limits, and data terms are in the Perplexity documentation.
  • Sonar Chat Completions support ended on September 27, 2026. Perplexity now turns remaining Sonar requests into Agent API requests; see the migration notice. This page does not depend on that behavior.
  • Streaming and tools vary by model. Test each one with your model.
  • A listener on a non-loopback address needs TLS and network controls.

Next steps​