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

For complete SDK documentation:

SDK Reference

Complete Portkey SDK documentation
Last modified on March 13, 2026