Skip to main content
POST
Sonar — lightweight search + answer
Ask a question and get a written answer with web citations, rather than a list of links to read yourself. Body is OpenAI chat-completions shaped: model (required, sonar) and messages. Returns choices[0].message.content as prose, plus citations (an array of URL strings) and search_results[] with title, url, snippet, date and source, and a usage block. Measured at about 3 seconds. Billed at a flat $0.012 per request. This is the cheapest and fastest of the four Perplexity endpoints — use it for a single factual question. Step up to post_perplexity_sonar_pro for multi-part questions, or post_perplexity_sonar_reasoning_pro when the answer requires working through steps. If you need results you can iterate over rather than prose, use post_tavily_search; post_exa_answer answers the same shape of question with semantic retrieval, at $0.08.

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