REST API

Capable Approval keeps each page's approval details in a Confluence page property. That means you can read them with Confluence's own REST API, with no extra setup in Capable Approval. Use the same authentication you'd use for any other Confluence API call, such as an API token.

In the examples below, 718962697 is a sample page ID. Swap in the ID of your own page.

#Get a Confluence page using the REST API

Start by fetching the page itself. This confirms the page ID and shows its title, space and version.

Request

GET /wiki/api/v2/pages/718962697

Response

{
  "parentId": "21430470",
  "ownerId": "<account-id>",
  "lastOwnerId": null,
  "createdAt": "2025-06-06T10:07:29.290Z",
  "authorId": "<account-id>",
  "parentType": "page",
  "version": {
    "number": 1,
    "message": "",
    "minorEdit": false,
    "authorId": "<account-id>",
    "createdAt": "2025-06-06T12:51:54.336Z",
    "ncsStepVersion": "1895"
  },
  "position": 997126977,
  "body": {

  },
  "status": "current",
  "title": "<page-title>",
  "spaceId": "21430274",
  "id": "718962697",
  "_links": {
    "editui": "/pages/resumedraft.action?draftId=718962697",
    "webui": "/spaces/<space-key>/pages/718962697/<page-title>",
    "edituiv2": "/spaces/<space-key>/pages/edit-v2/718962697",
    "tinyui": "/x/CYDaKg",
    "base": "https://<site-host>.atlassian.net/wiki"
  }
}

#Get approval metadata for a Confluence page

Ask for the page's properties. The approval details sit in the property with the key njyzjq_capable_approval.

Request

GET /wiki/api/v2/pages/718962697/properties

Response

{
  "results": [
    {
      "version": {
        "number": 1,
        "message": "",
        "minorEdit": false,
        "authorId": "<account-id>",
        "createdAt": "2025-07-15T10:33:14.677Z"
      },
      "value": {
        "pending": [ 
          "<account-id>"
        ],
        "approved": [],
        "rejected": [],
        "commented": [],
        "status": 0,
        "isComplete": "false",
        "completedAt": 1752575594000,
        "createdAt": 1752575594000,
        "createdBy": "<account-id>",
        "latestVersionBy": "<account-id>",
        "minimumApprovers": 1,
        "minimumRejections": 1
      },
      "key": "njyzjq_capable_approval",
      "id": "759988231"
    }
  ],
  "_links": {
    "base": "https://<site-host>.atlassian.net/wiki"
  }
}

The fields you'll usually want are in value:

  • pending, approved, rejected and commented list the account IDs of reviewers in each state.

  • isComplete shows whether the approval has finished. It comes back as text, "true" or "false".

  • minimumApprovers and minimumRejections are the number of approvals or rejections the request needs.

  • createdBy is the account ID of the person who requested the approval. Times such as createdAt are in milliseconds since 1 January 1970 (UTC).