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 a few meta tools: search, list_categories, get_details and batch_quote are free, batch_use is 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 →

Request contract

Complete OpenAPI definition Effective request and pricing declaration (including authentication and referenced schemas):

Cost and request rules

Usage-based billing; Default request estimate: $0.03499 USD (not a fixed price). Account-specific pricing and final settlement may differ. 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
messages
object[]
required

A list of messages comprising the conversation so far.

model
enum<string>
required

The Sonar model to use.

Available options:
sonar,
sonar-pro,
sonar-reasoning-pro,
sonar-deep-research
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
max_tokens
integer

The maximum number of tokens to generate in the response.

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_context
enum<string>
default:low

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

Available options:
low,
medium,
high
search_domain_filter
string[]

Limit search to specific domains.

search_recency_filter
enum<string>

Filter search results by recency.

Available options:
month,
week,
day,
hour
stream
boolean
default:false

Whether to stream the response using server-sent events.

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_k
integer
default:0

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

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

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

Required range: 0 <= x <= 1

Response

Successful response with AI answer and citations

choices
object[]
citations
string[]

List of source URLs referenced in the answer.

created
integer

Unix timestamp of when the completion was created.

id
string

Unique identifier for the completion.

model
string

The model used for the completion.

object
string
Example:

"chat.completion"

search_results
object[]

Detailed search results with titles, snippets, and URLs.

usage
object