Skip to main content
PATCH
Update a Reason

Authorizations

Authorization
string
header
required

Your Reason API key from Settings > API. New keys use reason_; legacy ara_ keys remain accepted. Keys are capability-scoped: run, mcp:read, mcp:write, secrets:read, secrets:write, sessions:read, sessions:debug, knowledge:read, memory:read, memory:write, skills:read, skills:write, repos:read, repos:write, reviews:read, reviews:write, deployment:read, analytics:read, org:read, org:write, attachments:read, attachments:write, guardrails:read, guardrails:write, network:read, network:write, automations:read, automations:write, agent_auth:read. network:read and network:write are opt-in, excluded from default keys. network:read reads the saved workspace network policy; network:write replaces custom allowed hosts and requires a current organization owner/admin. Legacy project PATCH requests containing network_allowed_hosts also require network:write plus their existing run scope and project management permission; saved project hosts do not affect current session egress. Only owners/admins can mint or manage keys with network:write; keys cannot grant themselves more authority. See /docs/network-policies for replacement semantics and runtime applicability. mcp:write manages MCP server configuration only; it does not authorize remote MCP-tool execution. sessions:read reads sessions, including the assistant, reasoning and tool activity in their events. sessions:debug is privileged: only for organization owners/admins, it expands session events to the full diagnostic projection (diagnostic event kinds, status text and raw event metadata).

Path Parameters

orgId
string
required

Organization id or slug. Resolve it with GET /v3/self.

reasonId
string<uuid>
required

The Reason id, returned as id by listReasons and createReason.

Body

application/json

Send name, appearance or both; fields left out keep their value. A new appearance on the main Reason changes the person's Reason avatar.

name
string

The name to list the Reason under from now on; its conversation Session is retitled to match. The main Reason keeps its name (409).

Required string length: 1 - 80
appearance
object

How the Reason's bot avatar looks in the app. Purely visual; it changes nothing the agent does.

Response

The updated Reason.

A long-running agent conversation the person keeps: their main Reason or a named one. Sessions it starts are filed under it.

id
string<uuid>
required

Reason id. Pass it as reasonId to the other Reason tools.

name
string
required

Display name. The main Reason is always called Reason.

user_id
string<uuid>
required

The owner, the only person who can open, rename or archive it.

mine
boolean
required

True when the caller owns this Reason.

visibility
enum<string>
required

workspace: every member sees it in their list; private: only its owner does.

Available options:
workspace,
private
main
boolean
required

True for the person's main Reason, which is always listed and is never renamed or archived.

appearance
object
required

How the Reason's bot avatar looks in the app. Purely visual; it changes nothing the agent does.

session_id
string | null
required

Its conversation Session once it has been opened, and only on the caller's own Reasons; null otherwise. Use it with sendSessionMessage and listSessionConversation.

created_at
string<date-time>
required
updated_at
string<date-time>
required