Sonar
Sonar is Perplexity's lightweight search model. It combines language generation with built-in web search to deliver citation-backed answers at low cost within a context window of 127K tokens.
View API reference- Input and output price
- Input $1, Output $1, Per 1M tokens
- 24h uptime
- Loading AI Gateway uptime
import { streamText } from 'ai'
const result = streamText({ model: 'perplexity/sonar', prompt: 'Why is the sky blue?'})Copy link to headingPlayground
Try out Sonar by Perplexity. Usage is billed to your team at API rates. Free users (those who haven't made a payment) get $5 of credits every 30 days.
Sonar
Copy link to headingProviders
Route requests across multiple providers. Copy a provider slug to set your preference. Visit the docs for more info. Using a provider means you agree to their terms, listed under Legal.
| Provider |
|---|
Copy link to headingUptime24 hours
Direct request success rate on AI Gateway and per-provider. Visit the docs for more info.
Copy link to headingThroughput24 hours
P50 throughput on live AI Gateway traffic, in tokens per second (TPS). Visit the docs for more info.
Copy link to headingLatency24 hours
P50 time to first token (TTFT) on live AI Gateway traffic, in milliseconds. View the docs for more info.
Getting started
Call Sonar through AI Gateway with the AI SDK generateText and streamText functions, or through the OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages APIs by changing the base URL. AI Gateway authenticates the request and routes it to an available provider.
Install the AI SDK (pnpm add ai dotenv), create an API key from the API Keys page, and set it as AI_GATEWAY_API_KEY in your environment. Full setup is covered in the text generation quickstart.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'perplexity/sonar', prompt: 'Why is the sky blue?', });
console.log(result.text);}
main().catch(console.error);Top-level parameters
The same Sonar request in each API format AI Gateway supports.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'perplexity/sonar', system: 'You are a concise technical assistant.', prompt: 'Summarize the tradeoffs between static generation and SSR.', maxOutputTokens: 1024, temperature: 0.5, });
console.log(result.text);}
main().catch(console.error);Standard parameters like prompt, messages, temperature, and tools work as documented in the AI SDK docs. These are the parameters with model-specific behavior.
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model ID in the form creator/model, e.g. perplexity/sonar. AI Gateway routes the request to an available provider. |
maxOutputTokens | number | No | Hard cap on generated tokens. Sonar supports up to 8,000 output tokens. |
providerOptions | Record<string, JSONValue> | No | AI Gateway routing options under gateway, plus any provider-native options under the provider’s own namespace — see the table below. |
Input limits
| Input | Formats | Sources | Max count | Max size | Limits |
|---|---|---|---|---|---|
| Text | — | — | — | — | Prompt and response share the 127K-token context window |
| Image | — | URL, base64, Uint8Array | — | — | Sent as image parts in messages; counts as input tokens |
Provider options
Set AI Gateway routing options under providerOptions.gateway. For provider-specific options, pass them under the provider’s namespace as documented by the AI SDK.
Learn more in the AI SDK perplexity provider docs.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'perplexity/sonar', prompt: 'Why is the sky blue?', providerOptions: { gateway: { only: ['perplexity'], }, }, });
console.log(result.text);}
main().catch(console.error);These AI Gateway routing options apply to every model. Provider-specific options pass through under the provider’s own namespace (for example providerOptions.anthropic) exactly as documented by the AI SDK.
| Parameter | Type | Required | Description |
|---|---|---|---|
providerOptions.gateway.only | string[] | No | Restrict routing to these provider slugs. Requests fail over only within the listed providers. |
providerOptions.gateway.order | string[] | No | Preferred provider order. Listed providers are tried first; unlisted providers remain available as fallbacks. |
providerOptions.gateway.sort | 'cost' | 'ttft' | 'tps' | No | Rank candidate providers by price, time to first token, or tokens per second instead of the default routing order. |
providerOptions.gateway.zeroDataRetention | boolean | No | Route only to providers with a zero-data-retention policy for this model. |
Routing across providers
AI Gateway serves the same model through multiple providers and fails over automatically. order expresses a preference while keeping every provider eligible; only is a hard allowlist — if none of the listed providers are available the request fails instead of falling back.
Options under a provider's own namespace (for example providerOptions.anthropic) are forwarded to that provider with the request. Providers ignore option namespaces that don't apply to them, so it is safe to set provider options alongside gateway routing options.
Image input
Send images alongside text as message parts. Images count as input tokens.
import { generateText } from 'ai';import 'dotenv/config';
async function main() { const result = await generateText({ model: 'perplexity/sonar', messages: [ { role: 'user', content: [ { type: 'text', text: 'Describe this image.' }, { type: 'image', image: 'https://example.com/photo.jpg' }, ], }, ], });
console.log(result.text);}
main().catch(console.error);Copy link to headingAbout Sonar
Sonar is the base tier of Perplexity's Sonar API family. It's built for developers who need web-grounded answers without building a retrieval pipeline. Unlike conventional language models that generate from training data alone, Sonar models run a live web search on every inference call and synthesize results into a cited response.
This built-in search is Perplexity's core differentiator. You don't need to configure a separate search API, build a RAG pipeline, or manage document indexing. The model handles query formulation, web retrieval, source evaluation, and answer synthesis in one request. Responses include inline citations pointing to sources, giving your application verifiable provenance for each claim.
Sonar targets high-volume use cases where cited answers matter but deep reasoning isn't required. It has the lowest per-token cost in the Sonar family. That makes it practical for customer-facing search, chatbots that need factual accuracy, and automated research assistants processing many queries. The context window of 127K tokens supports multi-turn conversations that accumulate search context across exchanges.
Copy link to headingWhat To Consider When Choosing a Provider
- Configuration: Sonar runs a web search on every request. Response latency includes network round-trips to retrieve sources. Factor this into timeout budgets for latency-sensitive interfaces. Web search calls bill separately (N/A per thousand when listed for this model).
- Zero Data Retention: Zero Data Retention is offered on a per-provider and model basis. See the documentation for details.
- Authentication: AI Gateway authenticates requests using an API key or OIDC token. You do not need to manage provider credentials directly.
Copy link to headingWhen to Use Sonar
Best for
- Customer-facing search: Answers must cite current web sources
- High-volume factual Q&A: The lowest cost in the Sonar family, suitable for chatbots and support assistants
- Automated research pipelines: Gather and synthesize web information across many queries without separate search infrastructure
- Content verification workflows: Citation-backed responses provide auditable source trails
- Lightweight RAG replacement: No need to build and maintain a custom retrieval stack
Consider alternatives when
- Deep multi-step reasoning: Sonar Reasoning Pro applies chain-of-thought before answering
- Thorough source analysis: Sonar Pro searches more sources and produces more detailed synthesis
- Purely generative work: Creative writing or code generation has no need for web grounding
- Offline environments: Air-gapped deployments can't make web search calls
Copy link to headingConclusion
Sonar delivers Perplexity's signature capability: live web search integrated directly into language model inference. It's the most accessible price point in the Sonar family. If you need cited answers at scale without building retrieval infrastructure, it turns any prompt into a web-informed response in a single call.
Copy link to headingFrequently Asked Questions
How does Sonar's built-in web search work?
Every API call triggers a live web search. The model formulates search queries from your prompt, retrieves and evaluates web sources, then synthesizes the information into a response with inline citations. You don't need an external search API or RAG pipeline.
What is the difference between Sonar and Sonar Pro?
Sonar Pro searches more sources, produces longer and more detailed answers, and handles more complex multi-source queries. Sonar is optimized for speed and cost on straightforward factual queries.
Does Sonar include citations in its responses?
Yes. Responses include inline citations referencing the web sources used for each claim. This gives your application verifiable provenance.
What is the context window for Sonar?
127K tokens. This supports multi-turn conversations where search context accumulates across exchanges.
How much does Sonar cost?
Current pricing is shown on this page. AI Gateway routes across providers, and rates may vary by provider.
How do I authenticate with Sonar through AI Gateway?
Use your AI Gateway API key with the model identifier `
perplexity/sonar`. AI Gateway handles provider routing and authentication. You don't need a separate Perplexity API key when using gateway-managed access.Can I use Sonar without the web search feature?
No. Web search is integral to the Sonar architecture and runs on every request. If you need a model without search, use a general-purpose language model from another provider.
Your use is subject to Perplexity's Terms & Privacy Policies.