Control and customize Sonar API search results with filters
Control which websites appear in search results, filter by date and location, target specific languages, and fine-tune search behavior using Sonar API filters.
Control which websites are included or excluded from search results using search_domain_filter. Supports both domain-level and URL-level filtering.Key parameters:
search_domain_filter: Array of domains or URLs (max 20)
Allowlist mode: Include only specified domains (no prefix)
Denylist mode: Exclude domains (prefix with -)
from perplexity import Perplexityclient = Perplexity()# Allowlist: Only search specific domainscompletion = client.chat.completions.create( model="sonar", messages=[{"role": "user", "content": "Tell me about space discoveries."}], search_domain_filter=["nasa.gov", "wikipedia.org", "space.com"])# Denylist: Exclude specific domainscompletion = client.chat.completions.create( model="sonar", messages=[{"role": "user", "content": "What are renewable energy advances?"}], search_domain_filter=["-reddit.com", "-pinterest.com"])
You can add a maximum of 20 domains or URLs. Use either allowlist OR denylist mode, not both simultaneously.
Filter search results by publication date, last updated date, or recency using date range parameters.Key parameters:
search_after_date_filter: Filter by publication date (format: %m/%d/%Y)
search_before_date_filter: Filter by publication date (format: %m/%d/%Y)
last_updated_after_filter: Filter by last updated date
last_updated_before_filter: Filter by last updated date
search_recency_filter: Predefined periods ("hour", "day", "week", "month", "year")
from perplexity import Perplexityclient = Perplexity()# Publication date rangecompletion = client.chat.completions.create( model="sonar", messages=[{"role": "user", "content": "Show me tech news from this week."}], search_after_date_filter="3/1/2025", search_before_date_filter="3/5/2025")# Last updated date rangecompletion = client.chat.completions.create( model="sonar-pro", messages=[{"role": "user", "content": "Show me recently updated articles."}], last_updated_after_filter="3/1/2025", last_updated_before_filter="3/5/2025")# Recency filter — real-time (breaking news or live events)completion = client.chat.completions.create( model="sonar-pro", messages=[{"role": "user", "content": "What is happening right now in the markets?"}], search_recency_filter="hour")# Recency filter (convenient relative dates)completion = client.chat.completions.create( model="sonar-pro", messages=[{"role": "user", "content": "Latest AI developments?"}], search_recency_filter="week")
Date filters must use %m/%d/%Y format (e.g., "3/1/2025"). search_recency_filter cannot be combined with other date filters. Use hour for real-time data such as breaking news or live events.
Filter search results by language using ISO 639-1 language codes.Key parameters:
search_language_filter: Array of 2-letter language codes (max 10)
from perplexity import Perplexityclient = Perplexity()# Single languagecompletion = client.chat.completions.create( model="sonar", messages=[{"role": "user", "content": "Tell me about AI developments."}], search_language_filter=["en"])# Multiple languagescompletion = client.chat.completions.create( model="sonar-pro", messages=[{"role": "user", "content": "Renewable energy in Europe?"}], search_language_filter=["en", "fr", "de"])
Language codes must be valid ISO 639-1 codes (e.g., "en", "fr", "de"). You can filter by up to 10 languages per request.
Prioritize scholarly sources and peer-reviewed content by setting search_mode to "academic".Key parameters:
search_mode: Set to "academic" to target academic sources
from perplexity import Perplexityclient = Perplexity()completion = client.chat.completions.create( model="sonar-pro", messages=[{"role": "user", "content": "What is the scientific name of lion's mane mushroom?"}], search_mode="academic", web_search_options={"search_context_size": "low"})# Combine with date filters for recent researchcompletion = client.chat.completions.create( model="sonar", messages=[{"role": "user", "content": "Latest findings on neural networks?"}], search_mode="academic", search_after_date_filter="1/1/2023")
Target U.S. Securities and Exchange Commission filings and official financial documents.Key parameters:
search_mode: Set to "sec" to target SEC filings
from perplexity import Perplexityclient = Perplexity()completion = client.chat.completions.create( model="sonar-pro", messages=[{"role": "user", "content": "Prepare me for markets opening."}], search_mode="sec")# Combine with date filters for recent filingscompletion = client.chat.completions.create( model="sonar", messages=[{"role": "user", "content": "Summarize latest 10-K filings for Apple Inc."}], search_mode="sec", search_after_date_filter="1/1/2023")