Approval Requests

Get approval request

GET/approval-requests/{type}/{requestId}

Returns one approval request with its steps, the voters on each and where it stands. state is rejected when refused, approved when the last step on the path completed, otherwise pending; completion is vote-computed only, never read from the deal or invite status. superseded is true once the workflow was replaced. Visible to a voter on a step or a holder of the publish (opportunity) or invite permission; anyone else, and a deleted deal or invite, gets 404. Needs an acting user.

Path parameters

  • typestringRequired#

    The kind of request: opportunity (a deal being published or shared) or invite (an investor invitation).

    One of: opportunity, invite
  • requestIdstring (uuid)Required#

    The request key: the deal's UUID for opportunity, or the invite's UUID for invite. Matched without regard to case. Anything that is not a UUID is 404.

Responses

{
  "data": {
    "id": "f6071829-3a4b-4c5d-9e6f-8091a2b3c4d5",
    "type": "opportunity",
    "workflow_type": "internal_publish",
    "state": "pending",
    "current_step_id": 318,
    "superseded": false,
    "steps": [
      {
        "id": 318,
        "name": "Draft review",
        "description": "Check the draft",
        "approval_label": "Looks good",
        "vote_type": "single",
        "completed": false,
        "voters": [
          {
            "user_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
            "name": "Ada Lovelace",
            "state": null,
            "voted_at": null
          }
        ],
        "next_step_ids": []
      }
    ],
    "choices": [],
    "created_at": "2026-06-15T10:30:00Z",
    "updated_at": "2026-06-15T10:30:00Z"
  }
}
401

Authentication failed. error.code is one of invalid_token, expired, revoked.

Error
403

Authorization failed. error.code is one of org_disabled, ip_blocked, missing_scope, scope_disabled, user_disabled.

Error
404

Resource not found (error.code = not_found).

Error
429

Rate limit exceeded (error.code = rate_limited).

Error

Examples

curl https://your-org-domain/kong/core/api/v2/approval-requests/{type}/{requestId}\
  -H "Authorization: Bearer $HELM_API_KEY"\
  -H "Content-Type: application/json"