approvals resource is the queue of actions waiting for a
human yes. Agents create approval requests through the MCP
server; humans answer them through the dashboard, the CLI, or
this API.
Endpoints
| Method | Path | Purpose |
|---|---|---|
GET | /v1/companies/{cid}/approvals | List approvals |
GET | /v1/companies/{cid}/approvals/{id} | Get one approval |
POST | /v1/companies/{cid}/approvals/{id}/approve | Approve |
POST | /v1/companies/{cid}/approvals/{id}/approve-with-edits | Approve with edits |
POST | /v1/companies/{cid}/approvals/{id}/deny | Deny |
POST | /v1/companies/{cid}/approvals/{id}/comment | Ask a question |
GET | /v1/companies/{cid}/approval-rules | List blanket rules |
POST | /v1/companies/{cid}/approval-rules | Create a blanket rule |
DELETE | /v1/companies/{cid}/approval-rules/{id} | Remove a blanket rule |
The approval object
pending— waiting for a responseapproved— approved as requestedapproved_with_edits— approved with a modified plandenied— denied, task is escalatingexpired— auto-denied after the timeoutasked_question— human posted a question; still open
List approvals
status— comma-separated listagent— filter by agentteam— filter by teamsince,until— time rangeassignee— who is expected to respond (the current board operator by default)
Respond to an approval
Approve
note is optional and is saved with the approval for
audit. The agent’s task unblocks and proceeds.
Approve with edits
edits object is a structured diff against the proposed
action. The agent receives the edited plan as the approval
result and adjusts.
Deny
ifDenied plan kicks in: usually escalation or
re-planning.
Ask a question
Blanket rules
Blanket rules are pre-approved classes of action. An agent request that matches a rule is auto-approved by the orchestrator before the approval card ever hits your inbox.action.prefix— action string prefix matchaction.regex— action string regexcost.usd.max— max USD costcost.tokens.max— max token countsideEffects.none— only match if no side effects declared
appliesTo can scope by agentIds, teamIds, or
companyId. The most specific scope wins.
Trust budgets
If trust budgets are enabled in the company’s safety settings, the orchestrator auto-approves small actions based on each agent’s trust score. The approval still appears in the list, withstatus: approved and answeredBy: auto:trust_budget.
Trust budgets are configured at Settings → Safety, not
through this API. You cannot set trust directly; it is earned.
Webhooks
| Event | When |
|---|---|
approval.requested | Agent asked for approval |
approval.approved | Human approved |
approval.approved_with_edits | Approved with changes |
approval.denied | Human denied |
approval.expired | Auto-denied after timeout |
approval.question_asked | Human posted a question |