Perplexity Ask
perplexity_askAsk one web-grounded question and get an answer with sources in a synchronous call. Use depth, model, and search filters for one-off queries, not background research.
Instructions
Ask one web-grounded question and get the answer with its sources. Synchronous and stateless; it never waits for a background run (use perplexity_research for those).
Approximate cost per call by depth (observed ranges; the upper figures are estimates): fast $0.001 to $0.002, low $0.0005 to $0.004 (up to about $0.02 estimated), medium $0.016 to $0.025 as a research run (up to about $0.05 estimated; a synchronous medium call was not measured). high and xhigh can cost dollars and take minutes (unmeasured estimates), so they exist only behind perplexity_research. Giving a search filter (domains, recency, after, before, country, max_results) makes the run use the web search tool alone, so a filtered medium run loses the preset's page fetching.
The request sets store to false, which only hides the response from retrieval; the provider's documentation says it still persists state, so this is not a retention control. Sources are what the run touched, not a citation of each claim. Every call that reaches the API is recorded as spend (see perplexity_usage).
Routing mode: standard. With no depth, tier or model perplexity/sonar answers with web search; tier is for custom mode only. A model is always used as given. The per-depth costs above apply to depth; the default model's cost differs (see perplexity_usage). Details: call perplexity_help.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | light, standard or complex: custom routing mode only. Cannot be combined with depth or model | |
| after | No | Only results published after this date (YYYY-MM-DD) | |
| depth | No | fast, low or medium; selects a search preset. high and xhigh are refused: use perplexity_research. Cannot be combined with tier or model | |
| model | No | An explicit model id, e.g. openai/gpt-6-luna, instead of a depth. It searches with the web search tool and 3 steps unless search is false | |
| query | Yes | The question (at most 20000 characters) | |
| before | No | Only results published before this date (YYYY-MM-DD) | |
| search | No | false answers from the model alone (not with depth: a depth always searches). true is accepted and changes nothing | |
| country | No | Two-letter country code to localize the search, e.g. US | |
| domains | No | At most 20 domains to search: all allowed (python.org) or all denied with a '-' prefix (-reddit.com); not mixed | |
| project | No | Project to record the call under (default: default) | |
| recency | No | hour, day, week, month or year | |
| json_schema | No | A JSON Schema (root type object) for a structured answer | |
| max_results | No | Search results to retrieve, 1 to 50 | |
| instructions | No | System-style instructions, at most 10000 characters | |
| max_output_tokens | No | Cap on answer tokens, 1 to 64000 |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| depth | Yes | The preset used; null with an explicit model | |
| model | No | The model that answered | |
| usage | Yes | Tokens and cost of this call | |
| answer | Yes | The answer text; markers such as [1] are unchanged | |
| status | Yes | completed or incomplete | |
| project | Yes | The project the call was recorded under | |
| routing | No | How the model was picked | |
| sources | Yes | Pages the run found or fetched (not necessarily cited), by first use | |
| warnings | Yes | Things worth knowing about this result | |
| latency_ms | Yes | Measured wall time of the upstream call | |
| answer_json | No | The parsed answer when json_schema was given and it parsed, else null | |
| response_id | No | The API's response id | |
| incomplete_reason | No | Why an incomplete run stopped, e.g. max_output_tokens |