Skip to main content
POST
Sonar Deep Research — exhaustive research & comprehensive reports
Commission a report: this endpoint runs many searches and writes a long, cited document. model (required, sonar-deep-research) and messages in; choices[0].message.content, citations, search_results[] and usage out, where usage also reports num_search_queries and reasoning_tokens. ⚠️ Budget for the wait: a two-sentence question measured 192 seconds and returned 86 KB after 10 upstream searches — roughly 60 times slower and 10 times larger than post_perplexity_sonar, at the same flat $0.012 per request. Many clients time out well before it answers, so call it only when a report is genuinely the deliverable, and never in a loop. For anything you would read in one sitting, the other three Perplexity endpoints answer in seconds.

Example

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
model
enum<string>
required

The Sonar model to use.

Available options:
sonar,
sonar-pro,
sonar-reasoning-pro,
sonar-deep-research
messages
object[]
required

A list of messages comprising the conversation so far.

max_tokens
integer

The maximum number of tokens to generate in the response.

temperature
number
default:0.2

Sampling temperature between 0 and 2. Lower values make output more focused and deterministic.

Required range: 0 <= x <= 2
top_p
number
default:0.9

Nucleus sampling parameter. The model considers tokens with top_p probability mass.

Required range: 0 <= x <= 1
top_k
integer
default:0

The number of tokens to keep for top-k filtering.

Required range: 0 <= x <= 2048
stream
boolean
default:false

Whether to stream the response using server-sent events.

search_context
enum<string>
default:low

Controls how much search context to use. Affects per-request cost.

Available options:
low,
medium,
high
frequency_penalty
number
default:1

Penalizes new tokens based on their existing frequency in the text so far. Positive values decrease the likelihood of repeating the same line verbatim.

Required range: 0 <= x <= 2
presence_penalty
number
default:0

Penalizes new tokens based on whether they appear in the text so far. Positive values increase the likelihood of talking about new topics.

Required range: -2 <= x <= 2
return_citations
boolean
default:true

Whether to return citations and search results in the response.

search_recency_filter
enum<string>

Filter search results by recency.

Available options:
month,
week,
day,
hour
search_domain_filter
string[]

Limit search to specific domains.

Response

200 - application/json

Successful response with AI answer and citations

id
string

Unique identifier for the completion.

model
string

The model used for the completion.

object
string
Example:

"chat.completion"

created
integer

Unix timestamp of when the completion was created.

choices
object[]
citations
string[]

List of source URLs referenced in the answer.

search_results
object[]

Detailed search results with titles, snippets, and URLs.

usage
object