Skip to main content
POST
Compact a session's context

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.

sessionId
string
required

The session id, returned as session_id by createSession and listSessions.

Response

What the request did.

ok
boolean
required

Always true on success.

outcome
enum<string>
required

What the request did: requested (the running turn compacts at its next step), queued (the queued turn compacts when it starts), started (a compaction now runs for the finished Session, or one already was), already_compacted (nothing new to compact, or the next turn starts compact), credit_exhausted (no usage left to compact).

Available options:
requested,
queued,
started,
already_compacted,
credit_exhausted
status
string

Present when a running or queued turn was asked to compact (outcome requested or queued).

Allowed value: "requested"
detail
string

Why, when the outcome is not plain: in_progress for a compaction already running, a reason for already_compacted (for example byok_no_model_call) or for credit_exhausted.