Claude Platform Docs

Events

Events auflisten
beta.sessions.events.list(session_id, **kwargs) -> SyncPageCursor[BetaManagedAgentsSessionEvent]
GET/v1/sessions/{session_id}/events
Events senden
beta.sessions.events.send(session_id, **kwargs) -> BetaManagedAgentsSendSessionEvents
POST/v1/sessions/{session_id}/events
Events streamen
beta.sessions.events.stream(session_id, **kwargs) -> BetaManagedAgentsStreamSessionEvents
GET/v1/sessions/{session_id}/events/stream
Models
type BetaManagedAgentsAgentAutoEvaluatedPermission = ...

The server's per-invocation judgement under the auto permission policy. Its type always equals the event's top-level evaluated_permission. Open union: clients must tolerate unknown variants.

One of the following:
class BetaManagedAgentsAgentAutoEvaluatedPermissionAllow: type: "allow"

The server judged the invocation safe to execute without client approval.

type: Literal["allow"]
class BetaManagedAgentsAgentAutoEvaluatedPermissionAsk: type: "ask"; reason_code

The server reached no judgement; the invocation is held for client approval.

type: Literal["ask"]
reason_code: str

The judgement's grounds in registry-bound terms, for client branching and audit rather than end-user display. Open registry; currently "indeterminate" (no judgement was reached). Clients must tolerate values outside this set.

maxLength64
class BetaManagedAgentsAgentAutoEvaluatedPermissionDeny: type: "deny"; reason_code

The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended.

type: Literal["deny"]
reason_code: str

The judgement's grounds in registry-bound terms. Open registry; currently "high_risk" (judged high-risk; the call does not run). Clients must tolerate values outside this set.

maxLength64
class BetaManagedAgentsAgentCustomToolUseEvent: type: "agent.custom_tool_use"; id; input; ... # 3 more

Event emitted when the agent calls a custom tool. The session goes idle until the client sends a user.custom_tool_result event with the result. The client can send it as soon as this event arrives, without waiting for session.status_idle.

type: Literal["agent.custom_tool_use"]
id: str

Unique identifier for this event.

input: Dict[str, object]

Input parameters for the tool call.

name: str

Name of the custom tool being called.

processed_at: datetime

Timestamp when this tool use was processed.

formatdate-time
session_thread_id: Optional[str]

When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching user.custom_tool_result by custom_tool_use_id, so clients do not send it back.

type BetaManagedAgentsAgentEvaluatedPermission = Literal["allow", "ask", "deny"]
One of the following:
"allow"
"ask"
"deny"
class BetaManagedAgentsAgentMCPToolResultEvent: type: "agent.mcp_tool_result"; id; mcp_tool_use_id; ... # 3 more

Event representing the result of an MCP tool execution.

class BetaManagedAgentsAgentMCPToolUseEvent: type: "agent.mcp_tool_use"; id; input; ... # 6 more

Event emitted when the agent invokes a tool provided by an MCP server.

class BetaManagedAgentsAgentMessageEvent: type: "agent.message"; id; content; processed_at

An agent response event in the session conversation.

class BetaManagedAgentsAgentThinkingEvent: type: "agent.thinking"; id; processed_at

Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier.

type: Literal["agent.thinking"]
id: str

Unique identifier for this event.

processed_at: datetime

Timestamp when this thinking was produced.

formatdate-time
class BetaManagedAgentsAgentThreadContextCompactedEvent: type: "agent.thread_context_compacted"; id; processed_at

Indicates that context compaction (summarization) occurred during the session.

type: Literal["agent.thread_context_compacted"]
id: str

Unique identifier for this event.

processed_at: datetime

Timestamp when compaction was processed.

formatdate-time
class BetaManagedAgentsAgentThreadMessageReceivedEvent: type: "agent.thread_message_received"; id; content; ... # 3 more

Delivery event written to the target thread's input stream when an agent-to-agent message arrives.

