Overview
Perplexity is an OpenAI-compatible API with built-in web search capabilities and reasoning support. Bifrost performs conversions including:- OpenAI-compatible base - Uses OpenAI’s chat format as foundation
- Web search parameters - Search mode, domain filters, recency filters, and location-based search
- Reasoning effort mapping -
reasoning.effortmapped to Perplexity’sreasoning_effortwith special handling for “minimal” - Search results inclusion - Citations, search results, and videos included in response
- Special usage tracking - Citation tokens, search queries, and reasoning tokens tracked separately
Supported Operations
Unsupported Operations (❌): Text Completions, Embeddings, Image Generation, Speech, Transcriptions, Files, Batch, and List Models are not supported by the upstream Perplexity API. These return
UnsupportedOperationError.Setup & Configuration
Configure Perplexity as a provider.- Web UI
- config.json
- API
- Go SDK

- Navigate to Models > Model Providers. Look for Perplexity under Configured Providers. If it is missing, click on Add New Provider and select Perplexity.
- Click Add Key or edit an existing key.
- Set a name for your key.
- Paste your API key directly or use an environment variable (for example,
env.PERPLEXITY_API_KEY). - Set Allowed Models to All Models (default) or the specific model allowlist you want this key to serve.
- Save the provider configuration.
1. Chat Completions
Request Parameters
Perplexity supports most OpenAI chat completion parameters. For standard parameter reference, see OpenAI Chat Completions.Perplexity-Specific Constraints
- No function calling:
toolsandtool_choiceare silently dropped - Dropped parameters:
stop,logit_bias,logprobs,top_logprobs,seed,parallel_tool_calls,service_tier - Reasoning: Uses
reasoning_effortinstead ofreasoningobject (see Reasoning & Effort)
Perplexity-Specific Parameters
Useextra_params (SDK) or pass directly in request body (Gateway) for Perplexity-specific search and configuration fields:
- Gateway
- Go SDK
Search Parameters
Media Parameters
Web Search Options
Configure detailed search behavior including location:Reasoning & Effort
Parameter Mapping
reasoning.effort→reasoning_effort- Supported efforts:
"low","medium","high" - Special conversion:
"minimal"→"low"(Perplexity normalizes to low/medium/high) reasoning.max_tokensis silently dropped (Perplexity doesn’t support token budget control)
Example
Response Conversion
Search Results Inclusion
Perplexity responses include additional fields for search integration:citations[]- Source citations from searchsearch_results[]- Full search results with metadatavideos[]- Video results from search
Usage Details
Extended usage tracking specific to Perplexity:Example Response
Streaming
Perplexity uses OpenAI-compatible streaming format. Event sequence:chat.completion.chunkevents with delta updates- Standard OpenAI finish reason mapping
Streaming with web search may return search results in final chunks.
Caveats
No Tool Support
No Tool Support
Severity: High
Behavior: Tool-related parameters are silently dropped
Impact: Function calling not available
Code:
chat.go:8-36Reasoning Effort Mapping
Reasoning Effort Mapping
Severity: Medium
Behavior:
"minimal" effort is mapped to "low" (Perplexity only supports low/medium/high)
Impact: Requested minimal effort becomes low effort
Code: chat.go:30-36, responses.go:25-30Reasoning Max Tokens Dropped
Reasoning Max Tokens Dropped
Severity: Low
Behavior:
reasoning.max_tokens is silently dropped
Impact: No control over reasoning token budget
Code: chat.go:29-36Stop Sequences Not Supported
Stop Sequences Not Supported
Severity: Low
Behavior:
stop parameter is silently dropped
Impact: Stop sequences not enforced
Code: chat.go:8-362. Responses API
The Responses API is adapted for Perplexity by converting to the Chat Completions format internally and returning results in Responses format.Request Parameters
Parameter Mapping
Extra Parameters
Same Perplexity-specific search and configuration parameters as Chat Completions (see Perplexity-Specific Parameters).- Gateway
- Go SDK
Conversion Details
instructionsbecomes a system message prepended to input messagesinput(string or array) converted to user message(s)- Response converted to Responses API format with same search results and extended usage details

