GET /v1/sessions/{session_id}/threads/{thread_id}/events
List Session Thread Events
Path parameters
session_id: string
thread_id: string
Query parameters
limit: optional number
format: int32
page: optional string
Headers
"juglow-beta": optional array of JuglowBeta
Optional header to specify the beta version(s) you want to use.
string
"message-batches-2024-09-24" or "prompt-caching-2024-07-31" or "computer-use-2024-10-22" or 45 more
"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"
"tracks-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"
"juglow-workspace-id": optional string
Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).
Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.
Returns
data: optional array of BetaManagedAgentsSessionEvent
Events for the thread, ordered by processed_at.
BetaManagedAgentsUserMessageEvent object
A user message event in the session conversation.
type: "user.message"
id: string
Unique identifier for this event.
content: array of BetaManagedAgentsTextBlock or BetaManagedAgentsImageBlock or BetaManagedAgentsDocumentBlock or BetaManagedAgentsRedactedBlock
Array of content blocks comprising the user message.
BetaManagedAgentsTextBlock object
Regular text content.
type: "text"
text: string
The text content.
minLength: 1
BetaManagedAgentsImageBlock object
Image content specified directly as base64 data or as a reference via a URL.
type: "image"
source: BetaManagedAgentsBase64ImageSource or BetaManagedAgentsURLImageSource or BetaManagedAgentsFileImageSource
The source of the image data.
BetaManagedAgentsBase64ImageSource object
Base64-encoded image data.
type: "base64"
data: string
Base64-encoded image data.
minLength: 1
media_type: string
MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp").
minLength: 1
BetaManagedAgentsURLImageSource object
Image referenced by URL.
type: "url"
url: string
URL of the image to fetch.
minLength: 1
BetaManagedAgentsFileImageSource object
Image referenced by file ID.
type: "file"
file_id: string
ID of a previously uploaded file.
minLength: 1
BetaManagedAgentsDocumentBlock object
Document content, either specified directly as base64 data, as text, or as a reference via a URL.
type: "document"
source: BetaManagedAgentsBase64DocumentSource or BetaManagedAgentsPlainTextDocumentSource or BetaManagedAgentsURLDocumentSource or BetaManagedAgentsFileDocumentSource
The source of the document data.
BetaManagedAgentsBase64DocumentSource object
Base64-encoded document data.
type: "base64"
data: string
Base64-encoded document data.
minLength: 1
media_type: string
MIME type of the document (e.g., "application/pdf").
minLength: 1
BetaManagedAgentsPlainTextDocumentSource object
Plain text document content.
type: "text"
data: string
The plain text content.
minLength: 1
media_type: "text/plain"
MIME type of the text content. Must be "text/plain".
BetaManagedAgentsURLDocumentSource object
Document referenced by URL.
type: "url"
url: string
URL of the document to fetch.
minLength: 1
BetaManagedAgentsFileDocumentSource object
Document referenced by file ID.
type: "file"
file_id: string
ID of a previously uploaded file.
minLength: 1
context: optional string or null
Additional context about the document for the model.
title: optional string or null
The title of the document.
BetaManagedAgentsRedactedBlock object
Placeholder for content withheld by Juglow model policy.
type: "redacted"
processed_at: optional string or null
Timestamp when the agent finished processing this message.
format: date-time
BetaManagedAgentsUserInterruptEvent object
An interrupt event that pauses agent execution and returns control to the user.
type: "user.interrupt"
id: string
Unique identifier for this event.
processed_at: optional string or null
Timestamp when the interrupt was processed.
format: date-time
session_thread_id: optional string or null
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.
BetaManagedAgentsUserToolConfirmationEvent object
A tool confirmation event that approves or denies a pending tool execution.
type: "user.tool_confirmation"
id: string
Unique identifier for this event.
result: "allow" or "deny"
The confirmation result: 'allow' or 'deny'.
"allow"
"deny"
tool_use_id: string
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 string or null
Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'.
maxLength: 10000
processed_at: optional string or null
Timestamp when the confirmation was processed.
format: date-time
session_thread_id: optional string or null
Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread.
BetaManagedAgentsUserCustomToolResultEvent object
Event sent by the client providing the result of a custom tool execution.
type: "user.custom_tool_result"
id: string
Unique identifier for this event.
custom_tool_use_id: string
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 stop_reason.event_ids field.
content: optional array of BetaManagedAgentsTextBlock or BetaManagedAgentsImageBlock or BetaManagedAgentsDocumentBlock or BetaManagedAgentsSearchResultBlock
The result content returned by the tool.
BetaManagedAgentsTextBlock object
Regular text content.
BetaManagedAgentsImageBlock object
Image content specified directly as base64 data or as a reference via a URL.
BetaManagedAgentsDocumentBlock object
Document content, either specified directly as base64 data, as text, or as a reference via a URL.
BetaManagedAgentsSearchResultBlock object
A block containing a web search result.
type: "search_result"
citations: BetaManagedAgentsSearchResultCitations
Citation settings for this search result.
enabled: boolean
Whether citations are enabled for this search result.
content: array of BetaManagedAgentsSearchResultContent
Array of text content blocks from the search result.
type: "text"
text: string
The text content.
minLength: 1
source: string
The URL source of the search result.
minLength: 1
title: string
The title of the search result.
minLength: 1
is_error: optional boolean or null
Whether the tool execution resulted in an error.
processed_at: optional string or null
Timestamp when this result was processed.
format: date-time
session_thread_id: optional string or null
Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread.
BetaManagedAgentsAgentCustomToolUseEvent object
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.
type: "agent.custom_tool_use"
id: string
Unique identifier for this event.
input: map[unknown]
Input parameters for the tool call.
name: string
Name of the custom tool being called.
processed_at: string
Timestamp when this tool use was processed.
format: date-time
session_thread_id: optional string or null
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.
BetaManagedAgentsAgentMessageEvent object
An agent response event in the session conversation.
type: "agent.message"
id: string
Unique identifier for this event.
content: array of BetaManagedAgentsTextBlock or BetaManagedAgentsRedactedBlock
Array of text blocks comprising the agent response.
BetaManagedAgentsTextBlock object
Regular text content.
BetaManagedAgentsRedactedBlock object
Placeholder for content withheld by Juglow model policy.
processed_at: string
Timestamp when this response was generated.
format: date-time
BetaManagedAgentsAgentThinkingEvent object
Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier.
type: "agent.thinking"
id: string
Unique identifier for this event.
processed_at: string
Timestamp when this thinking was produced.
format: date-time
BetaManagedAgentsAgentMCPToolUseEvent object
Event emitted when the agent invokes a tool provided by an MCP server.
type: "agent.mcp_tool_use"
id: string
Unique identifier for this event.
input: map[unknown]
Input parameters for the tool call.
mcp_server_name: string
Name of the MCP server providing the tool.
name: string
Name of the MCP tool being used.
processed_at: string
Timestamp when this event was processed.
format: date-time
evaluated_permission: optional BetaManagedAgentsAgentEvaluatedPermission
The evaluated permission policy for this tool invocation.
"allow"
"ask"
"deny"
evaluation: optional BetaManagedAgentsAgentToolEvaluation
Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask).
BetaManagedAgentsAgentToolEvaluationAlwaysAllow object
The resolved permission_policy was always_allow; accompanies evaluated_permission "allow".
type: "always_allow"
BetaManagedAgentsAgentToolEvaluationAlwaysAsk object
The resolved permission_policy was always_ask; accompanies evaluated_permission "ask".
type: "always_ask"
BetaManagedAgentsAgentToolEvaluationAuto object
The resolved permission_policy was auto: the server judged this invocation individually.
type: "auto"
evaluated_permission: BetaManagedAgentsAgentAutoEvaluatedPermission
The server's judgement for this invocation.
BetaManagedAgentsAgentAutoEvaluatedPermissionAllow object
The server judged the invocation safe to execute without client approval.
type: "allow"
BetaManagedAgentsAgentAutoEvaluatedPermissionAsk object
The server reached no judgement; the invocation is held for client approval.
type: "ask"
reason_code: string
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.
maxLength: 64
BetaManagedAgentsAgentAutoEvaluatedPermissionDeny object
The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended.
type: "deny"
reason_code: string
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.
maxLength: 64
session_thread_id: optional string or null
When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching user.tool_confirmation by tool_use_id, so clients do not send it back.
BetaManagedAgentsAgentMCPToolResultEvent object
Event representing the result of an MCP tool execution.
type: "agent.mcp_tool_result"
id: string
Unique identifier for this event.
mcp_tool_use_id: string
The id of the agent.mcp_tool_use event this result corresponds to.
processed_at: string
Timestamp when this event was processed.
format: date-time
content: optional array of BetaManagedAgentsTextBlock or BetaManagedAgentsImageBlock or BetaManagedAgentsDocumentBlock or BetaManagedAgentsSearchResultBlock
The result content returned by the tool.
BetaManagedAgentsTextBlock object
Regular text content.
BetaManagedAgentsImageBlock object
Image content specified directly as base64 data or as a reference via a URL.
BetaManagedAgentsDocumentBlock object
Document content, either specified directly as base64 data, as text, or as a reference via a URL.
BetaManagedAgentsSearchResultBlock object
A block containing a web search result.
is_error: optional boolean or null
Whether the tool execution resulted in an error.
BetaManagedAgentsAgentToolUseEvent object
Event emitted when the agent invokes a built-in agent tool.
type: "agent.tool_use"
id: string
Unique identifier for this event.
input: map[unknown]
Input parameters for the tool call.
name: string
Name of the agent tool being used.
processed_at: string
Timestamp when this event was processed.
format: date-time
evaluated_permission: optional BetaManagedAgentsAgentEvaluatedPermission
The evaluated permission policy for this tool invocation.
evaluation: optional BetaManagedAgentsAgentToolEvaluation
Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask).
session_thread_id: optional string or null
When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching user.tool_confirmation or user.tool_result by tool_use_id, so clients do not send it back.
BetaManagedAgentsAgentToolResultEvent object
Event representing the result of an agent tool execution.
type: "agent.tool_result"
id: string
Unique identifier for this event.
processed_at: string
Timestamp when this event was processed.
format: date-time
tool_use_id: string
The id of the agent.tool_use event this result corresponds to.
content: optional array of BetaManagedAgentsTextBlock or BetaManagedAgentsImageBlock or BetaManagedAgentsDocumentBlock or BetaManagedAgentsSearchResultBlock
The result content returned by the tool.
BetaManagedAgentsTextBlock object
Regular text content.
BetaManagedAgentsImageBlock object
Image content specified directly as base64 data or as a reference via a URL.
BetaManagedAgentsDocumentBlock object
Document content, either specified directly as base64 data, as text, or as a reference via a URL.
BetaManagedAgentsSearchResultBlock object
A block containing a web search result.
is_error: optional boolean or null
Whether the tool execution resulted in an error.
BetaManagedAgentsAgentThreadMessageReceivedEvent object
Delivery event written to the target thread's input stream when an agent-to-agent message arrives.
type: "agent.thread_message_received"
id: string
Unique identifier for this event.
content: array of BetaManagedAgentsTextBlock or BetaManagedAgentsImageBlock or BetaManagedAgentsDocumentBlock or BetaManagedAgentsRedactedBlock
Message content blocks.
BetaManagedAgentsTextBlock object
Regular text content.
BetaManagedAgentsImageBlock object
Image content specified directly as base64 data or as a reference via a URL.
BetaManagedAgentsDocumentBlock object
Document content, either specified directly as base64 data, as text, or as a reference via a URL.
BetaManagedAgentsRedactedBlock object
Placeholder for content withheld by Juglow model policy.
from_session_thread_id: string
Public sthr_ ID of the thread that sent the message.
processed_at: string
Timestamp when the message was received.
format: date-time
from_agent_name: optional string or null
Name of the callable agent this message came from. Absent when received from the primary agent.
BetaManagedAgentsAgentThreadMessageSentEvent object
Observability event emitted to the sender's output stream when an agent-to-agent message is sent.
type: "agent.thread_message_sent"
id: string
Unique identifier for this event.
content: array of BetaManagedAgentsTextBlock or BetaManagedAgentsImageBlock or BetaManagedAgentsDocumentBlock or BetaManagedAgentsRedactedBlock
Message content blocks.
BetaManagedAgentsTextBlock object
Regular text content.
BetaManagedAgentsImageBlock object
Image content specified directly as base64 data or as a reference via a URL.
BetaManagedAgentsDocumentBlock object
Document content, either specified directly as base64 data, as text, or as a reference via a URL.
BetaManagedAgentsRedactedBlock object
Placeholder for content withheld by Juglow model policy.
processed_at: string
Timestamp when the message was sent.
format: date-time
to_session_thread_id: string
Public sthr_ ID of the thread the message was sent to.
to_agent_name: optional string or null
Name of the callable agent this message was sent to. Absent when sent to the primary agent.
BetaManagedAgentsAgentThreadContextCompactedEvent object
Indicates that context compaction (summarization) occurred during the session.
type: "agent.thread_context_compacted"
id: string
Unique identifier for this event.
processed_at: string
Timestamp when compaction was processed.
format: date-time
BetaManagedAgentsSessionErrorEvent object
An error event indicating a problem occurred during session execution.
type: "session.error"
id: string
Unique identifier for this event.
error: BetaManagedAgentsUnknownError or BetaManagedAgentsModelOverloadedError or BetaManagedAgentsModelRateLimitedError or 5 more
BetaManagedAgentsUnknownError object
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.
type: "unknown_error"
message: string
Human-readable error description.
retry_status: BetaManagedAgentsRetryStatusRetrying or BetaManagedAgentsRetryStatusExhausted or BetaManagedAgentsRetryStatusTerminal
What the client should do next.
BetaManagedAgentsRetryStatusRetrying object
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: "retrying"
BetaManagedAgentsRetryStatusExhausted object
This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.
type: "exhausted"
BetaManagedAgentsRetryStatusTerminal object
The session encountered a terminal error and will transition to terminated state.
type: "terminal"
BetaManagedAgentsModelOverloadedError object
The model is currently overloaded. Emitted after automatic retries are exhausted.
type: "model_overloaded_error"
message: string
Human-readable error description.
retry_status: BetaManagedAgentsRetryStatusRetrying or BetaManagedAgentsRetryStatusExhausted or BetaManagedAgentsRetryStatusTerminal
What the client should do next.
BetaManagedAgentsRetryStatusRetrying object
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.
BetaManagedAgentsRetryStatusExhausted object
This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.
BetaManagedAgentsRetryStatusTerminal object
The session encountered a terminal error and will transition to terminated state.
BetaManagedAgentsModelRateLimitedError object
The model request was rate-limited.
type: "model_rate_limited_error"
message: string
Human-readable error description.
retry_status: BetaManagedAgentsRetryStatusRetrying or BetaManagedAgentsRetryStatusExhausted or BetaManagedAgentsRetryStatusTerminal
What the client should do next.
BetaManagedAgentsRetryStatusRetrying object
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.
BetaManagedAgentsRetryStatusExhausted object
This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.
BetaManagedAgentsRetryStatusTerminal object
The session encountered a terminal error and will transition to terminated state.
BetaManagedAgentsModelRequestFailedError object
A model request failed for a reason other than overload or rate-limiting.
type: "model_request_failed_error"
message: string
Human-readable error description.
retry_status: BetaManagedAgentsRetryStatusRetrying or BetaManagedAgentsRetryStatusExhausted or BetaManagedAgentsRetryStatusTerminal
What the client should do next.
BetaManagedAgentsRetryStatusRetrying object
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.
BetaManagedAgentsRetryStatusExhausted object
This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.
BetaManagedAgentsRetryStatusTerminal object
The session encountered a terminal error and will transition to terminated state.
BetaManagedAgentsMCPConnectionFailedError object
Failed to connect to an MCP server.
type: "mcp_connection_failed_error"
mcp_server_name: string
Name of the MCP server that failed to connect.
message: string
Human-readable error description.
retry_status: BetaManagedAgentsRetryStatusRetrying or BetaManagedAgentsRetryStatusExhausted or BetaManagedAgentsRetryStatusTerminal
What the client should do next.
BetaManagedAgentsRetryStatusRetrying object
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.
BetaManagedAgentsRetryStatusExhausted object
This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.
BetaManagedAgentsRetryStatusTerminal object
The session encountered a terminal error and will transition to terminated state.
BetaManagedAgentsMCPAuthenticationFailedError object
Authentication to an MCP server failed.
type: "mcp_authentication_failed_error"
mcp_server_name: string
Name of the MCP server that failed authentication.
message: string
Human-readable error description.
retry_status: BetaManagedAgentsRetryStatusRetrying or BetaManagedAgentsRetryStatusExhausted or BetaManagedAgentsRetryStatusTerminal
What the client should do next.
BetaManagedAgentsRetryStatusRetrying object
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.
BetaManagedAgentsRetryStatusExhausted object
This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.
BetaManagedAgentsRetryStatusTerminal object
The session encountered a terminal error and will transition to terminated state.
BetaManagedAgentsBillingError object
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.
type: "billing_error"
message: string
Human-readable error description.
retry_status: BetaManagedAgentsRetryStatusRetrying or BetaManagedAgentsRetryStatusExhausted or BetaManagedAgentsRetryStatusTerminal
What the client should do next.
BetaManagedAgentsRetryStatusRetrying object
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.
BetaManagedAgentsRetryStatusExhausted object
This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.
BetaManagedAgentsRetryStatusTerminal object
The session encountered a terminal error and will transition to terminated state.
BetaManagedAgentsCredentialHostUnreachableError object
An environment_variable credential's auth.networking.allowed_hosts includes a host the environment's network policy does not permit.
type: "credential_host_unreachable_error"
credential_id: string
ID of the affected credential.
message: string
Human-readable error description.
retry_status: BetaManagedAgentsRetryStatusRetrying or BetaManagedAgentsRetryStatusExhausted or BetaManagedAgentsRetryStatusTerminal
What the client should do next.
BetaManagedAgentsRetryStatusRetrying object
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.
BetaManagedAgentsRetryStatusExhausted object
This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.
BetaManagedAgentsRetryStatusTerminal object
The session encountered a terminal error and will transition to terminated state.
vault_id: string
ID of the vault containing the affected credential.
processed_at: string
Timestamp when the error occurred.
format: date-time
BetaManagedAgentsSessionStatusRescheduledEvent object
Indicates the session is recovering from an error state and is rescheduled for execution.
type: "session.status_rescheduled"
id: string
Unique identifier for this event.
processed_at: string
Timestamp of status change.
format: date-time
BetaManagedAgentsSessionStatusRunningEvent object
Indicates the session is actively running and the agent is working.
type: "session.status_running"
id: string
Unique identifier for this event.
processed_at: string
Timestamp of status change.
format: date-time
BetaManagedAgentsSessionStatusIdleEvent object
Indicates the agent has paused and is awaiting user input.
type: "session.status_idle"
id: string
Unique identifier for this event.
processed_at: string
Timestamp of status change.
format: date-time
stop_reason: BetaManagedAgentsSessionEndTurn or BetaManagedAgentsSessionRequiresAction or BetaManagedAgentsSessionRetriesExhausted or BetaManagedAgentsSessionBudgetReached
BetaManagedAgentsSessionEndTurn object
The agent completed its turn naturally and is ready for the next user message.
type: "end_turn"
BetaManagedAgentsSessionRequiresAction object
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: "requires_action"
event_ids: array of string
The ids of events the agent is blocked on. Resolving fewer than all re-emits session.status_idle with the remainder.
BetaManagedAgentsSessionRetriesExhausted object
The turn ended because repeated errors exhausted the retry budget or an error escalated to retry_status: 'exhausted'.
type: "retries_exhausted"
BetaManagedAgentsSessionBudgetReached object
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: "budget_reached"
BetaManagedAgentsSessionStatusTerminatedEvent object
Indicates the session has terminated, either due to an error or completion.
type: "session.status_terminated"
id: string
Unique identifier for this event.
processed_at: string
Timestamp of status change.
format: date-time
BetaManagedAgentsSessionThreadCreatedEvent object
Emitted when a subagent is spawned as a new thread. Written to the parent thread's output stream so clients observing the session see child creation.
type: "session.thread_created"
id: string
Unique identifier for this event.
agent_name: string
Name of the callable agent the thread runs.
processed_at: string
Timestamp when the thread was created.
format: date-time
session_thread_id: string
Public sthr_ ID of the newly created thread.
BetaManagedAgentsSpanOutcomeEvaluationStartEvent object
Emitted when an outcome evaluation cycle begins.
type: "span.outcome_evaluation_start"
id: string
Unique identifier for this event.
iteration: number
0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc.
format: int32
outcome_id: string
The outc_ ID of the outcome being evaluated.
processed_at: string
Timestamp when outcome evaluation started.
format: date-time
BetaManagedAgentsSpanOutcomeEvaluationEndEvent object
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.
type: "span.outcome_evaluation_end"
id: string
Unique identifier for this event.
explanation: string
Human-readable explanation of the verdict. For needs_revision, describes which criteria failed and why.
iteration: number
0-indexed revision cycle, matching the corresponding span.outcome_evaluation_start.
format: int32
outcome_evaluation_start_id: string
The id of the corresponding span.outcome_evaluation_start event.
outcome_id: string
The outc_ ID of the outcome being evaluated.
processed_at: string
Timestamp when outcome evaluation ended.
format: date-time
result: string
Evaluation verdict. 'satisfied': criteria met, session goes idle. 'needs_revision': criteria not met, another revision cycle follows. 'max_iterations_reached': evaluation budget exhausted with criteria still unmet — one final acknowledgment turn follows before the session goes idle, but no further evaluation runs. 'failed': grader determined the rubric does not apply to the deliverables. 'interrupted': user sent an interrupt while evaluation was in progress.
usage: BetaManagedAgentsSpanModelUsage
Aggregate token usage for this evaluation cycle. Sums across all grader model requests within the cycle.
cache_creation_input_tokens: number
Tokens used to create prompt cache in this request.
format: int32
cache_read_input_tokens: number
Tokens read from prompt cache in this request.
format: int32
input_tokens: number
Input tokens consumed by this request.
format: int32
output_tokens: number
Output tokens generated by this request.
format: int32
speed: optional "standard" or "fast" or null
Inference speed tier this request actually ran at. Mirrors usage.speed on /v1/messages. Only present when the fast-mode beta is active.
"standard"
"fast"
BetaManagedAgentsSpanModelRequestStartEvent object
Emitted when a model request is initiated by the agent.
type: "span.model_request_start"
id: string
Unique identifier for this event.
processed_at: string
Timestamp when the model request started.
format: date-time
BetaManagedAgentsSpanModelRequestEndEvent object
Emitted when a model request completes.
type: "span.model_request_end"
id: string
Unique identifier for this event.
is_error: boolean or null
Whether the model request resulted in an error.
model_request_start_id: string
The id of the corresponding span.model_request_start event.
model_usage: BetaManagedAgentsSpanModelUsage
Token usage for this model request.
processed_at: string
Timestamp when the model request completed.
format: date-time
BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent object
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: "span.outcome_evaluation_ongoing"
id: string
Unique identifier for this event.
iteration: number
0-indexed revision cycle, matching the corresponding span.outcome_evaluation_start.
format: int32
outcome_id: string
The outc_ ID of the outcome being evaluated.
processed_at: string
Timestamp when this heartbeat was emitted.
format: date-time
BetaManagedAgentsUserDefineOutcomeEvent 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"
id: string
Unique identifier for this event.
description: string
What the agent should produce. Copied from the input event.
max_iterations: number or null
Evaluate-then-revise cycles before giving up. Default 3, max 20.
format: int32
outcome_id: string
Server-generated outc_ ID for this outcome. Referenced by span.outcome_evaluation_* events and the session's outcome_evaluations list.
processed_at: string
Timestamp when the outcome was accepted.
format: date-time
rubric: BetaManagedAgentsFileRubric or BetaManagedAgentsTextRubric
How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants.
BetaManagedAgentsFileRubric object
Rubric referenced by a file uploaded via the Files API.
type: "file"
file_id: string
ID of the rubric file.
BetaManagedAgentsTextRubric object
Rubric content provided inline as text.
type: "text"
content: string
Rubric content. Plain text or markdown — the grader treats it as freeform text.
BetaManagedAgentsSessionDeletedEvent object
Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session.
type: "session.deleted"
id: string
Unique identifier for this event.
processed_at: string
Timestamp when the session was deleted.
format: date-time
BetaManagedAgentsSessionThreadStatusRunningEvent object
A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads.
type: "session.thread_status_running"
id: string
Unique identifier for this event.
agent_name: string
Name of the agent the thread runs.
processed_at: string
Timestamp of the status transition.
format: date-time
session_thread_id: string
Public sthr_ ID of the thread that started running.
BetaManagedAgentsSessionThreadStatusIdleEvent object
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.
type: "session.thread_status_idle"
id: string
Unique identifier for this event.
agent_name: string
Name of the agent the thread runs.
processed_at: string
Timestamp of the status transition.
format: date-time
session_thread_id: string
Public sthr_ ID of the thread that went idle.
stop_reason: BetaManagedAgentsSessionEndTurn or BetaManagedAgentsSessionRequiresAction or BetaManagedAgentsSessionRetriesExhausted or BetaManagedAgentsSessionBudgetReached
BetaManagedAgentsSessionEndTurn object
The agent completed its turn naturally and is ready for the next user message.
BetaManagedAgentsSessionRequiresAction object
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.
BetaManagedAgentsSessionRetriesExhausted object
The turn ended because repeated errors exhausted the retry budget or an error escalated to retry_status: 'exhausted'.
BetaManagedAgentsSessionBudgetReached object
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.
BetaManagedAgentsSessionThreadStatusTerminatedEvent object
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: "session.thread_status_terminated"
id: string
Unique identifier for this event.
agent_name: string
Name of the agent the thread runs.
processed_at: string
Timestamp of the status transition.
format: date-time
session_thread_id: string
Public sthr_ ID of the thread that terminated.
BetaManagedAgentsUserToolResultEvent 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"
id: string
Unique identifier for this event.
tool_use_id: string
The id of the agent.tool_use event this result corresponds to, which can be found in the last session.status_idle event's stop_reason.event_ids field.
content: optional array of BetaManagedAgentsTextBlock or BetaManagedAgentsImageBlock or BetaManagedAgentsDocumentBlock or BetaManagedAgentsSearchResultBlock
The result content returned by the tool.
BetaManagedAgentsTextBlock object
Regular text content.
BetaManagedAgentsImageBlock object
Image content specified directly as base64 data or as a reference via a URL.
BetaManagedAgentsDocumentBlock object
Document content, either specified directly as base64 data, as text, or as a reference via a URL.
BetaManagedAgentsSearchResultBlock object
A block containing a web search result.
is_error: optional boolean or null
Whether the tool execution resulted in an error.
processed_at: optional string or null
Timestamp when this result was processed.
format: date-time
session_thread_id: optional string or null
Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread.
BetaManagedAgentsSessionThreadStatusRescheduledEvent object
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: "session.thread_status_rescheduled"
id: string
Unique identifier for this event.
agent_name: string
Name of the agent the thread runs.
processed_at: string
Timestamp of the status transition.
format: date-time
session_thread_id: string
Public sthr_ ID of the thread that is retrying.
BetaManagedAgentsSessionUpdatedEvent object
Emitted when an UpdateSession request changed at least one field. Carries only the fields that changed; absent fields were not part of the update. The new configuration applies from the next turn.
type: "session.updated"
id: string
Unique identifier for this event.
processed_at: string
Timestamp when the update was applied.
format: date-time
agent: optional BetaManagedAgentsSessionAgent or null
The session's effective agent configuration after the update. Present only when the update changed agent (tools or mcp_servers); when present it is the full materialised snapshot, not a diff.
type: "agent"
id: string
description: string or null
mcp_servers: array of BetaManagedAgentsMCPServerURLDefinition
type: "url"
name: string
url: string
model: BetaManagedAgentsModelConfig
Model identifier and configuration.
id: BetaManagedAgentsModel
The model that will power your agent.
See models for additional details and options.
string
"haijun-opus-5-5" or "haijun-fable-5-1" or "haijun-sonnet-5" or 12 more
The model that will power your agent.
See models for additional details and options.
"haijun-opus-5-5"
Powerful intelligence for coding, knowledge work, and long-running agents
"haijun-fable-5-1"
Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows
"haijun-sonnet-5"
High-performance model for coding and agents
"haijun-fable-5"
Next generation of intelligence for the hardest knowledge work and coding problems
"haijun-opus-5"
Powerful intelligence for long-running agents and coding
"haijun-opus-4-8"
Powerful intelligence for long-running agents and coding
"haijun-opus-4-7"
Powerful intelligence for long-running agents and coding
"haijun-opus-4-6"
Powerful intelligence for long-running agents and coding
"haijun-sonnet-4-6"
Best combination of speed and intelligence
"haijun-haiku-4-5"
Fastest model with near-frontier intelligence
"haijun-haiku-4-5-20251001"
Fastest model with near-frontier intelligence
"haijun-opus-4-5"
Powerful intelligence for long-running agents and coding
"haijun-opus-4-5-20251101"
Powerful intelligence for long-running agents and coding
"haijun-sonnet-4-5"
High-performance model for agents and coding
"haijun-sonnet-4-5-20250929"
High-performance model for agents and coding
effort: optional BetaManagedAgentsEffortLow or BetaManagedAgentsEffortMedium or BetaManagedAgentsEffortHigh or 2 more
How hard Haijun works on each inference call. One of low, medium, high, xhigh, max. Always present; resolved to the per-model default at save time when not supplied.
BetaManagedAgentsEffortLow object
Low effort. Favors latency over reasoning depth.
type: "low"
BetaManagedAgentsEffortMedium object
Medium effort. Balances latency and reasoning depth.
type: "medium"
BetaManagedAgentsEffortHigh object
High effort. Favors reasoning depth.
type: "high"
BetaManagedAgentsEffortXhigh object
Extra-high effort. Not all models accept this level.
type: "xhigh"
BetaManagedAgentsEffortMax object
Maximum effort. Favors reasoning depth over latency.
type: "max"
inference_geo: optional string
Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo.
speed: optional "standard" or "fast"
Inference speed mode. fast provides significantly faster output token generation at premium pricing. Defaults to standard. Not all models support fast; invalid combinations are rejected at create time.
"standard"
"fast"
multiagent: BetaManagedAgentsSessionMultiagentCoordinator or null
Resolved multiagent orchestration configuration. Null when the agent is single-threaded.
type: "coordinator"
agents: array of BetaManagedAgentsSessionThreadAgent or BetaManagedAgentsAdvisor
Full agent definitions the coordinator may spawn as session threads.
BetaManagedAgentsSessionThreadAgent object
Resolved agent definition for a single session_thread. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from Session.agent.
type: "agent"
id: string
description: string or null
mcp_servers: array of BetaManagedAgentsMCPServerURLDefinition
type: "url"
name: string
url: string
model: BetaManagedAgentsModelConfig
Model identifier and configuration.
name: string
tracks: array of BetaManagedAgentsJuglowSkill or BetaManagedAgentsCustomSkill
BetaManagedAgentsJuglowSkill object
A resolved Juglow-managed track.
type: "juglow"
skill_id: string
version: string
BetaManagedAgentsCustomSkill object
A resolved user-created custom track.
type: "custom"
skill_id: string
version: string
system: string or null
tools: array of BetaManagedAgentsAgentToolset20260401 or BetaManagedAgentsMCPToolset or BetaManagedAgentsCustomTool
BetaManagedAgentsAgentToolset20260401 object
type: "agent_toolset_20260401"
configs: array of BetaManagedAgentsAgentToolConfig
BetaManagedAgentsBashToolConfig object
Configuration for the bash tool.
type: "bash"
enabled: boolean
name: "bash"
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
type: "always_allow"
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
type: "always_ask"
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
type: "auto"
BetaManagedAgentsEditToolConfig object
Configuration for the edit tool.
type: "edit"
enabled: boolean
name: "edit"
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
BetaManagedAgentsReadToolConfig object
Configuration for the read tool.
type: "read"
enabled: boolean
name: "read"
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
BetaManagedAgentsWriteToolConfig object
Configuration for the write tool.
type: "write"
enabled: boolean
name: "write"
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
BetaManagedAgentsGlobToolConfig object
Configuration for the glob tool.
type: "glob"
enabled: boolean
name: "glob"
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
BetaManagedAgentsGrepToolConfig object
Configuration for the grep tool.
type: "grep"
enabled: boolean
name: "grep"
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
BetaManagedAgentsWebFetchToolConfig object
Configuration for the web_fetch tool.
type: "web_fetch"
enabled: boolean
name: "web_fetch"
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
allowed_domains: optional array of string
blocked_domains: optional array of string
max_content_tokens: optional number or null
format: int32
BetaManagedAgentsWebSearchToolConfig object
Configuration for the web_search tool.
type: "web_search"
enabled: boolean
name: "web_search"
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
allowed_domains: optional array of string
blocked_domains: optional array of string
user_location: optional BetaManagedAgentsUserLocation or null
Approximate user location for search result localization.
type: "approximate"
Location precision. Only "approximate" is supported.
city: optional string or null
City name.
minLength: 1, maxLength: 255
country: optional string or null
Two-letter ISO 3166-1 country code, uppercase.
region: optional string or null
Region or state name.
minLength: 1, maxLength: 255
timezone: optional string or null
IANA timezone identifier, e.g. "America/Los_Angeles".
minLength: 1, maxLength: 255
default_config: BetaManagedAgentsAgentToolsetDefaultConfig
Resolved default configuration for agent tools.
enabled: boolean
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
BetaManagedAgentsMCPToolset object
type: "mcp_toolset"
configs: array of BetaManagedAgentsMCPToolConfig
enabled: boolean
name: string
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
default_config: BetaManagedAgentsMCPToolsetDefaultConfig
Resolved default configuration for all tools from an MCP server.
enabled: boolean
permission_policy: BetaManagedAgentsAlwaysAllowPolicy or BetaManagedAgentsAlwaysAskPolicy or BetaManagedAgentsAutoPolicy
Permission policy for tool execution.
BetaManagedAgentsAlwaysAllowPolicy object
Tool calls are automatically approved without user confirmation.
BetaManagedAgentsAlwaysAskPolicy object
Tool calls require user confirmation before execution.
BetaManagedAgentsAutoPolicy object
The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.
mcp_server_name: string
BetaManagedAgentsCustomTool object
A custom tool as returned in API responses.
type: "custom"
description: string
input_schema: BetaManagedAgentsCustomToolInputSchema
JSON Schema for custom tool input parameters.
type: "object"
properties: optional map[unknown] or null
required: optional array of string or null
name: string
version: number
format: int32
BetaManagedAgentsAdvisor object
Platform advisor roster entry: a model the session's primary thread may consult mid-turn.
type: "advisor"
model: string
The advisor model id.
name: string
tracks: array of BetaManagedAgentsJuglowSkill or BetaManagedAgentsCustomSkill
BetaManagedAgentsJuglowSkill object
A resolved Juglow-managed track.
BetaManagedAgentsCustomSkill object
A resolved user-created custom track.
system: string or null
tools: array of BetaManagedAgentsAgentToolset20260401 or BetaManagedAgentsMCPToolset or BetaManagedAgentsCustomTool
BetaManagedAgentsAgentToolset20260401 object
BetaManagedAgentsMCPToolset object
BetaManagedAgentsCustomTool object
A custom tool as returned in API responses.
version: number
format: int32
budget: optional BetaManagedAgentsBudgetLimit or null
The session's budget after the update: the new budget when set or replaced, or null when the update removed it. Present only when the update changed the budget.
type: "limit"
max_list_cost: BetaMonetaryAmount
Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge.
amount: string
Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.
currency: BetaCurrency
Uppercase ISO-4217 currency code. USD is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.
metadata: optional map[string]
The session's full metadata bag after the update. Present when the update set non-empty metadata; absent when metadata was unchanged or cleared to empty.
title: optional string or null
The session's new title. Present only when the update changed it.
BetaManagedAgentsSystemMessageEvent 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"
id: string
Unique identifier for this event.
content: array of BetaManagedAgentsSystemContentBlock
System content blocks. Text-only.
type: "text"
text: string
The text content.
minLength: 1
processed_at: optional string or null
Timestamp when this system message was processed.
format: date-time
BetaManagedAgentsSessionUsageEvent object
Periodic snapshot of the session's cumulative usage and tracked list cost.
type: "session.usage"
id: string
Unique identifier for this event.
processed_at: string
Timestamp when the snapshot was taken.
format: date-time
usage: BetaManagedAgentsSessionUsageSnapshot
The session's cumulative usage at the snapshot time.
active_seconds: optional number
Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once. This is the duration the session's runtime cost is priced on.
format: double
cache_creation: optional BetaManagedAgentsCacheCreationUsage
Tokens used to create prompt cache entries, broken down by cache TTL.
ephemeral_1h_input_tokens: optional number
Tokens used to create 1-hour ephemeral cache entries.
format: int32
ephemeral_5m_input_tokens: optional number
Tokens used to create 5-minute ephemeral cache entries.
format: int32
cache_read_input_tokens: optional number
Total tokens read from prompt cache.
format: int32
input_tokens: optional number
Total input tokens consumed across all turns.
format: int32
list_cost: optional BetaMonetaryAmount
Cumulative list cost of the session across all turns, priced at public list rates.
output_tokens: optional number
Total output tokens generated across all turns.
format: int32
server_tool_use: optional BetaManagedAgentsServerToolUsage
Cumulative server-executed tool usage across all turns.
web_fetch_requests: optional number
Number of server-executed web fetch requests.
format: int32
web_search_requests: optional number
Number of server-executed web search requests.
format: int32
budget: optional BetaManagedAgentsBudgetLimit or null
The session's configured budget at the snapshot time, or null when the session has no budget.
next_page: optional string or null
Opaque cursor for the next page. Null when no more results.
Example
curl https://haijun.my.id/v1/sessions/$SESSION_ID/threads/$THREAD_ID/events \
-H 'juglow-version: 2023-06-01' \
-H 'juglow-beta: managed-agents-2026-04-01' \
-H "X-Api-Key: $JUGLOW_API_KEY"Response (200)
{
"data": [
{
"id": "sevt_011CZkZGOp0iBcp4kaQSihUmy",
"content": [
{
"text": "Where is my order #1234?",
"type": "text"
}
],
"type": "user.message",
"processed_at": "2026-03-15T10:00:00Z"
}
],
"next_page": "next_page"
}