Resolve Approval

Database and access

These endpoints use the AgentOS-level database. Configure AgentOS(db=...) with an adapter that implements approvals; unsupported approval operations return 503. See Approvals.

Scoped callers can read only requester-owned records. Non-admin JWT callers are scoped with user isolation enabled; non-admin service-account PAT callers are scoped even without it. A caller-supplied user_id does not override this identity.

Record a decision

Submit a JSON body such as:

{"status": "approved", "resolved_by": "reviewer"}

Use only approved or rejected; other statuses return 422. Authenticated server identity overrides resolved_by. A second resolution returns 409. Scoped callers cannot resolve even their own records (404); unscoped callers retain writes subject to the deployment's authentication and permissions.

Resolving updates the approval record without resuming the run. Follow the relevant continue-run flow or configure a consumer that performs continuation.

POST/approvals/{approval_id}/resolve

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

approval_id*Approval Id

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request body for resolving (approve/reject) an approval.

Response Body

application/json

application/json

curl --request POST 'https://example.com/approvals/string/resolve' \  --header 'Content-Type: application/json' \  --data-raw '{"status":"string"}'
{  "id": "string",  "run_id": "string",  "session_id": "string",  "status": "string",  "source_type": "string",  "approval_type": "string",  "pause_type": "string",  "tool_name": "string",  "tool_args": {},  "expires_at": 0,  "agent_id": "string",  "team_id": "string",  "workflow_id": "string",  "user_id": "string",  "schedule_id": "string",  "schedule_run_id": "string",  "source_name": "string",  "requirements": [    {}  ],  "context": {},  "resolution_data": {},  "resolved_by": "string",  "resolved_at": 0,  "created_at": 0,  "updated_at": 0,  "run_status": "PENDING"}