Skip to main content

Approvals

Some agent actions are sensitive enough to require a human decision before they run — sending an email, writing to a connected integration, and other side-effecting operations. When an agent hits one of these, it creates an approval request and the run pauses until a human approves or rejects it. Each approval request records what the agent wants to do (action_key, action_display), the run/thread/job it belongs to, its status (pending, approved, rejected, or expired), and when it was created and decided. Approving or rejecting a request resumes the paused agent run: an approval lets the action proceed, a rejection terminates it. The same surface is available over the CLI, MCP, and REST.

Deciding an approval

A decision carries a scope that controls how broadly the approval applies:
ScopeEffect
once (default)Approve just this one request.
always_this_jobAuto-approve this action for the rest of this job.
always_orgCreate a standing org-wide policy auto-approving this action.
always_userCreate a standing policy auto-approving this action for the deciding user.
Scope only applies to approvals; a rejection always applies once.

CLI

# List pending requests (omit --status for all)
erdo approvals list --status pending
erdo approvals list --json                      # raw JSON

# Approve or reject a request
erdo approvals decide <id> --approve
erdo approvals decide <id> --reject
erdo approvals decide <id> --approve --scope always_user
erdo approvals list prints one row per request: a short id, status, action key, display, and creation time. Use --json for the full payload.

MCP tools

ToolDescription
erdo_list_approvalsList approval requests, filterable by status (pending, approved, rejected, expired; default all).
erdo_decide_approvalApprove or reject a pending request so the paused run can continue (or be rejected). Takes id, decision, and optional scope.

REST

MCP ToolREST EndpointMethod
erdo_list_approvals/v1/approvalsGET
erdo_decide_approval/v1/approvals/:id/decidePOST
# List pending approvals
curl "https://api.erdo.ai/v1/approvals?status=pending" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Approve a request (scope defaults to "once")
curl -X POST https://api.erdo.ai/v1/approvals/<id>/decide \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"decision": "approved", "scope": "once"}'