Approvals (Beta)

Get a single approval request

Retrieve full detail for a single approval request by ID, including the payload to sign and, when requested, the request's quorumStatus.

Because this endpoint addresses one request, it accepts quorumStatusMode=FULL, which adds the participating approvers and their individual approval state.

userStatus reflects the authenticated user by default. Pass userId to report it for another user instead.

Endpoint Permission: Owner, Admin, Non-Signing Admin, Approver, Signer, Security Admin, Security Auditor.

get/approvals/{requestId}

Request

Path parameters

requestIdstring required

The approval request ID.

Query parameters

userIdstring

Report userStatus for this user instead of the authenticated user. This selects whose approval state is returned; it does not change which requests can be fetched. Requires an Admin, Non-Signing Admin, Security Admin or Security Auditor role; other roles are rejected with 403.

quorumStatusMode'NONE' | 'SUMMARY' | 'FULL'

How much quorum detail to include in quorumStatus. NONE (the default) returns it as null. SUMMARY returns the approval thresholds, current counts and status. FULL adds users and the per-group members indexes identifying who may approve and who already has. Any other value is rejected with 400; the parameter is case-sensitive.

Response

The requested approval request.

requestPayloadstring required

The pending approval request as a JSON string, exactly as produced by the backend — this is the precise string to sign in order to approve the request (sign it as-is; do not re-serialize). The JSON has the shape { requestId, requestType, requestTimestamp (epoch ms), expiresAt (epoch seconds), requestData }, where requestData is the request-type-specific payload.

requestSignaturestring

Signature over the requestPayload. Empty until request signing is implemented.

userStatus'USER_STATUS_NOT_APPLICABLE' | 'USER_NOT_ELIGIBLE_TO_APPROVE' | 'USER_NOT_APPROVED' | 'USER_APPROVED' required

The authenticated user's approval status for this request.

Example response

{
  "requestPayload": "{\"requestId\":\"ccr-1f2e3d4c\",\"requestType\":\"ADD_USER\",\"requestTimestamp\":1750000000000,\"expiresAt\":1750600000,\"requestData\":{\"type\":\"ADD_USER\",\"creator\":\"user-1f2e3d4c\",\"id\":\"ccr-1f2e3d4c\"}}",
  "userStatus": "USER_NOT_APPROVED",
  "quorumStatus": {
    "requestStatus": "PENDING",
    "users": [
      {
        "index": 0,
        "userId": "6073c3d2-9f4b-4c1a-8f7d-2b1e5a9c4d80",
        "status": "APPROVED"
      },
      {
        "index": 1,
        "userId": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
        "status": "PENDING",
        "isMandatoryOwner": true
      }
    ],
    "quorum": {
      "type": "SIMPLE",
      "threshold": 2,
      "currentApprovalCount": 1,
      "status": "PENDING",
      "members": [
        0,
        1
      ]
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.