Skip to main content

Quick Start

Get started with Perplexity AI in under 2 minutes:
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)

Add Provider in Model Catalog

Before making requests, add Perplexity AI to your Model Catalog:
  1. Go to Model Catalog → Add Provider
  2. Select Perplexity AI
  3. Enter your Perplexity API key
  4. Name your provider (e.g., perplexity-ai)

Complete Setup Guide

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 format with @perplexity-ai models. This is available on Portkey’s AI Gateway (cloud and self-hosted).
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)

Responses API reference

Full Responses API docs — streaming, tools, instructions, and more

Perplexity AI Capabilities

Citations

To get citations in responses, disable strict OpenAI compliance.

Search Domain Filter (Beta)

Limit citations to specific domains:
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)

Search Recency Filter

Filter results by time interval:
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)

Web Search Options

Control search context size:
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)

Return Images (Beta)

Enable image results in responses:
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)
Get related questions in the response:
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)

Supported Models

Perplexity offers online reasoning models with real-time search capabilities:
ModelContext LengthDescription
sonar127,072 tokensLatest Sonar model with real-time search
sonar-pro127,072 tokensAdvanced reasoning with deeper search
Check Perplexity’s documentation for the latest models.

Next Steps

Gateway Configs

Add fallbacks, load balancing, and more

Observability

Monitor and trace your Perplexity requests

Prompt Library

Manage and version your prompts

Metadata

Add custom metadata to requests
For complete SDK documentation:

SDK Reference

Complete Portkey SDK documentation
Last modified on March 13, 2026