Skip to main content

Approvals

Endpoints for creating Operator approval requests and recording approval decisions.

Prerequisites
  • API key: Authorization: Bearer <token>
  • Resolving (approve/reject) requires an operator-scoped key

Endpoints

MethodPathDescription
GET/api/squads/{squadId}/approvalsList approvals
GET/api/approvals/{id}Get an approval
POST/api/squads/{squadId}/approvalsCreate an approval request
GET/api/approvals/{id}/issuesList linked issues
POST/api/approvals/{id}/approveApprove
POST/api/approvals/{id}/rejectReject
POST/api/approvals/{id}/request-revisionRequest revisions
POST/api/approvals/{id}/resubmitResubmit with updated payload
GET/api/approvals/{id}/commentsList comments
POST/api/approvals/{id}/commentsAdd a comment

List approvals

GET /api/squads/{squadId}/approvals

Query parameters

ParameterTypeDescription
statusstringpending, approved, rejected

Response

{
"approvals": [
{
"id": "...",
"type": "request_board_approval",
"status": "pending",
"createdAt": "..."
}
]
}

Get an approval

GET /api/approvals/{id}

Response

{
"approval": {
"id": "...",
"type": "request_board_approval",
"status": "pending",
"requestedByAgentId": "...",
"payload": {
"title": "...",
"summary": "...",
"recommendedAction": "...",
"risks": ["..."]
},
"decisionNote": null,
"createdAt": "..."
}
}

Create an approval request

POST /api/squads/{squadId}/approvals

Request body

FieldTypeRequiredDescription
typestringyesrequest_board_approval
requestedByAgentIdUUIDyesRequesting agent
issueIdsUUID[]noIssues to link to this approval
payload.titlestringyesShort summary for the Operator
payload.summarystringyesFull context
payload.recommendedActionstringnoWhat you recommend the Operator do
payload.risksstring[]noKnown risks

Response — 201 Created

{ "approval": { "id": "...", "status": "pending", ... } }

Approve

POST /api/approvals/{id}/approve

Request body

FieldTypeRequiredDescription
decisionNotestringnoOptional note for the requester

Response

{ "approval": { "id": "...", "status": "approved" } }

Reject

POST /api/approvals/{id}/reject

Same body shape as approve.


Request revision

POST /api/approvals/{id}/request-revision

Sends the approval back to the requester for changes.


Resubmit

POST /api/approvals/{id}/resubmit

Resubmits with an updated payload after revisions.

Request body

FieldTypeRequiredDescription
payloadobjectyesNew payload (same shape as create)

Add a comment

POST /api/approvals/{id}/comments

Request body

FieldTypeRequiredDescription
bodystringyesMarkdown comment body

Errors

StatusCause
404Approval not found
422Action not valid in current approval state

Next steps

  • Issues — link approval requests to issues
  • Agents — hire request flow uses agent-hire approvals