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

# Send Events

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

## Request

- Base URL: `https://api.anthropic.com`
- URL: `https://api.anthropic.com/v1/sessions/{session_id}/events?beta=true`
- Auth: none declared
- TypeScript: <https://skmtc.dev/anthropics/apis/anthropic-api/docs/v1/sessions/:session_id/events%3Fbeta=true/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `session_id` string, required

## Headers

- `anthropic-version` string: The version of the Claude API you want to use. Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning).
- `anthropic-beta` AnthropicBeta[]: This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header.
  - union: Beta names you can send in the `anthropic-beta` header. See [Beta headers](https://platform.claude.com/docs/en/api/beta-headers) for how to send them and where to find the name a feature needs.
    - string
    - 'message-batches-2024-09-24' | 'prompt-caching-2024-07-31' | 'computer-use-2024-10-22' | 'computer-use-2025-01-24' | 'pdfs-2024-09-25' | 'token-counting-2024-11-01' | 'token-efficient-tools-2025-02-19' | 'output-128k-2025-02-19' | 'files-api-2025-04-14' | 'mcp-client-2025-04-04' | 'mcp-client-2025-11-20' | 'dev-full-thinking-2025-05-14' | 'interleaved-thinking-2025-05-14' | 'code-execution-2025-05-22' | 'extended-cache-ttl-2025-04-11' | 'context-1m-2025-08-07' | 'context-management-2025-06-27' | 'model-context-window-exceeded-2025-08-26' | 'skills-2025-10-02' | 'fast-mode-2026-02-01' | 'output-300k-2026-03-24' | 'user-profiles-2026-03-24' | 'user-profiles-2026-08-18' | 'user-profiles-2026-09-04' | 'advisor-tool-2026-03-01' | 'managed-agents-2026-04-01' | 'cache-diagnosis-2026-04-07' | 'dreaming-2026-04-21' | 'thinking-token-count-2026-05-13' | 'server-side-fallback-2026-06-01' | 'server-side-fallback-2026-07-01' | 'fallback-credit-2026-06-01' | 'fallback-credit-2026-07-01' | 'agent-memory-2026-07-22' | 'mid-conversation-tool-changes-2026-07-01' | 'compact-2026-01-12' | 'computer-use-2025-11-24' | 'mcp-tunnels-2026-06-22' | 'structured-outputs-2025-11-13' | 'task-budgets-2026-03-13' | 'thinking-display-updates-2026-08-18' | 'ce-user-management-2026-07-13' | 'mid-conversation-output-config-2026-07-01' | 'thinking-binding-controls-2026-08-01' | 'mid-conversation-system-clear-at-2026-08-21' | 'compact-2026-09-04' | 'inline-tools-2026-09-15' | 'mcp-client-2026-09-15' | 'ce-plugins-2026-09-01' | 'spend-limit-reads-2026-09-26' | 'telemetry-destinations-2026-08-11' | 'webhooks-2026-10-07' | 'admin-user-sign-out-2026-10-08' | 'message-threads-2026-08-12' | 'analytics-usage-cost-2026-08-24' | 'experimental-claude-tag-2026-10-21'
- `anthropic-workspace-id` 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
        - `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. It is also listed 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
        - `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: Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread.
      - 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. It is also listed 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: Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread.
      - 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: Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread.
      - 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

## Changes

- **2026-11-05** `037a593978dc`: 1 info
  - added the enum value `admin-user-sign-out-2026-10-08` to the property `items/anyOf[subschema #2]/` of the `header` request parameter `anthropic-beta`
- **2026-10-23** `f538a797852c`: 1 info
  - added the enum value `experimental-claude-tag-2026-10-21` to the property `items/anyOf[subschema #2]/` of the `header` request parameter `anthropic-beta`
- **2026-10-23** `8071e43a8476`: 1 info
  - added the enum value `analytics-usage-cost-2026-08-24` to the property `items/anyOf[subschema #2]/` of the `header` request parameter `anthropic-beta`
- **2026-10-22** `376dea998624`: 1 info
  - added the enum value `message-threads-2026-08-12` to the property `items/anyOf[subschema #2]/` of the `header` request parameter `anthropic-beta`
- **2026-10-21** `94c83daca660`: 96 breaking, 96 info
  - the `media_type` request property const value `text/plain` was added
  - the `media_type` request property const value `text/plain` was added
  - the `media_type` request property const value `text/plain` was added
  - the `type` request property const value `base64` was added
  - …188 more

[Operation history](https://skmtc.dev/anthropics/apis/anthropic-api/changes/v1/sessions/:session_id/events%3Fbeta=true/post.md)

---

[API](https://skmtc.dev/anthropics/apis/anthropic-api.md) - [All operations](https://skmtc.dev/anthropics/apis/anthropic-api/llms.txt) - [OpenAPI document](https://skmtc.dev/anthropics/apis/anthropic-api/revisions/d5be78f1f9a8?raw)