class BetaManagedAgentsAgentThreadMessageSentEvent: type: "agent.thread_message_sent"; id; content; ... # 3 more

Observability event emitted to the sender's output stream when an agent-to-agent message is sent.

type BetaManagedAgentsAgentToolEvaluation = ...

Names the resolved permission_policy that produced evaluated_permission, and under auto carries the judgement. Open union: clients must tolerate unknown variants.

One of the following:
class BetaManagedAgentsAgentToolEvaluationAlwaysAllow: type: "always_allow"

The resolved permission_policy was always_allow; accompanies evaluated_permission "allow".

type: Literal["always_allow"]
class BetaManagedAgentsAgentToolEvaluationAlwaysAsk: type: "always_ask"

The resolved permission_policy was always_ask; accompanies evaluated_permission "ask".

type: Literal["always_ask"]
class BetaManagedAgentsAgentToolEvaluationAuto: type: "auto"; evaluated_permission

The resolved permission_policy was auto: the server judged this invocation individually.

type: Literal["auto"]

The server's judgement for this invocation.

One of the following:
class BetaManagedAgentsAgentToolEvaluationAlwaysAllow: type: "always_allow"

The resolved permission_policy was always_allow; accompanies evaluated_permission "allow".

type: Literal["always_allow"]
class BetaManagedAgentsAgentToolEvaluationAlwaysAsk: type: "always_ask"

The resolved permission_policy was always_ask; accompanies evaluated_permission "ask".

type: Literal["always_ask"]
class BetaManagedAgentsAgentToolEvaluationAuto: type: "auto"; evaluated_permission

The resolved permission_policy was auto: the server judged this invocation individually.

type: Literal["auto"]

The server's judgement for this invocation.

One of the following:
class BetaManagedAgentsAgentToolResultEvent: type: "agent.tool_result"; id; processed_at; ... # 3 more

Event representing the result of an agent tool execution.

class BetaManagedAgentsAgentToolUseEvent: type: "agent.tool_use"; id; input; ... # 5 more

Event emitted when the agent invokes a built-in agent tool.

class BetaManagedAgentsBase64DocumentSource: type: "base64"; data; media_type

Base64-encoded document data.

type: Literal["base64"]
data: str

Base64-encoded document data.

minLength1
media_type: str

MIME type of the document (e.g., "application/pdf").

minLength1
class BetaManagedAgentsBase64ImageSource: type: "base64"; data; media_type

Base64-encoded image data.

type: Literal["base64"]
data: str

Base64-encoded image data.

minLength1
media_type: str

MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp").

minLength1
class BetaManagedAgentsBillingError: type: "billing_error"; message; retry_status

The caller's organization or workspace cannot make model requests — out of credits or spend limit reached. Retrying with the same credentials will not succeed; the caller must resolve the billing state.

class BetaManagedAgentsCredentialHostUnreachableError: type: "credential_host_unreachable_error"; credential_id; message; ... # 2 more

An environment_variable credential's auth.networking.allowed_hosts includes a host the environment's network policy does not permit.

class BetaManagedAgentsDocumentBlock: type: "document"; source; context; title

Document content, either specified directly as base64 data, as text, or as a reference via a URL.

type BetaManagedAgentsEventParams = ...

Union type for event parameters that can be sent to a session.

One of the following:
class BetaManagedAgentsFileDocumentSource: type: "file"; file_id

Document referenced by file ID.

type: Literal["file"]
file_id: str

ID of a previously uploaded file.

minLength1
class BetaManagedAgentsFileImageSource: type: "file"; file_id

Image referenced by file ID.

type: Literal["file"]
file_id: str

ID of a previously uploaded file.

minLength1
class BetaManagedAgentsFileRubric: type: "file"; file_id

Rubric referenced by a file uploaded via the Files API.

type: Literal["file"]
file_id: str

ID of the rubric file.

