Deny a tool call
Refuse an action the agent wanted to take, and tell it why. The memo is the whole feature.
TOOL_CALL_STATUS_WAITING_FOR_APPROVAL and the objective waits. Denying it tells the agent the action is off the table.
The memo is the difference between a wall and a hint
Deny with no memo and the agent knows only that it may not do that. It shrugs and tries something else:The response reports the state before the decision
Denial resolves asynchronously, and the response body carries almost nothing:executionStatus stays PENDING forever. That is the tell: a denied call is one that was never executed, not one that failed.
Deciding twice
A tool call can be decided once. A second decision, in either direction, comes back404:
Finding the calls waiting on you
toolApprovalRequested event fires on the stream the moment a call parks, so a UI does not have to poll. toolDenied fires when you decide, carrying the toolCallId and the memo.
Putting a tool behind approval
Approval is a property of the tool, and a synced tool set does not let you edit its tools:only filter in toolApprovals to gate a subset. For bare and HTTP tools, which you define by hand, set requiresApproval on the tool directly.
Related
Approve a tool call
404 on a second one.List tool calls
WAITING_FOR_APPROVAL to build the queue.Create a tool set
toolApprovals, and why synced tools reject edits.Set tool call content
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
"workspace_01HXKD2E5NQM3T9AYWCF133E3Q"
The ID of the objective. Supports "external_id:" prefix for external IDs.
"obj_01HXKD2E5NQM3T9AYWCFQAZGFV"
The ID of the tool call to deny
"toolcall_01HXKD2E5NQM3T9AYWCFTANFGV"
Body
A memo to associate to the tool call denial. Use a memo to steer the LLM to a different decision or usage of the tool.
Response
OK
ObjectiveToolCall is a record of a tool call made during an objective's execution. Tool calls are mutable — their status changes as they are approved, denied, or executed.
Metadata for ephemeral operations and activities (e.g., objectives, executions, runs)
Current status of the tool call
TOOL_CALL_STATUS_UNSPECIFIED, TOOL_CALL_STATUS_AUTO_APPROVED, TOOL_CALL_STATUS_WAITING_FOR_APPROVAL, TOOL_CALL_STATUS_APPROVED, TOOL_CALL_STATUS_DENIED TOOL_CALL_EXECUTION_STATUS_UNSPECIFIED, TOOL_CALL_EXECUTION_STATUS_PENDING, TOOL_CALL_EXECUTION_STATUS_RUNNING, TOOL_CALL_EXECUTION_STATUS_COMPLETED, TOOL_CALL_EXECUTION_STATUS_ERRORED, TOOL_CALL_EXECUTION_STATUS_WAITING_FOR_CONTENT