Skip to main content
PUT
cURL

Scoped vs. Unscoped Mode

The API checks whether the disposition is exclusive to the specified agent (i.e., not shared with other agents):
  • Case 1: Disposition is exclusive to this agent → Edit in place. Returns 200 OK.
  • Case 2: Disposition is shared → Copy-on-write. A new private copy is created for this agent, and the agent is re-linked to the copy. The original disposition is unchanged. Returns 201 Created.
A 201 response means a new disposition ID was created. If you’re storing the disposition ID (e.g., in your own database), update your reference to the new ID returned in the response. The original disposition_id now belongs to other agents; your agent uses the new copy.

Unscoped mode — no agent_id

  • Admins can update any disposition in place.
  • Non-admin users can only update dispositions they own.

Moving a Disposition Between Categories

Send the new category in the update body:
  • category_id (preferred) — the ID of an existing category attached to the agent.
  • category — a category name, resolved against the agent’s attached categories; an unmatched name creates a fresh category.
Send at most one of the two — a payload with both fails with a 400 error. Copy-on-write behavior is unchanged: the category placement applies to whichever disposition row the update produces. When the move empties the source category, the emptied category is deleted automatically. See Extraction Categories for category lifecycle rules.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

disposition_id
string<uuid>
required

The ID of the disposition to update.

Body

application/json

Fields to update on the disposition.

Request body for updating a disposition. All fields are optional — only included fields are changed.

agent_id
string<uuid>

If provided, enables scoped (copy-on-write) mode.

name
string

New display name.

Example:

"Next Step Agreed"

question
string

Updated LLM evaluation prompt.

category
string

Category name. Resolved against the agent's attached categories; an unmatched name creates a fresh category and moves the disposition into it.

Example:

"Conversion"

category_id
string<uuid>

ID of an existing extraction category attached to the agent. Moves the disposition into that category. Preferred over category; provide at most one of the two — a payload containing both fails with a 400 error. An ID that does not resolve to a category attached to the agent fails with a 404 error.

Example:

"9b2e8f10-4c7d-4e2a-9f31-6a8d5c1b0e42"

system_prompt
string

Updated LLM system context.

model
enum<string>

Updated LLM model.

Available options:
gpt-4.1-mini,
gpt-4.1-nano,
gpt-4o-mini,
gpt-5-mini,
gpt-5-nano,
gpt-5.4-mini,
gpt-5.6-luna,
gemini-3.5-flash,
gemini-3.5-flash-lite
Example:

"gpt-4.1-mini"

is_subjective
boolean

Enable or disable free-text response.

is_objective
boolean

Enable or disable pre-defined value selection.

subjective_type
enum<string>

Format constraint for free-text responses.

Available options:
text,
timestamp,
numeric,
boolean,
email,
regex
subjective_type_config
object | null

Configuration for the regex subjective type.

objective_options
object[]

Updated list of pre-defined options.

Response

Disposition updated in place

Standard response for create/update operations on a single disposition.

message
string
Example:

"Disposition created successfully"

id
string<uuid>
Example:

"3fa85f64-5717-4562-b3fc-2c963f66afa6"

category_id
string<uuid>

ID of the extraction category the disposition belongs to.

Example:

"9b2e8f10-4c7d-4e2a-9f31-6a8d5c1b0e42"