class BetaManagedAgentsFileRubricParams: type: "file"; file_id

Rubric referenced by a file uploaded via the Files API.

type: Literal["file"]
file_id: str

ID of the rubric file.

class BetaManagedAgentsImageBlock: type: "image"; source

Image content specified directly as base64 data or as a reference via a URL.

class BetaManagedAgentsMaxWorkflowRunsWorkflowRunError: type: "max_workflow_runs_error"; message

No run was created, because the session was at its limit of open workflow runs, which are runs that have not ended. Only workflow_run.error carries this type.

type: Literal["max_workflow_runs_error"]
message: str

Short explanation written by the server. It never contains content from the run or its agents.

class BetaManagedAgentsMCPAuthenticationFailedError: type: "mcp_authentication_failed_error"; mcp_server_name; message; retry_status

Authentication to an MCP server failed.

class BetaManagedAgentsMCPConnectionFailedError: type: "mcp_connection_failed_error"; mcp_server_name; message; retry_status

Failed to connect to an MCP server.

class BetaManagedAgentsModelOverloadedError: type: "model_overloaded_error"; message; retry_status

The model is currently overloaded. Emitted after automatic retries are exhausted.

class BetaManagedAgentsModelRateLimitedError: type: "model_rate_limited_error"; message; retry_status

The model request was rate-limited.

class BetaManagedAgentsModelRequestFailedError: type: "model_request_failed_error"; message; retry_status

A model request failed for a reason other than overload or rate-limiting.

class BetaManagedAgentsPlainTextDocumentSource: type: "text"; data; media_type

Plain text document content.

type: Literal["text"]
data: str

The plain text content.

minLength1
media_type: Literal["text/plain"]

MIME type of the text content. Must be "text/plain".

class BetaManagedAgentsProgramWorkflowRunError: type: "program_error"; message

The plan, a program that the agent wrote, failed, or the server refused it.

type: Literal["program_error"]
message: str

Short explanation written by the server. It never contains content from the run or its agents.

class BetaManagedAgentsRedactedBlock: type: "redacted"

Placeholder for content withheld by Anthropic model policy.

type: Literal["redacted"]
class BetaManagedAgentsRepositoryAuthenticationError: type: "repository_authentication_error"; message; repository_url; retry_status

The repository host rejected the credentials, or required credentials and received none.

class BetaManagedAgentsRepositoryCheckoutError: type: "repository_checkout_error"; message; repository_url; retry_status

The requested branch or commit does not exist in the repository.

class BetaManagedAgentsRepositoryCloneError: type: "repository_clone_error"; message; repository_url; retry_status

The repository could not be cloned.

class BetaManagedAgentsRepositoryForbiddenError: type: "repository_forbidden_error"; message; repository_url; retry_status

The repository host refused access to the repository.

class BetaManagedAgentsRepositoryNotFoundError: type: "repository_not_found_error"; message; repository_url; retry_status

The repository host reported the repository as not found.

class BetaManagedAgentsRetryStatusExhausted: type: "exhausted"

This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

type: Literal["exhausted"]
class BetaManagedAgentsRetryStatusRetrying: type: "retrying"

The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

type: Literal["retrying"]
class BetaManagedAgentsRetryStatusTerminal: type: "terminal"

The session encountered a terminal error and will transition to terminated state.

type: Literal["terminal"]
class BetaManagedAgentsSearchResultBlock: type: "search_result"; citations; content; ... # 2 more

A block containing a web search result.

type: Literal["search_result"]

Citation settings for this search result.

enabled: bool

Whether citations are enabled for this search result.

Array of text content blocks from the search result.

type: Literal["text"]
text: str

The text content.

minLength1
source: str

The URL source of the search result.

minLength1
title: str

The title of the search result.

minLength1
class BetaManagedAgentsSearchResultCitations: enabled

Citation settings for a search result.

enabled: bool

Whether citations are enabled for this search result.

