---
title: "Approve a version (or withdraw approval)"
method: POST
path: "/v1/home/approvals"
tags: ["Home"]
---

# Approve a version (or withdraw approval)

`POST /v1/home/approvals`

## Request

- Base URL: `https://shareout.site`
- URL: `https://shareout.site/v1/home/approvals`
- Auth: HTTP bearer

Records that the caller approved a version — the live one unless `versionId` is given. Approvals are a record shown in History and Details, not a publish gate. Needs comment access (owner, collaborator, internal member of a workspace- or public-visible artifact, or a `comment` grant). The only REST path for approvals; session cookie or Bearer token.

## Request body

- object
  - `artifactId` string, required
  - `versionId` string: A version id (`ver_…`); defaults to the live version.
  - `approved` boolean: `false` withdraws the caller's approval.

## Response `200`

Review state after the change

- ReviewState
  - `live_version_id` string, nullable
  - `live_version_no` integer, nullable
  - `can_review` boolean: Caller may resolve, assign and approve.
  - `approvals` object[]
    - `version_id` string
    - `version_no` integer
    - `user_id` string
    - `name` string, nullable
    - `email` string, nullable
    - `created_at` string, date-time
  - `my_approvals` string[]: Version ids the caller (any linked account) approved.

## Other responses

- `400`: Invalid request
- `403`: `FORBIDDEN` — you need comment access to approve
- `404`: `NOT_FOUND` (artifact) or `VERSION_NOT_FOUND`

## Changes

- **2026-10-16** `924c2aeaed12`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/shareout/apis/shareout-rest-api/changes/v1/home/approvals/post.md)

---

[API](https://skmtc.dev/shareout/apis/shareout-rest-api.md) - [All operations](https://skmtc.dev/shareout/apis/shareout-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shareout/apis/shareout-rest-api/revisions/1e3f7fd34f6d?raw)
