---
title: "Approval Vote Endpoint"
method: POST
path: "/v1/actions/{action_id}/votes"
tags: ["actions"]
---

# Approval Vote Endpoint

`POST /v1/actions/{action_id}/votes`

## Request

- Base URL: `https://api.actionbox.cloud`
- URL: `https://api.actionbox.cloud/v1/actions/{action_id}/votes`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `actionbox_session`

## Path parameters

- `action_id` string, required

## Headers

- `Idempotency-Key` string, required
- `X-Actionbox-Client` string, nullable
- `x-user-id` string, nullable
- `authorization` string, nullable

## Cookies

- `actionbox_session` string, nullable

## Request body

- DecisionRequest
  - `action_version` integer
  - `fingerprint` string, nullable
  - `option_id` string, nullable
  - `response` union
    - BooleanResponse
      - `type` 'boolean', required
      - `value` boolean, required
    - TextResponse
      - `type` 'text', required
      - `value` string, required
    - IntegerResponse
      - `type` 'integer', required
      - `value` integer, required
    - NumberResponse
      - `type` 'number', required
      - `value` union, required
        - integer
        - number
    - RatingResponse
      - `type` 'rating', required
      - `value` integer, required
    - SingleChoiceResponse
      - `type` 'single_choice', required
      - `value` string, required
    - MultiChoiceResponse
      - `type` 'multi_choice', required
      - `value` string[], required
    - FormResponse
      - `type` 'form', required
      - `values` object, required
  - `reason` string, nullable

## Response `200`

Successful Response

- ApprovalVoteResponse
  - `data` ApprovalActionData, required
    - `id` string, required
    - `status` 'open' | 'resolved' | 'expired' | 'cancelled', required
    - `action_version` integer, required
    - `fingerprint` string, required
    - `approval_policy` ApprovalPolicy, required
      - `schema_version` 1
      - `mode` 'any' | 'all' | 'quorum', required
      - `required_approvals` integer, nullable
      - `approval_option_id` string, nullable
      - `rejection_option_id` string, nullable
      - `allow_source_override` boolean
    - `approval_progress` ApprovalProgressData, required
      - `state` 'pending' | 'approved' | 'rejected' | 'overridden' | 'expired' | 'cancelled', required
      - `required_approvals` integer, required
      - `approval_count` integer, required
      - `rejection_count` integer, required
      - `remaining_approvals` integer, required
      - `eligible_reviewer_count` integer, required
      - `votes` ApprovalVoteData[], required
        - `id` string, required
        - `reviewer_user_id` string, nullable, required
        - `outcome` 'approve' | 'reject', required
        - `option_id` string, nullable
        - `response` union
          - BooleanResponse
            - `type` 'boolean', required
            - `value` boolean, required
          - TextResponse
            - `type` 'text', required
            - `value` string, required
          - IntegerResponse
            - `type` 'integer', required
            - `value` integer, required
          - NumberResponse
            - `type` 'number', required
            - `value` union, required
              - …
          - RatingResponse
            - `type` 'rating', required
            - `value` integer, required
          - SingleChoiceResponse
            - `type` 'single_choice', required
            - `value` string, required
          - MultiChoiceResponse
            - `type` 'multi_choice', required
            - `value` string[], required
          - FormResponse
            - `type` 'form', required
            - `values` object, required
        - `reason` string, nullable
        - `action_version` integer, required
        - `stage_index` integer
        - `created_at` string, date-time, required
      - `current_stage_index` integer
      - `stages` ApprovalStageProgressData[], nullable
        - `index` integer, required
        - `name` string, required
        - `group_id` string, required
        - `mode` 'any' | 'all' | 'quorum', required
        - `required_approvals` integer, required
        - `approval_count` integer, required
        - `rejection_count` integer, required
        - `eligible_reviewer_count` integer, required
  - `vote` ApprovalVoteData, required
    - `id` string, required
    - `reviewer_user_id` string, nullable, required
    - `outcome` 'approve' | 'reject', required
    - `option_id` string, nullable
    - `response` union
      - BooleanResponse
        - `type` 'boolean', required
        - `value` boolean, required
      - TextResponse
        - `type` 'text', required
        - `value` string, required
      - IntegerResponse
        - `type` 'integer', required
        - `value` integer, required
      - NumberResponse
        - `type` 'number', required
        - `value` union, required
          - integer
          - number
      - RatingResponse
        - `type` 'rating', required
        - `value` integer, required
      - SingleChoiceResponse
        - `type` 'single_choice', required
        - `value` string, required
      - MultiChoiceResponse
        - `type` 'multi_choice', required
        - `value` string[], required
      - FormResponse
        - `type` 'form', required
        - `values` object, required
    - `reason` string, nullable
    - `action_version` integer, required
    - `stage_index` integer
    - `created_at` string, date-time, required
  - `resolution` 'pending' | 'resolved', required
  - `idempotent_replay` boolean, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/actionbox/apis/actionbox-api.md) · [All operations](https://skmtc.dev/actionbox/apis/actionbox-api/llms.txt) · [OpenAPI document](https://skmtc.dev/actionbox/apis/actionbox-api/revisions/bfb9b622e725?raw)