class BetaManagedAgentsSearchResultContent: type: "text"; text

Text content within a search result.

type: Literal["text"]
text: str

The text content.

minLength1
class BetaManagedAgentsSendSessionEvents: data

Events that were successfully sent to the session.

class BetaManagedAgentsSessionBudgetReached: type: "budget_reached"

The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget.

type: Literal["budget_reached"]
class BetaManagedAgentsSessionDeletedEvent: type: "session.deleted"; id; processed_at

Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session.

type: Literal["session.deleted"]
id: str

Unique identifier for this event.

processed_at: datetime

Timestamp when the session was deleted.

formatdate-time
class BetaManagedAgentsSessionEndTurn: type: "end_turn"

The agent completed its turn naturally and is ready for the next user message.

type: Literal["end_turn"]
class BetaManagedAgentsSessionErrorEvent: type: "session.error"; id; error; processed_at

An error event indicating a problem occurred during session execution.

type BetaManagedAgentsSessionEvent = ...

Union type for all event types in a session.

One of the following:
type BetaManagedAgentsSessionEventType = Literal["user.message", "user.interrupt", "user.tool_confirmation", 38 more]

The type of a session event.

One of the following:
class BetaManagedAgentsSessionRefusal: type: "refusal"

The turn ended because the model's response was refused, for example by a safety classifier.

type: Literal["refusal"]
class BetaManagedAgentsSessionRefusalStopDetails: type: "refusal"; category; explanation

Structured information about a refusal.

type: Literal["refusal"]
category: Optional[Literal["cyber", "bio", "frontier_llm", 2 more]]

The policy category that triggered the refusal, or null when there is no named category. New values can be added over time.

One of the following:
"cyber"
"bio"
"frontier_llm"
"reasoning_extraction"
"general_harms"
explanation: Optional[str]

Human-readable explanation of the refusal, or null when none is available. The wording can change, so do not parse it.

class BetaManagedAgentsSessionRequiresAction: type: "requires_action"; event_ids

The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running.

type: Literal["requires_action"]
event_ids: List[str]

The ids of events the agent is blocked on. Resolving fewer than all re-emits session.status_idle with the remainder.

class BetaManagedAgentsSessionRetriesExhausted: type: "retries_exhausted"

The turn ended because repeated errors exhausted the retry budget or an error escalated to retry_status: 'exhausted'.

type: Literal["retries_exhausted"]
class BetaManagedAgentsSessionStatusIdleEvent: type: "session.status_idle"; id; processed_at; ... # 2 more

Indicates the agent has paused and is awaiting user input.

class BetaManagedAgentsSessionStatusRescheduledEvent: type: "session.status_rescheduled"; id; processed_at

Indicates the session is recovering from an error state and is rescheduled for execution.

type: Literal["session.status_rescheduled"]
id: str

Unique identifier for this event.

processed_at: datetime

Timestamp of status change.

formatdate-time
class BetaManagedAgentsSessionStatusRunningEvent: type: "session.status_running"; id; processed_at

Indicates the session is actively running and the agent is working.

type: Literal["session.status_running"]
id: str

Unique identifier for this event.

processed_at: datetime

Timestamp of status change.

formatdate-time
class BetaManagedAgentsSessionStatusTerminatedEvent: type: "session.status_terminated"; id; processed_at

Indicates the session has terminated, either due to an error or completion.

type: Literal["session.status_terminated"]
id: str

Unique identifier for this event.

processed_at: datetime

Timestamp of status change.

formatdate-time
class BetaManagedAgentsSessionThreadCreatedEvent: type: "session.thread_created"; id; agent_name; ... # 3 more

Emitted when a child thread is created. Written to the parent thread's output stream so clients observing the session see child creation.

type: Literal["session.thread_created"]
id: str

Unique identifier for this event.

agent_name: str

Name of the callable agent the thread runs.

processed_at: datetime

Timestamp when the thread was created.

