Skip to main content
PUT
Update a routing policy

Authorizations

Authorization
string
header
required

A Barndoor API key, sent as Authorization: Bearer <key>. Keys are prefixed bdai_ and are opaque — do not attempt to decode one. Interchangeable with an OAuth 2.0 access token.

Path Parameters

id
string<uuid>
required

Identifier, a UUID

Body

application/json
context_breakpoints
integer<int32>[] | null
default_slot_on_failure
integer<int32> | null
description
string | null
determiner_model_alias
string | null

Outer Option = "field present in the update"; inner = the new value (None clears the determiner).

determiner_prompt
string | null
enabled
boolean | null
model_alias
string | null
posture
enum<string> | null

Which way a policy leans when the router is genuinely unsure.

Passed to the router as an instruction, not as a separate code path — there is one picker, and posture only shifts how it resolves uncertainty. It never overrides a rule floor, a rule ban, or the caller's model access; those are applied in code afterwards.

Available options:
savings,
balanced,
quality
router_input_max_chars
integer<int32> | null
slots
object[] | null

Response

The requested record

context_breakpoints
integer<int32>[]
required
created_at
string<date-time>
required
default_slot_on_failure
integer<int32>
required
enabled
boolean
required
id
string<uuid>
required
model_alias
string
required
org_id
string<uuid>
required
posture
enum<string>
required

How eagerly this policy steps up when the router is unsure.

Available options:
savings,
balanced,
quality
router_input_max_chars
integer<int32>
required
slots
object[]
required
updated_at
string<date-time>
required
description
string | null
determiner_model_alias
string | null

The model that picks a slot. Optional because a policy may be saved before one is chosen; the picker falls back to the context-size floor when it is absent. Either a chat model that supports JSON-mode output, or a Jev classifier model (TypeSafe, or OpenRouter's typesafe/ models), which is asked on System One instead of prompted for JSON.

determiner_prompt
string | null

Optional override for the determiner's instruction preamble. None (or empty) falls back to the built-in default (see routing::determiner). The slot catalog, request-metadata block, and JSON-output schema are always appended by the gateway so the structured-output contract holds regardless of what an admin writes here. Not used by a Jev determiner, whose questions carry their own instructions.