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

# Perplexity AI

> Use Perplexity's online reasoning models with advanced search capabilities through Portkey.

## Quick Start

Get started with Perplexity AI in under 2 minutes:

```python Python icon="python" theme={"system"}
from portkey_ai import Portkey

# 1. Install: pip install portkey-ai
# 2. Add @perplexity-ai provider in model catalog
# 3. Use it:

portkey = Portkey(api_key="PORTKEY_API_KEY")

response = portkey.chat.completions.create(
    model="@perplexity-ai/sonar",
    messages=[{"role": "user", "content": "Hello!"}]
)

print(response.choices[0].message.content)
```

```js Javascript icon="square-js" theme={"system"}
import Portkey from 'portkey-ai'

// 1. Install: npm install portkey-ai
// 2. Add @perplexity-ai provider in model catalog
// 3. Use it:

const portkey = new Portkey({
    apiKey: "PORTKEY_API_KEY"
})

const response = await portkey.chat.completions.create({
    model: "@perplexity-ai/sonar",
    messages: [{ role: "user", content: "Hello!" }]
})

console.log(response.choices[0].message.content)
```

```python OpenAI Py icon="python" theme={"system"}
from openai import OpenAI
from portkey_ai import PORTKEY_GATEWAY_URL

# 1. Install: pip install openai portkey-ai
# 2. Add @perplexity-ai provider in model catalog
# 3. Use it:

client = OpenAI(
    api_key="PORTKEY_API_KEY",  # Portkey API key
    base_url=PORTKEY_GATEWAY_URL
)

response = client.chat.completions.create(
    model="@perplexity-ai/sonar",
    messages=[{"role": "user", "content": "Hello!"}]
)

print(response.choices[0].message.content)
```

```js OpenAI JS icon="square-js" theme={"system"}
import OpenAI from "openai"
import { PORTKEY_GATEWAY_URL } from "portkey-ai"

// 1. Install: npm install openai portkey-ai
// 2. Add @perplexity-ai provider in model catalog
// 3. Use it:

const client = new OpenAI({
    apiKey: "PORTKEY_API_KEY",  // Portkey API key
    baseURL: PORTKEY_GATEWAY_URL
})

const response = await client.chat.completions.create({
    model: "@perplexity-ai/sonar",
    messages: [{ role: "user", content: "Hello!" }]
})

console.log(response.choices[0].message.content)
```

```sh cURL icon="square-terminal" theme={"system"}
# 1. Add @perplexity-ai provider in model catalog
# 2. Use it:

curl https://api.portkey.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "x-portkey-api-key: $PORTKEY_API_KEY" \
  -d '{
    "model": "@perplexity-ai/sonar",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
```

## Add Provider in Model Catalog

Before making requests, add Perplexity AI to your Model Catalog:

