> ## Documentation Index
> Fetch the complete documentation index at: https://docs.perplexity.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Perplexity with LiteLLM

> Use Perplexity's Agent API and presets through LiteLLM's unified interface — Python SDK and Proxy.

export const SonarDeprecationNotice = ({showGuideLink = true}) => <Warning>
    Sonar Chat Completions is now <a href="/docs/agent-api/quickstart">Agent API.</a> Sonar will be supported until September 27, 2026.{showGuideLink && <> Migration guide <a href="/docs/agent-api/migrate-from-sonar/overview">here</a>.</>}
  </Warning>;

<SonarDeprecationNotice />

## Overview

[LiteLLM](https://litellm.ai) is a Python SDK and proxy server that gives you a single OpenAI-compatible interface to 100+ LLM providers. Perplexity's [Agent API](/docs/agent-api/quickstart) — with third-party models like GPT-5, Claude, and Gemini routed through Perplexity — is a first-class provider in LiteLLM.

<Info>
  **LiteLLM** lets you swap providers without rewriting code, run a self-hosted proxy that fronts every model behind one API key, and track spend, latency, and errors per provider. Learn more at [litellm.ai](https://litellm.ai).
</Info>

## Installation

```bash theme={null}
pip install litellm
```

## API Key Setup

LiteLLM reads your Perplexity API key from the environment:

```bash theme={null}
export PERPLEXITY_API_KEY="your_api_key_here"
```

<Card title="Get API Key" icon="key" href="https://console.perplexity.ai/project/keys">
  Generate your Perplexity API key from the API portal.
</Card>

## Agent API

Use `litellm.responses` to call the [Agent API](/docs/agent-api/quickstart), which routes through Perplexity to third-party models with tool orchestration and presets.

### Presets

```python theme={null}
from litellm import responses
import os

os.environ["PERPLEXITY_API_KEY"] = "your_api_key_here"

response = responses(
    model="perplexity/preset/low",
    input="What are the latest developments in AI?",
    custom_llm_provider="perplexity",
)

print(response.output)
```

Available presets: `fast`, `low`, `medium`, `high`, `xhigh`.

### Tool Use (`web_search` and `fetch_url`)

```python theme={null}
from litellm import responses

response = responses(
    model="perplexity/openai/gpt-5.6-sol",
    input="Research quantum computing breakthroughs and cite sources.",
    custom_llm_provider="perplexity",
    tools=[
        {"type": "web_search"},
        {"type": "fetch_url"},
    ],
    instructions="Use web_search and fetch_url to gather citations.",
    max_output_tokens=1000,
    temperature=0.7,
)

print(response.output)
```

### Structured Outputs

```python theme={null}
from litellm import responses

response = responses(
    model="perplexity/preset/low",
    input="Extract key facts about the Eiffel Tower.",
    custom_llm_provider="perplexity",
    text={
        "format": {
            "type": "json_schema",
            "name": "facts",
            "schema": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "height_meters": {"type": "number"},
                    "year_built": {"type": "integer"},
                },
                "required": ["name", "height_meters", "year_built"],
            },
            "strict": True,
        }
    },
)
```

### Supported Third-Party Models via Agent API

Prefix any Agent API model ID with `perplexity/` (for example, `perplexity/openai/gpt-5.6-sol`). See the [Agent API model list](/docs/agent-api/models) for the canonical, up-to-date catalogue.

## LiteLLM Proxy

Run LiteLLM as a self-hosted proxy that fronts Perplexity (and any other provider) behind a single OpenAI-compatible endpoint.

### config.yaml

```yaml theme={null}
model_list:
  - model_name: perplexity-low
    litellm_params:
      model: perplexity/preset/low
      api_key: os.environ/PERPLEXITY_API_KEY
```

### Start the Proxy

```bash theme={null}
litellm --config /path/to/config.yaml
```

### Call the Proxy

```bash theme={null}
curl http://0.0.0.0:4000/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer anything" \
  -d '{
    "model": "perplexity-low",
    "input": "What are the latest developments in AI?",
    "tools": [{"type": "web_search"}]
  }'
```

## Links & Resources

<CardGroup cols={2}>
  <Card title="LiteLLM Perplexity Docs" icon="book" href="https://docs.litellm.ai/docs/providers/perplexity">
    Official LiteLLM Perplexity provider docs.
  </Card>

  <Card title="LiteLLM Docs" icon="globe" href="https://docs.litellm.ai">
    Full LiteLLM documentation.
  </Card>

  <Card title="Perplexity Agent API" icon="robot" href="/docs/agent-api/quickstart">
    Agent API reference and presets.
  </Card>

  <Card title="Agent API Models" icon="sparkles" href="/docs/agent-api/models">
    Available Agent API models.
  </Card>
</CardGroup>

## Support

Need help with the integration?

* Browse the [LiteLLM documentation](https://docs.litellm.ai)
* Review our [FAQ](/docs/resources/faq)
