Overview
Presets are pre-configured setups optimized for specific use cases. Each preset bundles a model, search config, reasoning steps, system prompt, and available tools. Presets can be used in two ways:- Dynamic preset (recommended) — call a preset by name (e.g.,
preset="pro-search") to opt in to the latest Perplexity-optimized configuration. Perplexity updates the underlying configuration as evals show improvements, and your application picks up those improvements automatically with no code changes. - Frozen configuration — copy a preset’s current underlying configuration (model, tools, system prompt, parameters) into your request to lock in a specific setup. Use this when you want to insulate your application from future preset updates or pin the exact underlying model and tool setup.
Presets provide sensible defaults optimized for their use case. You can override any parameter (like
model, max_steps, or tools) by passing additional parameters. See Customizing Presets for code examples.No explicit versioning. Presets are not pinned to a specific version. Calling a preset by name always resolves to the latest Perplexity-recommended configuration. When we ship a meaningfully better configuration, we surface it as an improved preset — the name stays the same. If you need to pin a specific configuration, use the frozen configuration approach instead.
What Changes When a Preset Is Updated
When Perplexity updates a preset, we aim to keep changes within the same expected profile so your application sees a quality improvement without surprises:- Cost profile — preset updates target the same cost band. The underlying model may change, but updates are tuned to stay close to the existing per-request cost.
- Latency profile — preset updates target the same latency band. Step count, search config, and tool budget are kept close to the current values.
- Quality — this is the dimension that preset updates optimize for. New configurations ship when evals show meaningful improvements.
Choosing a preset
Each preset trades off research depth, source coverage, and latency. Use the table below to pick the one that fits your query.| Preset | Good at | Use when |
|---|---|---|
| fast-search | Single-fact lookups, definitions, quick summaries. | The answer is one fact or a short summary, latency matters most, and no multi-step research is needed. |
| pro-search | Everyday research questions, light multi-step lookups with current information. | A query needs current information with light research and tool use. |
| deep-research | Multi-hop browsing and wide aggregation across many sources. | A question requires chaining evidence across many sources over several rounds of search and reasoning. |
| advanced-deep-research | Expert-level reasoning and exhaustive source coverage. | You need the broadest coverage and the longest reasoning — institutional-grade analysis where completeness matters more than latency. |
The full underlying configuration for each preset — model, tools, parameters, and system prompt — is in the Frozen configurations section below.
Using a preset
Call a preset by name with thepreset parameter — Perplexity manages the underlying configuration, so you pick up future improvements with no code changes.
preset="pro-search" for any preset name from the table above. To override any preset default, see Customizing Presets.
Customizing Presets
Presets provide sensible defaults. Any field you pass alongside the preset overrides that default. Anything you don’t set keeps the preset’s default.tools are the one exception: they merge per tool instead of replacing the whole set. Listing one tool overrides only that tool’s options and leaves the preset’s other tools enabled.
To tune search depth under a preset, set
max_tokens and max_tokens_per_page on web_search. See Configuring Search.- Python SDK
- Typescript SDK
- cURL
The full underlying configuration for each preset — model, tools, parameters, and system prompt — is in the Frozen configurations section below. The Choosing a preset table summarizes what each preset is for.
Frozen Configurations
A frozen configuration reproduces a preset’s current setup — model, system prompt, tools, and parameters — using the public API fields, without thepreset parameter. You get the same behavior the preset has today, locked to the exact model, system prompt, and parameters you copied. Use it when you need to insulate your application from future preset updates.
Each preset below shows its complete, self-contained configuration — copy a single block to reproduce that preset’s behavior.
A frozen configuration is a snapshot. It will not pick up future preset improvements — call the preset by name (a dynamic preset) if you want automatic updates.
The cURL tab can show a more complete configuration than the SDK tabs: some parameters aren’t exposed by the SDK yet.
fast-search — frozen configuration
fast-search — frozen configuration
Quick factual lookups with minimal latency.
- Model:
openai/gpt-5.4-mini - Max steps: 1
- Reasoning effort:
low - Max output tokens: 8192
- Tools:
web_search - Search results:
max_results: 10(cURL request) - System prompt: included inline below
pro-search — frozen configuration
pro-search — frozen configuration
Balanced research with tool access.
- Model:
google/gemini-3-flash-preview - Max steps: 5
- Reasoning effort:
high - Max output tokens: 16384
- Tools:
web_search,fetch_url(max_urls: 1) - Search results:
max_results: 15(cURL request) - Search depth:
max_tokens: 2000,max_tokens_per_page: 2000onweb_search - System prompt: included inline below
deep-research — frozen configuration
deep-research — frozen configuration
In-depth, multi-step research and analysis.
- Model:
openai/gpt-5.2 - Max steps: 10
- Reasoning effort:
low - Max output tokens: 64000
- Tools:
web_search,fetch_url(max_urls: 1) - Search results:
max_results: 15(cURL request) - Search depth:
max_tokens: 2000,max_tokens_per_page: 2000onweb_search - System prompt: included inline below
advanced-deep-research — frozen configuration
advanced-deep-research — frozen configuration
Maximum-depth, institutional-grade research.
- Model:
openai/gpt-5.5 - Max steps: 15
- Reasoning effort:
medium - Max output tokens: 128000
- Tools:
web_search,fetch_url(max_urls: 1) - Search results:
max_results: 15(cURL request) - Search depth:
max_tokens: 2000,max_tokens_per_page: 2000onweb_search fetch_urlgrep: enabled — the model can pass agrepargument tofetch_urlto return only matching lines from a page instead of the whole page. This is a preset-level behavior and is not a request-settable field.- System prompt: included inline below
Next Steps
Agent API Quickstart
Get started with the Agent API.
Agent API Models
Explore direct model selection and third-party models.
API Reference
View complete endpoint documentation.