---
title: "Send Events"
method: POST
path: "/v1/sessions/{session_id}/events?beta=true"
---

# Send Events

`POST /v1/sessions/{session_id}/events?beta=true`

## Path parameters

- `session_id` string, required

## Headers

- `anthropic-version` string
- `anthropic-beta` string

## Request body

- BetaManagedAgentsSendSessionEventsParams — Request parameters for sending events to a `session`.
  - `events` BetaManagedAgentsEventParams[], required — Events to send to the `session`.
    - union — Union type for event parameters that can be sent to a session.
      - object — Parameters for sending a user message to the session.
        - `type` 'user.message', required
        - `content` BetaManagedAgentsUserContentBlock[], required — Array of content blocks for the user message.
          - union — Content block in a user message. Can be `text`, `image`, or `document`.
            - object — Regular text content.
              - …
            - object — Image content specified directly as base64 data or as a reference via a URL.
              - …
            - object — Document content, either specified directly as base64 data, as text, or as a reference via a URL.
              - …
            - object — Placeholder for content withheld by Anthropic model policy.
              - …
      - object — Parameters for sending an interrupt to pause the agent.
        - `type` 'user.interrupt', required
        - `session_thread_id` string, nullable — 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.
      - object — Parameters for confirming or denying a tool execution request.
        - `type` 'user.tool_confirmation', required
        - `tool_use_id` string, required — 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](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field.
        - `result` 'allow' | 'deny', required — UserToolConfirmationResult enum
        - `deny_message` string, nullable — Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'.
      - object — Parameters for providing the result of a custom tool execution.
        - `type` 'user.custom_tool_result', required
        - `custom_tool_use_id` string, required — The id of the `agent.custom_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field.
        - `content` BetaManagedAgentsToolResultContentBlock[] — The result content returned by the tool.
          - union — Content block in a tool result. Can be `text`, `image`, `document`, or `search_result`.
            - object — Regular text content.
              - …
            - object — Image content specified directly as base64 data or as a reference via a URL.
              - …
            - object — Document content, either specified directly as base64 data, as text, or as a reference via a URL.
              - …
            - object — A block containing a web search result.
              - …
        - `is_error` boolean, nullable — Whether the tool execution resulted in an error.
      - object — Parameters for defining an outcome the agent should work toward. The agent begins work on receipt.
        - `type` 'user.define_outcome', required
        - `description` string, required — What the agent should produce. This is the task specification.
        - `rubric` union, required — Rubric for grading the quality of an outcome.
          - BetaManagedAgentsFileRubricParams — Rubric referenced by a file uploaded via the Files API.
            - `type` 'file', required
            - `file_id` string, required — ID of the rubric file.
          - BetaManagedAgentsTextRubricParams — Rubric content provided inline as text.
            - `type` 'text', required
            - `content` string, required — Rubric content. Plain text or markdown — the grader treats it as freeform text. Maximum 262144 characters.
        - `max_iterations` integer, nullable — Eval→revision cycles before giving up. Default 3, max 20.
      - object — 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.
        - `type` 'user.tool_result', required
        - `tool_use_id` string, required — The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field.
        - `content` BetaManagedAgentsToolResultContentBlock[] — The result content returned by the tool.
          - union — Content block in a tool result. Can be `text`, `image`, `document`, or `search_result`.
            - object — Regular text content.
              - …
            - object — Image content specified directly as base64 data or as a reference via a URL.
              - …
            - object — Document content, either specified directly as base64 data, as text, or as a reference via a URL.
              - …
            - object — A block containing a web search result.
              - …
        - `is_error` boolean, nullable — Whether the tool execution resulted in an error.
      - object — 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` 'system.message', required
        - `content` BetaManagedAgentsSystemContentBlock[], required — System content blocks to append. Text-only.
          - `type` 'text', required
          - `text` string, required — The text content.

## Response `200`

Successful response (OK)

- BetaManagedAgentsSendSessionEvents — Events that were successfully sent to the session.
  - `data` BetaManagedAgentsInputEvent[] — Sent events
    - union — Union type for events that can be sent to a session.
      - object — A user message event in the session conversation.
        - `type` 'user.message', required
        - `id` string, required — Unique identifier for this event.
        - `content` BetaManagedAgentsUserContentBlock[], required — Array of content blocks comprising the user message.
          - union — Content block in a user message. Can be `text`, `image`, or `document`.
            - object — Regular text content.
              - …
            - object — Image content specified directly as base64 data or as a reference via a URL.
              - …
            - object — Document content, either specified directly as base64 data, as text, or as a reference via a URL.
              - …
            - object — Placeholder for content withheld by Anthropic model policy.
              - …
        - `processed_at` string, date-time — A timestamp in RFC 3339 format
      - object — An interrupt event that pauses agent execution and returns control to the user.
        - `type` 'user.interrupt', required
        - `id` string, required — Unique identifier for this event.
        - `processed_at` string, date-time — A timestamp in RFC 3339 format
        - `session_thread_id` string, nullable — 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.
      - object — A tool confirmation event that approves or denies a pending tool execution.
        - `type` 'user.tool_confirmation', required
        - `id` string, required — Unique identifier for this event.
        - `tool_use_id` string, required — 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](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field.
        - `result` 'allow' | 'deny', required — UserToolConfirmationResult enum
        - `deny_message` string, nullable — Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'.
        - `processed_at` string, date-time — A timestamp in RFC 3339 format
        - `session_thread_id` string, nullable — When set, the confirmation routes to this subagent's thread rather than the primary. Echo this from the `session_thread_id` on the `agent.tool_use` or `agent.mcp_tool_use` event that prompted the approval.
      - object — Event sent by the client providing the result of a custom tool execution.
        - `type` 'user.custom_tool_result', required
        - `id` string, required — Unique identifier for this event.
        - `custom_tool_use_id` string, required — The id of the `agent.custom_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field.
        - `content` BetaManagedAgentsToolResultContentBlock[] — The result content returned by the tool.
          - union — Content block in a tool result. Can be `text`, `image`, `document`, or `search_result`.
            - object — Regular text content.
              - …
            - object — Image content specified directly as base64 data or as a reference via a URL.
              - …
            - object — Document content, either specified directly as base64 data, as text, or as a reference via a URL.
              - …
            - object — A block containing a web search result.
              - …
        - `is_error` boolean, nullable — Whether the tool execution resulted in an error.
        - `processed_at` string, date-time — A timestamp in RFC 3339 format
        - `session_thread_id` string, nullable — Routes this result to a subagent thread. Copy from the `agent.custom_tool_use` event's `session_thread_id`.
      - object — Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference.
        - `type` 'user.define_outcome', required
        - `id` string, required — Unique identifier for this event.
        - `processed_at` string, date-time, required — A timestamp in RFC 3339 format
        - `outcome_id` string, required — Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list.
        - `description` string, required — What the agent should produce. Copied from the input event.
        - `max_iterations` integer, nullable, required — Evaluate-then-revise cycles before giving up. Default 3, max 20.
        - `rubric` union, required — Rubric for grading the quality of an outcome.
          - BetaManagedAgentsFileRubric — Rubric referenced by a file uploaded via the Files API.
            - `type` 'file', required
            - `file_id` string, required — ID of the rubric file.
          - BetaManagedAgentsTextRubric — Rubric content provided inline as text.
            - `type` 'text', required
            - `content` string, required — Rubric content. Plain text or markdown — the grader treats it as freeform text.
      - object — Event sent by the client 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.
        - `type` 'user.tool_result', required
        - `id` string, required — Unique identifier for this event.
        - `tool_use_id` string, required — The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field.
        - `content` BetaManagedAgentsToolResultContentBlock[] — The result content returned by the tool.
          - union — Content block in a tool result. Can be `text`, `image`, `document`, or `search_result`.
            - object — Regular text content.
              - …
            - object — Image content specified directly as base64 data or as a reference via a URL.
              - …
            - object — Document content, either specified directly as base64 data, as text, or as a reference via a URL.
              - …
            - object — A block containing a web search result.
              - …
        - `is_error` boolean, nullable — Whether the tool execution resulted in an error.
        - `processed_at` string, date-time — A timestamp in RFC 3339 format
        - `session_thread_id` string, nullable — Routes this result to a subagent thread. Copy from the `agent.tool_use` event's `session_thread_id`.
      - object — A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn.
        - `type` 'system.message', required
        - `id` string, required — Unique identifier for this event.
        - `content` BetaManagedAgentsSystemContentBlock[], required — System content blocks. Text-only.
          - `type` 'text', required
          - `text` string, required — The text content.
        - `processed_at` string, date-time — A timestamp in RFC 3339 format

## Other responses

- `400` — Invalid argument - The client specified an invalid argument
- `401` — Unauthenticated - The request does not have valid authentication credentials
- `403` — Permission denied - The caller does not have permission to execute the specified operation
- `404` — Not found - Some requested entity was not found
- `408` — Deadline exceeded - The deadline expired before the operation could complete
- `409` — Aborted - The operation was aborted due to concurrency issue
- `412` — Failed precondition - Operation was rejected because the system is not in required state
- `413` — Out of range - Operation was attempted past the valid range
- `429` — Resource exhausted - Some resource has been exhausted (rate limiting)
- `431` — Request header fields too large - Request metadata was too large
- `499` — Cancelled - The operation was cancelled by the client
- `500` — Internal - Internal server error
- `501` — Unimplemented - The operation is not implemented or supported
- `503` — Unavailable - The service is currently unavailable
- `504` — Deadline exceeded - Upstream service did not respond in time

---

[API](https://skmtc.net/anthropics/apis/anthropic-api.md) · [All operations](https://skmtc.net/anthropics/apis/anthropic-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/anthropics/anthropic-api/revisions/0042750ea1ee/schema)