1. Go to [**Model Catalog → Add Provider**](https://app.portkey.ai/model-catalog/providers)
2. Select **Perplexity AI**
3. Enter your [Perplexity API key](https://www.perplexity.ai/settings/api)
4. Name your provider (e.g., `perplexity-ai`)

> [card] [Complete Setup Guide](https://docs.portkey.ai/docs/product/model-catalog.md)
>
> See all setup options and detailed configuration instructions

***

## Responses API

Perplexity AI is a **native Responses API provider** on Portkey — requests are sent directly to Perplexity's Responses API endpoint. You can use the same [Responses API](https://docs.portkey.ai/docs/product/ai-gateway/responses-api.md) format with `@perplexity-ai` models. This is available on Portkey's AI Gateway (cloud and self-hosted).

```python Python theme={"system"}
from portkey_ai import Portkey

portkey = Portkey(api_key="PORTKEY_API_KEY")

response = portkey.responses.create(
    model="@perplexity-ai/sonar",
    input="What are the latest developments in AI?"
)

print(response.output_text)
```

```javascript JavaScript theme={"system"}
import Portkey from 'portkey-ai';

const portkey = new Portkey({ apiKey: "PORTKEY_API_KEY" });

const response = await portkey.responses.create({
    model: "@perplexity-ai/sonar",
    input: "What are the latest developments in AI?"
});

console.log(response.output_text);
```

```sh cURL theme={"system"}
curl https://api.portkey.ai/v1/responses \
  -H "Content-Type: application/json" \
  -H "x-portkey-api-key: $PORTKEY_API_KEY" \
  -d '{
    "model": "@perplexity-ai/sonar",
    "input": "What are the latest developments in AI?"
  }'
```

> [card] [Responses API reference](https://docs.portkey.ai/docs/product/ai-gateway/responses-api.md)
>
> Full Responses API docs — streaming, tools, instructions, and more

***

## Perplexity AI Capabilities

### Citations

To get citations in responses, disable [strict OpenAI compliance](https://docs.portkey.ai/docs/product/ai-gateway/strict-open-ai-compliance.md).

### Search Domain Filter (Beta)

Limit citations to specific domains:

```python Python theme={"system"}
from portkey_ai import Portkey

portkey = Portkey(api_key="PORTKEY_API_KEY")

response = portkey.chat.completions.create(
    model="@perplexity-ai/sonar",
    messages=[{"role": "user", "content": "Tell me about electric cars"}],
    search_domain_filter=["tesla.com", "ford.com", "-competitors.com"]  # '-' prefix for blacklist
)

print(response.choices[0].message.content)
```

```javascript Node.js theme={"system"}
import Portkey from 'portkey-ai';

const portkey = new Portkey({
    apiKey: 'PORTKEY_API_KEY'
});

const response = await portkey.chat.completions.create({
    model: "@perplexity-ai/sonar",
    messages: [{ role: "user", content: "Tell me about electric cars" }],
    search_domain_filter: ["tesla.com", "ford.com", "-competitors.com"]  // '-' prefix for blacklist
});

console.log(response.choices[0].message.content);
```

### Search Recency Filter

Filter results by time interval:

```python Python theme={"system"}
from portkey_ai import Portkey

portkey = Portkey(api_key="PORTKEY_API_KEY")

response = portkey.chat.completions.create(
    model="@perplexity-ai/sonar",
    messages=[{"role": "user", "content": "Latest developments in AI?"}],
    search_recency_filter="week"  # Options: month, week, day, hour
)

print(response.choices[0].message.content)
```

```javascript Node.js theme={"system"}
import Portkey from 'portkey-ai';

const portkey = new Portkey({
    apiKey: 'PORTKEY_API_KEY'
});

const response = await portkey.chat.completions.create({
    model: "@perplexity-ai/sonar",
    messages: [{ role: "user", content: "Latest developments in AI?" }],
    search_recency_filter: "week"  // Options: month, week, day, hour
});

console.log(response.choices[0].message.content);
```

### Web Search Options

Control search context size:

```python Python theme={"system"}
from portkey_ai import Portkey

portkey = Portkey(api_key="PORTKEY_API_KEY")

response = portkey.chat.completions.create(
    model="@perplexity-ai/sonar",
    messages=[{"role": "user", "content": "Latest developments in AI?"}],
    web_search_options={
        "search_context_size": "high"  # Options: low, medium, high
    }
)

print(response.choices[0].message.content)
```

```javascript Node.js theme={"system"}
import Portkey from 'portkey-ai';

const portkey = new Portkey({
    apiKey: 'PORTKEY_API_KEY'
});

const response = await portkey.chat.completions.create({
    model: "@perplexity-ai/sonar",
    messages: [{ role: "user", content: "Latest developments in AI?" }],
    web_search_options: {
        search_context_size: "high"  // Options: low, medium, high
    }
});

console.log(response.choices[0].message.content);
```

### Return Images (Beta)

Enable image results in responses:

```python Python theme={"system"}
from portkey_ai import Portkey

portkey = Portkey(api_key="PORTKEY_API_KEY")

response = portkey.chat.completions.create(
    model="@perplexity-ai/sonar",
    messages=[{"role": "user", "content": "Show me pictures of electric cars"}],
    return_images=True
)

print(response.choices[0].message.content)
```

```javascript Node.js theme={"system"}
import Portkey from 'portkey-ai';

const portkey = new Portkey({
    apiKey: 'PORTKEY_API_KEY'
});

const response = await portkey.chat.completions.create({
    model: "@perplexity-ai/sonar",
    messages: [{ role: "user", content: "Show me pictures of electric cars" }],
    return_images: true
});

console.log(response.choices[0].message.content);
```

### Return Related Questions (Beta)

Get related questions in the response:

```python Python theme={"system"}
from portkey_ai import Portkey

portkey = Portkey(api_key="PORTKEY_API_KEY")

response = portkey.chat.completions.create(
    model="@perplexity-ai/sonar",
    messages=[{"role": "user", "content": "Tell me about electric cars"}],
    return_related_questions=True
)

print(response.choices[0].message.content)
```

```javascript Node.js theme={"system"}
import Portkey from 'portkey-ai';

const portkey = new Portkey({
    apiKey: 'PORTKEY_API_KEY'
});

const response = await portkey.chat.completions.create({
    model: "@perplexity-ai/sonar",
    messages: [{ role: "user", content: "Tell me about electric cars" }],
    return_related_questions: true
});

console.log(response.choices[0].message.content);
```

***

## Supported Models

Perplexity offers online reasoning models with real-time search capabilities:

| Model | Context Length | Description |
| - | - | - |
| sonar | 127,072 tokens | Latest Sonar model with real-time search |
| sonar-pro | 127,072 tokens | Advanced reasoning with deeper search |

Check [Perplexity's documentation](https://docs.perplexity.ai/) for the latest models.

***

## Next Steps

> [card] [Gateway Configs](https://docs.portkey.ai/docs/product/ai-gateway.md)
>
> Add fallbacks, load balancing, and more

> [card] [Observability](https://docs.portkey.ai/docs/product/observability.md)
>
> Monitor and trace your Perplexity requests

> [card] [Prompt Library](https://docs.portkey.ai/docs/product/prompt-engineering-studio.md)
>
> Manage and version your prompts

> [card] [Metadata](https://docs.portkey.ai/docs/product/observability/metadata.md)
>
> Add custom metadata to requests

For complete SDK documentation:

> [card] [SDK Reference](https://docs.portkey.ai/docs/api-reference/sdk/list.md)
>
> Complete Portkey SDK documentation

***

> [card] [Portkey is now PRISMA AIRS AI Gateway. See it in action.](https://www.paloaltonetworks.in/ai-security/ai-gateway?utm_source=portkey\&utm_medium=referral\&utm_campaign=prisma_airs\&utm_content=docs_nav#contact)
>
> Contact Us


## Related topics

- [Portkey Models](https://docs.portkey.ai/docs/product/model-catalog/portkey-models.md)
- [Overview](https://docs.portkey.ai/docs/integrations/llms.md)
- [Open Responses](https://docs.portkey.ai/docs/product/ai-gateway/responses-api.md)
- [March](https://docs.portkey.ai/docs/changelog/2025/mar.md)
- [Supported Providers](https://docs.portkey.ai/docs/api-reference/inference-api/supported-providers.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.