formatdate-time
session_thread_id: str

Public sthr_ ID of the newly created thread.

workflow_run_id: Optional[str]

Identifier of the workflow run that created the thread, or null for any other thread.

class BetaManagedAgentsSessionThreadStatusIdleEvent: type: "session.thread_status_idle"; id; agent_name; ... # 4 more

A session thread has yielded and is awaiting input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads.

class BetaManagedAgentsSessionThreadStatusRescheduledEvent: type: "session.thread_status_rescheduled"; id; agent_name; ... # 2 more

A session thread hit a transient error and is retrying automatically. Emitted on the thread's own stream and cross-posted to the primary stream for child threads.

type: Literal["session.thread_status_rescheduled"]
id: str

Unique identifier for this event.

agent_name: str

Name of the agent the thread runs.

processed_at: datetime

Timestamp of the status transition.

formatdate-time
session_thread_id: str

Public sthr_ ID of the thread that is retrying.

class BetaManagedAgentsSessionThreadStatusRunningEvent: type: "session.thread_status_running"; id; agent_name; ... # 2 more

A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads.

type: Literal["session.thread_status_running"]
id: str

Unique identifier for this event.

agent_name: str

Name of the agent the thread runs.

processed_at: datetime

Timestamp of the status transition.

formatdate-time
session_thread_id: str

Public sthr_ ID of the thread that started running.

class BetaManagedAgentsSessionThreadStatusTerminatedEvent: type: "session.thread_status_terminated"; id; agent_name; ... # 2 more

A session thread has terminated and will accept no further input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads.

type: Literal["session.thread_status_terminated"]
id: str

Unique identifier for this event.

agent_name: str

Name of the agent the thread runs.

processed_at: datetime

Timestamp of the status transition.

formatdate-time
session_thread_id: str

Public sthr_ ID of the thread that terminated.

class BetaManagedAgentsSessionUsageSnapshot: active_seconds; cache_creation; cache_read_input_tokens; ... # 4 more

Point-in-time snapshot of a session's cumulative usage.

class BetaManagedAgentsSpanModelRequestEndEvent: type: "span.model_request_end"; id; is_error; ... # 3 more

Emitted when a model request completes.

class BetaManagedAgentsSpanModelRequestStartEvent: type: "span.model_request_start"; id; processed_at

Emitted when a model request is initiated by the agent.

type: Literal["span.model_request_start"]
id: str

Unique identifier for this event.

processed_at: datetime

Timestamp when the model request started.

formatdate-time
class BetaManagedAgentsSpanModelUsage: cache_creation_input_tokens; cache_read_input_tokens; input_tokens; ... # 2 more

Token usage for a single model request.

cache_creation_input_tokens: int

Tokens used to create prompt cache in this request.

formatint32
cache_read_input_tokens: int

Tokens read from prompt cache in this request.

formatint32
input_tokens: int

Input tokens consumed by this request.

formatint32
output_tokens: int

Output tokens generated by this request.

formatint32
speed: Optional[Literal["standard", "fast"]]

Inference speed tier this request actually ran at. Mirrors usage.speed on /v1/messages. Only present when the fast-mode beta is active.

One of the following:
"standard"
"fast"
class BetaManagedAgentsSpanOutcomeEvaluationEndEvent: type: "span.outcome_evaluation_end"; id; explanation; ... # 6 more

Emitted when an outcome evaluation cycle completes. Carries the verdict and aggregate token usage. A verdict of needs_revision means another evaluation cycle follows; satisfied, max_iterations_reached, failed, or interrupted are terminal — no further evaluation cycles follow.

class BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent: type: "span.outcome_evaluation_ongoing"; id; iteration; ... # 2 more

Periodic heartbeat emitted while an outcome evaluation cycle is in progress. Distinguishes 'evaluation is actively running' from 'evaluation is stuck' between the corresponding span.outcome_evaluation_start and span.outcome_evaluation_end events.

