Skip to main content
POST
Reference example
Ask a question that has to be worked through, not just looked up, and get a step-by-step answer backed by web search. Same shape as the other Perplexity endpoints — model (required, sonar-reasoning-pro) and messages in; choices[0].message.content, citations, search_results[] and usage out. Measured at about 5 seconds, billed at a flat rate per request. Use it for comparison, causation and analysis. When the question is simply what is the case, post_perplexity_sonar is faster; when you need a long report over many sources rather than an answer, post_perplexity_sonar_deep_research.

Example

First time? Point any MCP client at https://mcp.aisa.one/mcp — Claude Code, Codex, Cursor, VS Code and the rest. Authorization is OAuth: the client opens a browser, you click Allow once, and there is no key to paste. Your agent then reaches every endpoint through five tools: search, list_categories and get_details are free, use and batch_use are billed per call. Setup per client is in Connect via MCP; the live tool list and what each call costs are on aisa.one/mcp.
Set this endpoint up in your agent →

Cost and request rules

Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.
  • Default request reference estimate (USD): 0.03499
  • Cost contract: response_usd
  • Published reference multiplier: 1.0
  • Settlement evidence source: response_body

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

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