List objective tool calls
Every tool an objective invoked, what it was called with, and whether it ran. The endpoint a bare-tool harness polls.
Two statuses, and they sit on the call
status answers “may it run.” executionStatus answers “did it.” Both are top-level, not inside data, which is easy to get wrong because everything else lives under data.
requiresApproval: false reads AUTO_APPROVED before it ever runs. One behind approval sits at TOOL_CALL_STATUS_WAITING_FOR_APPROVAL until a person decides, then moves to APPROVED or DENIED.
Both filter server-side:
The list omits results. Get by ID returns them.
A list row holdscallable, arguments, and the two statuses. It carries no result, so paging a long objective stays cheap.
Get a tool call returns the same call plus result, at the top level rather than under data, with no includeInfo needed. The response schema is named ObjectiveToolCallWithResult, which tells you where the line falls.
callable names what was invoked
A discriminated union, like an assignment: type reads tool, agent, or cadenyaProvidedTool, and the payload sits under the matching key.
toolCalled event, which ships a built-in’s name empty, this endpoint fills it in. When a transcript rendered from the stream hits an unnamed built-in, this is where its name lives.
resolvedSecrets gives the key and source, never the value
Each entry gives the secret’s key and which scope supplied it, so you can prove a per-user token overrode a workspace credential without the value ever crossing the wire.
RESOLVED_SECRET_SOURCE_OBJECTIVE, then _TOOLSET, then _WORKSPACE: the narrowest scope wins. The array is empty when the tool needs no secrets.
The harness loop
Related
Set tool call content
Approve a tool call
WAITING_FOR_APPROVAL gets resolved.Get a tool call
result.Store and use secrets
resolvedSecrets.source is telling you.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
"workspace_01HXKD2E5NQM3T9AYWCF133E3Q"
The objective ID to return tool calls for
"obj_01HXKD2E5NQM3T9AYWCFQAZGFV"
Query Parameters
Maximum number of results to return
Pagination cursor from previous response
Filter by tool call status
TOOL_CALL_STATUS_UNSPECIFIED, TOOL_CALL_STATUS_AUTO_APPROVED, TOOL_CALL_STATUS_WAITING_FOR_APPROVAL, TOOL_CALL_STATUS_APPROVED, TOOL_CALL_STATUS_DENIED When set to true you may use more of your alloted API rate-limit
Filter by tool call execution status. Useful for reverse-harness polling of bare tool calls waiting for externally supplied content (TOOL_CALL_EXECUTION_STATUS_WAITING_FOR_CONTENT).
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 Filters by metadata labels. Comma-separated key=value pairs, e.g. "env=prod,team=ai". A resource matches only if every pair matches exactly (AND semantics).