type: Literal["span.outcome_evaluation_ongoing"]
id: str

Unique identifier for this event.

iteration: int

0-indexed revision cycle, matching the corresponding span.outcome_evaluation_start.

formatint32
outcome_id: str

The outc_ ID of the outcome being evaluated.

processed_at: datetime

Timestamp when this heartbeat was emitted.

formatdate-time
class BetaManagedAgentsSpanOutcomeEvaluationStartEvent: type: "span.outcome_evaluation_start"; id; iteration; ... # 2 more

Emitted when an outcome evaluation cycle begins.

type: Literal["span.outcome_evaluation_start"]
id: str

Unique identifier for this event.

iteration: int

0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc.

formatint32
outcome_id: str

The outc_ ID of the outcome being evaluated.

processed_at: datetime

Timestamp when outcome evaluation started.

formatdate-time
type BetaManagedAgentsStreamSessionEvents = ...

Server-sent event in the session stream.

One of the following:
class BetaManagedAgentsSystemMessageEventParams: type: "system.message"; content

Privileged context for the accompanying turn and all subsequent turns, appended to the session's system context as a role: "system" turn rather than replacing the top-level system prompt. At most one per request: it must be the final event and immediately follow the user.message, user.tool_result, or user.custom_tool_result it accompanies. Only supported on models that accept mid-conversation system messages.

type: Literal["system.message"]

System content blocks to append. Text-only.

type: Literal["text"]
text: str

The text content.

minLength1
class BetaManagedAgentsTextBlock: type: "text"; text

Regular text content.

type: Literal["text"]
text: str

The text content.

minLength1
class BetaManagedAgentsTextRubric: type: "text"; content

Rubric content provided inline as text.

type: Literal["text"]
content: str

Rubric content. Plain text or markdown — the grader treats it as freeform text.

class BetaManagedAgentsTextRubricParams: type: "text"; content

Rubric content provided inline as text.

type: Literal["text"]
content: str

Rubric content. Plain text or markdown — the grader treats it as freeform text. Maximum 262144 characters.

maxLength262144
class BetaManagedAgentsThreadLimitWorkflowRunError: type: "thread_limit_error"; message

The run exceeded the limit on the number of threads that a run can create.

type: Literal["thread_limit_error"]
message: str

Short explanation written by the server. It never contains content from the run or its agents.

class BetaManagedAgentsTimeoutWorkflowRunError: type: "timeout_error"; message

The run reached its time limit.

type: Literal["timeout_error"]
message: str

Short explanation written by the server. It never contains content from the run or its agents.

class BetaManagedAgentsUnknownError: type: "unknown_error"; message; retry_status

An unknown or unexpected error occurred during session execution. A fallback variant; clients that don't recognize a new error code can match on retry_status and message alone.

class BetaManagedAgentsUnknownWorkflowRunError: type: "unknown_error"; message

A failure that has no type of its own.

type: Literal["unknown_error"]
message: str

Short explanation written by the server. It never contains content from the run or its agents.

class BetaManagedAgentsURLDocumentSource: type: "url"; url

Document referenced by URL.

type: Literal["url"]
url: str

URL of the document to fetch.

minLength1
class BetaManagedAgentsURLImageSource: type: "url"; url

Image referenced by URL.

type: Literal["url"]
url: str

URL of the image to fetch.

minLength1
class BetaManagedAgentsUserCustomToolResultEvent: type: "user.custom_tool_result"; id; custom_tool_use_id; ... # 4 more

Event sent by the client providing the result of a custom tool execution.

class BetaManagedAgentsUserCustomToolResultEventParams: type: "user.custom_tool_result"; custom_tool_use_id; content; is_error

Parameters for providing the result of a custom tool execution.

class BetaManagedAgentsUserDefineOutcomeEvent: type: "user.define_outcome"; id; description; ... # 4 more

