Perplexity provider summary
Bifrost uses OpenAI chat format as the foundation and adds Perplexity-specific search and usage tracking.
- OpenAI-compatible chat and responses with SSE streaming
- Web search via request body or
extra_params - Citations,
search_results, andvideospreserved in responses - Extended usage: citation tokens, search queries, reasoning tokens, cost
| Property | Details |
|---|---|
| Description | OpenAI-compatible API with web search and reasoning. |
| Provider route on Bifrost | perplexity/<model> |
| Authentication | API key (Bearer) |
| Upstream endpoint | /chat/completions |
Authentication
Configure your Perplexity API key in Bifrost. Requests use Authorization: Bearer <key>.
Supported operations
Unsupported operations return UnsupportedOperationError. See Supported operations in Bifrost docs.
| Operation | Non-streaming | Streaming | Upstream endpoint |
|---|---|---|---|
| Chat Completions | Yes | Yes | /chat/completions |
| Responses API | Yes | Yes | /chat/completions |
| Text Completions | No | No | - |
| Embeddings | No | No | - |
| Image Generation | No | No | - |
| Speech (TTS) | No | No | - |
| Transcriptions (STT) | No | No | - |
| Files | No | No | - |
| Batch | No | No | - |
| List Models | No | No | - |
API reference
1) Chat Completions
See Chat Completions in Bifrost docs.
Dropped parameters
| Parameter | Notes |
|---|---|
| tools / tool_choice | Function calling not available |
| stop | Stop sequences not supported |
| logit_bias, logprobs, top_logprobs | Not supported |
| seed, parallel_tool_calls, service_tier | Silently dropped |
Search parameters
Pass in the request body (Gateway) or via extra_params (SDK).
| Parameter | Type | Description |
|---|---|---|
| search_mode | string | Search mode: web, academic, news, etc. |
| language_preference | string | Language preference (e.g. en, fr) |
| search_domain_filter | string[] | Restrict search to specific domains |
| return_images | boolean | Include images in search results |
| return_related_questions | boolean | Return related questions |
| search_recency_filter | string | hour, day, week, month, year |
| search_after_date_filter | string | Results after date (ISO) |
| search_before_date_filter | string | Results before date (ISO) |
| last_updated_after_filter | string | Content updated after date |
| last_updated_before_filter | string | Content updated before date |
| disable_search | boolean | Disable web search entirely |
| enable_search_classifier | boolean | Enable search classifier |
| top_k | integer | Top-k results to use |
Reasoning: reasoning.effort maps to reasoning_effort (low, medium, high). minimal becomes low. reasoning.max_tokens is dropped.
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "perplexity/sonar",
"messages": [{"role": "user", "content": "What is the latest news?"}],
"search_mode": "web",
"language_preference": "en",
"return_images": true,
"return_related_questions": true,
"search_domain_filter": ["news.example.com"],
"search_recency_filter": "week"
}'2) Responses API
Converted internally to Chat Completions; responses include citations and search metadata. See Responses API in Bifrost docs.
| Parameter | Transformation |
|---|---|
| max_output_tokens | Direct pass-through to max_tokens |
| temperature, top_p | Direct pass-through |
| instructions | Converted to system message (prepended) |
| reasoning.effort | Mapped to reasoning_effort |
| text.format | Passed through as response_format |
| input (string/array) | Converted to messages |
curl -X POST http://localhost:8080/v1/responses \
-H "Content-Type: application/json" \
-d '{
"model": "perplexity/sonar",
"instructions": "You are a helpful assistant with web search capabilities",
"input": "What is the latest news in technology?",
"search_mode": "news",
"return_images": true
}'Unsupported features
| Feature | Reason |
|---|---|
| Text completions | Not offered by Perplexity API |
| Embeddings | Not offered by Perplexity API |
| Image generation | Not offered by Perplexity API |
| Speech/TTS | Not offered by Perplexity API |
| Transcription/STT | Not offered by Perplexity API |
| Batch operations | Not offered by Perplexity API |
| File management | Not offered by Perplexity API |
| List models | Not offered by Perplexity API |
Implementation caveats
| Caveat | Impact | Severity |
|---|---|---|
| No tool support | tools and tool_choice silently dropped; function calling unavailable | High |
| Reasoning effort mapping | minimal maps to low (only low/medium/high supported) | Medium |
| Reasoning max tokens dropped | reasoning.max_tokens has no effect | Low |
| Stop sequences not supported | stop parameter silently dropped | Low |