Overview
Passthrough integrations let you call provider-native API paths and payloads through Bifrost without route-level request/response conversion. When you use passthrough endpoints, the request still flows through Bifrost core logic. You keep Bifrost features such as logging and observability while sending provider-native paths and bodies.Endpoints
/openai_passthroughDefault provider:openai/anthropic_passthroughDefault provider:anthropic/azure_passthroughDefault provider:azure/genai_passthroughDefault provider:gemini(with automatic Vertex detection for clients configured to use Vertex)
How It Works
- Send your request to a passthrough endpoint (OpenAI, Anthropic, Azure, or GenAI passthrough).
- The integration strips the passthrough prefix and forwards the remaining provider-native path/body.
- Bifrost picks the provider key. Client-supplied provider credentials (
authorization,api-key,x-api-key,x-goog-api-key) are stripped from the request, and Bifrost selects a key from its own key config for the resolved provider and model. - Bifrost handles provider execution through core inference and plugin pipelines.
- Response status, headers, and body are returned as passthrough output (for both stream and non-stream requests).
Claude Code OAuth sign-in (
Authorization: Bearer sk-ant-oat…) is handled separately on the regular /anthropic route, where Bifrost forwards the caller’s token instead of selecting a key. Point Claude Code there — no passthrough endpoint needed. See Claude Code authentication.Provider Selection Rules
OpenAI Passthrough
- Uses
openaias the default provider.
Anthropic Passthrough
- Uses
anthropicas the default provider.
Azure Passthrough
- Uses
azureas the default provider. - Requires an Azure key with
endpointconfigured. api-versionhandling varies by route:/openai/deployments/routes: if the caller omitsapi-version, Bifrost injects a default (2025-04-01-preview). Pass your ownapi-versionto override — for example, to pin to a GA version or use a specific preview version.
GenAI Passthrough
- Uses
geminiby default. - Automatically switches to
vertexwhen Vertex patterns are detected, such as:- URL path containing
/projects/{PROJECT_ID}/locations/{LOCATION}/ - Request body
modelcontaining a Vertex resource path - OAuth token pattern typically used for Vertex (
Bearer ya29...)
- URL path containing
Usage Examples
OpenAI Passthrough
- Python SDK
- cURL
Anthropic Passthrough
- Python SDK
- cURL
Azure Passthrough
- Azure OpenAI SDK
- OpenAI SDK
- Anthropic SDK (Anthropic on Azure)
- cURL
GenAI Passthrough (Gemini)
- Python SDK
- cURL
GenAI Passthrough (Vertex-style request)
- Python SDK
- cURL
Notes
- Use passthrough when you need a provider endpoint that is not directly supported by Bifrost integration routes yet.
- Provider key selection is done by Bifrost, not by the caller. On every passthrough endpoint, the client’s
authorization,api-key,x-api-key, andx-goog-api-keyheaders are dropped before the request leaves Bifrost, and the upstream auth header (including Azure’sapi-key/ OAuth token) is set from the Bifrost key config. - The only exception is direct API keys, which need both the server-side
allow_direct_keyssetting and a per-requestx-bf-direct-key: trueheader. Without both, a raw provider key in the request is ignored. - For Azure
/openai/deployments/routes, Bifrost injectsapi-version=2025-04-01-previewwhen the caller does not supply one. Supply your ownapi-versionquery parameter to use a different version (e.g.2024-10-21for the latest GA, or a newer preview).