Echo of a user.define_outcome input event. Carries the server-generated outcome_id that subsequent span.outcome_evaluation_* events reference.

class BetaManagedAgentsUserDefineOutcomeEventParams: type: "user.define_outcome"; description; rubric; max_iterations

Parameters for defining an outcome the agent should work toward. The agent begins work on receipt.

class BetaManagedAgentsUserInterruptEvent: type: "user.interrupt"; id; processed_at; session_thread_id

An interrupt event that pauses agent execution and returns control to the user.

type: Literal["user.interrupt"]
id: str

Unique identifier for this event.

processed_at: Optional[datetime]

Timestamp when the interrupt was processed.

formatdate-time
session_thread_id: Optional[str]

If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread.

class BetaManagedAgentsUserInterruptEventParams: type: "user.interrupt"; session_thread_id

Parameters for sending an interrupt to pause the agent.

type: Literal["user.interrupt"]
session_thread_id: Optional[str]

If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread.

class BetaManagedAgentsUserMessageEvent: type: "user.message"; id; content; processed_at

A user message event in the session conversation.

class BetaManagedAgentsUserMessageEventParams: type: "user.message"; content

Parameters for sending a user message to the session.

class BetaManagedAgentsUserToolConfirmationEvent: type: "user.tool_confirmation"; id; result; ... # 4 more

A tool confirmation event that approves or denies a pending tool execution.

type: Literal["user.tool_confirmation"]
id: str

Unique identifier for this event.

result: Literal["allow", "deny"]

The confirmation result: 'allow' or 'deny'.

One of the following:
"allow"
"deny"
tool_use_id: str

The id of the agent.tool_use or agent.mcp_tool_use event this result corresponds to, which can be found in the last session.status_idle event's stop_reason.event_ids field.

deny_message: Optional[str]

Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'.

maxLength10000
processed_at: Optional[datetime]

Timestamp when the confirmation was processed.

formatdate-time
session_thread_id: Optional[str]

Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread.

class BetaManagedAgentsUserToolConfirmationEventParams: type: "user.tool_confirmation"; result; tool_use_id; deny_message

Parameters for confirming or denying a tool execution request.

type: Literal["user.tool_confirmation"]
result: Literal["allow", "deny"]

The confirmation result: 'allow' or 'deny'.

One of the following:
"allow"
"deny"
tool_use_id: str

The id of the agent.tool_use or agent.mcp_tool_use event this result corresponds to, which can be found in the last session.status_idle event's stop_reason.event_ids field.

minLength1
maxLength128
deny_message: Optional[str]

Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'.

maxLength10000
class BetaManagedAgentsUserToolResultEventParams: type: "user.tool_result"; tool_use_id; content; is_error

Parameters for providing the result of an agent-toolset tool execution. Only valid on self_hosted environments, where sandbox-routed tools are executed by the client rather than the server.

class BetaManagedAgentsWorkflowRunCreatedEvent: type: "workflow_run.created"; id; description; ... # 4 more

A workflow run was created. A workflow run is background work that the session's agent starts. Emitted once per run, before the run's other workflow_run.* events.

type BetaManagedAgentsWorkflowRunError = ...

Why a workflow run did not finish, or was not created. More types may be added. On workflow_run.status_ended, for a type you do not recognize, rely on the event's result.type.

One of the following:
class BetaManagedAgentsWorkflowRunErrorEvent: type: "workflow_run.error"; id; error; ... # 2 more

A workflow run met an error, or an error kept a run from being created. A run that ends with a result.type of error emits this event before its workflow_run.status_ended, with the same error.

type: Literal["workflow_run.error"]
id: str

Unique identifier for this event.

Why the run did not finish, or was not created.

One of the following:
processed_at: datetime

Timestamp when this event was processed.

formatdate-time
workflow_run_id: Optional[str]

Identifier of the run that met the error, or null when the error kept a run from being created.

class BetaManagedAgentsWorkflowRunPhase: id; description; name

