Skip to main content
Approvals put a human in the loop before an agent does anything high-stakes. When an agent triggers a sensitive action, the API freezes the request and returns 202 { status: "pending_approval", approval_id } instead of executing. A human (the developer, or the end-user in your app) approves or denies it; on approval the API replays the frozen action and records the result. Gating is configured per primitive on the Account Kit, and the queue is a first-class resource alongside vault and logs.

CLI First

Tools

What’s gated by default

The full default-gated set (33 actions): phone.call and phone.voice_enable are not gated by default; set requiresApproval: true for phone on the kit if you need them gated. Developers override this per primitive in the Account Kit (primitives_config.<primitive>.requiresApproval, or connections_config.requiresApproval). Set true to force approval, false to opt out. Human (dashboard/session) callers bypass the gate, and so do agent calls on the account’s own default agent profile — only agent calls on real tenant users are gated.

Lifecycle

Pending response (202):
A pending approval becomes executed (with the action’s result), failed (with an error), or denied.

Error Handling

Typical Workflow