A valid request URL is required to generate request examples{
"name": "<string>",
"primary_provider": "<string>",
"primary_model": "<string>",
"fallback_provider": "<string>",
"fallback_model": "<string>",
"condition": {
"signals": [
{
"source": "response_header",
"header_name": "<string>",
"header_value": "<string>",
"header_contains": "<string>"
}
],
"operator": "OR"
},
"enabled": true,
"primary_key_ids": [
"<string>"
],
"default_cooldown": "<string>",
"cooldown_header": "<string>"
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>"
}
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>"
}
}Update circuit breaker policy
Replaces a circuit breaker policy by name. The name field in the request body must match the URL parameter or be omitted.
Changes take effect immediately in the running gateway.
A valid request URL is required to generate request examples{
"name": "<string>",
"primary_provider": "<string>",
"primary_model": "<string>",
"fallback_provider": "<string>",
"fallback_model": "<string>",
"condition": {
"signals": [
{
"source": "response_header",
"header_name": "<string>",
"header_value": "<string>",
"header_contains": "<string>"
}
],
"operator": "OR"
},
"enabled": true,
"primary_key_ids": [
"<string>"
],
"default_cooldown": "<string>",
"cooldown_header": "<string>"
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>"
}
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>"
}
}Authorizations
Management API authentication for /api/* endpoints. Use the Authorization header
with Bearer <token>, where <token> is one of:
- a Bifrost management API key,
- a dashboard session token issued by
POST /api/session/login, - base64 of
<admin-username>:<admin-password>(legacy equivalent ofBasicAuth).
Virtual keys (sk-bf-*) and the x-api-key header are not accepted on management APIs -
the sole exception is GET /api/governance/virtual-keys/quota, which is virtual-key-only.
Path Parameters
Name of the policy to update.
Body
Unique name for this policy.
Provider to monitor (e.g. azure, openai).
Model name as it appears in requests (e.g. gpt-4o-ptu).
Provider to route to when the circuit is open.
Model to request from the fallback provider when the circuit is open.
Show child attributes
Show child attributes
When false, the policy is registered but all hooks skip it.
API key UUIDs to track individually. Each key gets its own sub-circuit. The main circuit opens only when all listed keys have tripped. Leave empty to use a single shared circuit for all keys serving this provider+model.
How long to keep the circuit open (in nanoseconds).
Accepted as a Go duration string on write (e.g. "30s", "5m"); returned as an integer (nanoseconds) on read.
Defaults to 30 seconds (30000000000 ns).
^[0-9]+(ns|us|µs|ms|s|m|h)$Response header whose value (in milliseconds) overrides default_cooldown.
Falls back to default_cooldown when the header is absent or unparsable.
Response
Policy updated
Unique name for this policy.
Provider to monitor (e.g. azure, openai).
Model name as it appears in requests (e.g. gpt-4o-ptu).
Provider to route to when the circuit is open.
Model to request from the fallback provider when the circuit is open.
Show child attributes
Show child attributes
When false, the policy is registered but all hooks skip it.
API key UUIDs to track individually. Each key gets its own sub-circuit. The main circuit opens only when all listed keys have tripped. Leave empty to use a single shared circuit for all keys serving this provider+model.
How long to keep the circuit open (in nanoseconds).
Accepted as a Go duration string on write (e.g. "30s", "5m"); returned as an integer (nanoseconds) on read.
Defaults to 30 seconds (30000000000 ns).
^[0-9]+(ns|us|µs|ms|s|m|h)$Response header whose value (in milliseconds) overrides default_cooldown.
Falls back to default_cooldown when the header is absent or unparsable.
Was this page helpful?