A phase that a workflow run's plan declares.

id: str

Unique identifier for the phase.

description: Optional[str]

Description that the agent gave the phase, passed on as written, or null if it gave none.

name: str

Name that the agent gave the phase, passed on as written.

class BetaManagedAgentsWorkflowRunPhaseEndedEvent: type: "workflow_run.phase_ended"; id; phase_started_id; ... # 3 more

A workflow run's plan left a phase, or the run's end closed it. Emitted once for every workflow_run.phase_started event, before the run's workflow_run.status_ended event. The event does not say whether the plan finished the phase's work, or why it left.

type: Literal["workflow_run.phase_ended"]
id: str

Unique identifier for this event.

phase_started_id: str

Identifier of the workflow_run.phase_started event that opened the phase.

processed_at: datetime

Timestamp when this event was processed.

formatdate-time
workflow_run_id: str

Identifier of the run. The same value is on all of the run's workflow_run.* events.

workflow_run_phase_id: str

Identifier of the phase, as in phases on the run's workflow_run.created event.

class BetaManagedAgentsWorkflowRunPhaseStartedEvent: type: "workflow_run.phase_started"; id; processed_at; ... # 2 more

A workflow run's plan entered a phase.

type: Literal["workflow_run.phase_started"]
id: str

Unique identifier for this event.

processed_at: datetime

Timestamp when this event was processed.

formatdate-time
workflow_run_id: str

Identifier of the run. The same value is on all of the run's workflow_run.* events.

workflow_run_phase_id: str

Identifier of the phase, as in phases on the run's workflow_run.created event.

type BetaManagedAgentsWorkflowRunResult = ...

How a workflow run ended.

One of the following:
class BetaManagedAgentsWorkflowRunResultCompleted: type: "completed"

The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded.

type: Literal["completed"]
class BetaManagedAgentsWorkflowRunResultError: type: "error"; error

The run failed or reached its time limit.

type: Literal["error"]

Why the run did not finish.

One of the following:
class BetaManagedAgentsWorkflowRunResultStopped: type: "stopped"

The agent stopped the run.

type: Literal["stopped"]
class BetaManagedAgentsWorkflowRunResultCompleted: type: "completed"

The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded.

type: Literal["completed"]
class BetaManagedAgentsWorkflowRunResultError: type: "error"; error

The run failed or reached its time limit.

type: Literal["error"]

Why the run did not finish.

One of the following:
class BetaManagedAgentsWorkflowRunResultStopped: type: "stopped"

The agent stopped the run.

type: Literal["stopped"]
class BetaManagedAgentsWorkflowRunStatusEndedEvent: type: "workflow_run.status_ended"; id; processed_at; ... # 2 more

A workflow run ended. Emitted once per run, as the last of the run's workflow_run.* events.

class BetaManagedAgentsWorkflowRunStatusIdleEvent: type: "workflow_run.status_idle"; id; processed_at; workflow_run_id

A workflow run is idle. Emitted each time the run goes idle, whatever the cause. If the run ends while idle, no workflow_run.status_running comes between this event and its workflow_run.status_ended.

type: Literal["workflow_run.status_idle"]
id: str

Unique identifier for this event.

processed_at: datetime

Timestamp when this event was processed.

formatdate-time
workflow_run_id: str

Identifier of the run. The same value is on all of the run's workflow_run.* events.

class BetaManagedAgentsWorkflowRunStatusRunningEvent: type: "workflow_run.status_running"; id; processed_at; workflow_run_id

A workflow run is running. Emitted when the run starts to execute, and each time it resumes after being idle. A run that starts idle emits workflow_run.status_idle first.

type: Literal["workflow_run.status_running"]
id: str

Unique identifier for this event.

processed_at: datetime

Timestamp when this event was processed.

formatdate-time
workflow_run_id: str

Identifier of the run. The same value is on all of the run's workflow_run.* events.