Overview

The Search API gives ranked results from Perplexity’s continuously refreshed index.
We recommend using our official SDKs for a more convenient and type-safe way to interact with the Search API.

Installation

Install the SDK for your preferred language:
pip install perplexityai

Basic Usage

Start with a basic search query to get relevant web results:
from perplexity import Perplexity

client = Perplexity()

search = client.search.create(
    query="latest AI developments 2024",
    max_results=5,
    max_tokens_per_page=1024
)

for result in search.results:
    print(f"{result.title}: {result.url}")
The max_results parameter accepts values from 1 to 20, with a default maximum of 20 results per search.
Execute multiple related queries in a single request for comprehensive research:
from perplexity import Perplexity

client = Perplexity()

search = client.search.create(
    query=[
        "artificial intelligence trends 2024",
        "machine learning breakthroughs recent",
        "AI applications in healthcare"
    ],
    max_results=5
)

# Access results for each query
for i, query_results in enumerate(search.results):
    print(f"Results for query {i+1}:")
    for result in query_results:
        print(f"  {result.title}: {result.url}")
    print("---")
Multi-query search is ideal for research tasks where you need to explore different angles of a topic. Each query is processed independently, giving you comprehensive coverage.

Content Extraction Control

The max_tokens_per_page parameter controls how much content is extracted from each webpage during search processing. This allows you to balance between comprehensive content coverage and processing efficiency.
from perplexity import Perplexity

client = Perplexity()

# Extract more content for comprehensive analysis
detailed_search = client.search.create(
    query="artificial intelligence research methodology",
    max_results=5,
    max_tokens_per_page=2048
)

# Use default extraction for faster processing
quick_search = client.search.create(
    query="AI news headlines",
    max_results=10,
    max_tokens_per_page=512
)

for result in detailed_search.results:
    print(f"{result.title}: {result.snippet[:100]}...")
The max_tokens_per_page parameter defaults to 1024 tokens. Higher values provide more comprehensive content extraction but may increase processing time. Lower values enable faster processing with more focused content.
Use higher max_tokens_per_page values (1500-2048) for research tasks requiring detailed content analysis, and lower values (256-512) for quick information retrieval or when processing large result sets.

Authentication

Set up your API key as an environment variable:
export PERPLEXITY_API_KEY="your_api_key_here"
Or use a .env file:
.env
PERPLEXITY_API_KEY=your_api_key_here
import os
from perplexity import Perplexity

# Automatically uses PERPLEXITY_API_KEY environment variable
client = Perplexity()

# Or specify explicitly
client = Perplexity(api_key=os.getenv("PERPLEXITY_API_KEY"))

Next Steps

Best Practices

Optimize your queries and implement async patterns