Provider
Perplexity
Sonar models, which search the web while answering.
Quick start
import polygate response = polygate.chat( provider="perplexity", model="sonar", messages=[{"role": "user", "content": "Say hi in one word."}],) print(response.content) # "Hi!"print(response.usage) # Usage(prompt_tokens=..., completion_tokens=...)Names
Any of these work as provider. They all reach the same adapter, so pick whichever reads best in your code.
perplexitysonarpplxConfiguration
| Variable | Holds |
|---|---|
| PERPLEXITY_API_KEY | your API key |
Any of these may hold a comma-separated list. polygate rotates across them, parks a rate-limited one for its Retry-After, and drops one the provider rejects — so a key pool is configuration, not code.
Endpoint
https://api.perplexity.ai
Pass base_url to point the same wire format somewhere else — a proxy, a regional endpoint, or a gateway in front of it.
Models
Examples that work today. Model names change; the provider's own list is the authority.
sonarsonar-prosonar-reasoningThings worth knowing
- The host has no
/v1segment — an unusual shape polygate handles for you. - These models cite their sources. The citations are not part of
content; read them fromresponse.raw.
Batch
Perplexity has no offline batch API. To run many requests at once, use map_chat — full price, but it works everywhere and returns in seconds. See Batching & concurrency.