Skip to main content
POST

Behavior

A held tool call waits on awaiting_tool_results and is listed in pending_approvals until you approve or deny it. An approved call runs exactly once; an approved custom tool call then moves to pending_tool_calls for you to run. A denied call is refused, and the rest of its step is skipped. Each decision is reported as a ToolApprovalDecidedEvent. Deciding a call on a paused session leaves it paused, so resume it separately.

Path parameters

string
required
The session ID.

Request body

Send either a single decision or a batch, discriminated by type.

Decision

string
default:"tool_approval_response"
"tool_approval_response".
string
required
The held call’s tool_req.id, from pending_approvals.
string
required
"approve" runs the call and the rest of its step. "deny" refuses it and skips the rest.
string | null
Why the call is denied, as the model reads it. Up to 2,000 characters. Send files or images as a user message.

Batch

string
required
"batch".
object[]
required
At least one decision.

Response

202 Accepted.

More examples

Decide a batch of calls

Errors