Skip to main content
POST
/
api
/
circuit-breaker
/
policies
Error
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>"
}

Authorizations

Authorization
string
header
required

Management API authentication for /api/* endpoints. Use the Authorization header with Bearer <API key>. Virtual keys, dashboard/user/session tokens, and x-api-key headers are not supported on management APIs.

Body

application/json
name
string
required

Unique name for this policy.

primary_provider
string
required

Provider to monitor (e.g. azure, openai).

primary_model
string
required

Model name as it appears in requests (e.g. gpt-4o-ptu).

fallback_provider
string
required

Provider to route to when the circuit is open.

fallback_model
string
required

Model to request from the fallback provider when the circuit is open.

condition
object
required
enabled
boolean
default:true

When false, the policy is registered but all hooks skip it.

primary_key_ids
string[]

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.

default_cooldown

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).

Pattern: ^[0-9]+(ns|us|µs|ms|s|m|h)$
cooldown_header
string

Response header whose value (in milliseconds) overrides default_cooldown. Falls back to default_cooldown when the header is absent or unparsable.

Response

Policy created

name
string
required

Unique name for this policy.

primary_provider
string
required

Provider to monitor (e.g. azure, openai).

primary_model
string
required

Model name as it appears in requests (e.g. gpt-4o-ptu).

fallback_provider
string
required

Provider to route to when the circuit is open.

fallback_model
string
required

Model to request from the fallback provider when the circuit is open.

condition
object
required
enabled
boolean
default:true

When false, the policy is registered but all hooks skip it.

primary_key_ids
string[]

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.

default_cooldown

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).

Pattern: ^[0-9]+(ns|us|µs|ms|s|m|h)$
cooldown_header
string

Response header whose value (in milliseconds) overrides default_cooldown. Falls back to default_cooldown when the header is absent or unparsable.