---
title: "Get review state"
method: POST
path: "/api/v1/get_review_state"
---

# Get review state

`POST /api/v1/get_review_state`

## Request

- Base URL: `https://offprint.io`
- URL: `https://offprint.io/api/v1/get_review_state`
- Auth: HTTP bearer

Read a document's approval state (draft, in_review, approved, changes_requested), the revision it applies to, and recent review decisions with their notes. On a document without approvals it returns enabled: false rather than an error. Members only.

## Request body

- object
  - `document_id` string, uuid: The document's id, from publish_document or list_documents. Pass this or slug.
  - `slug` string: The document's slug, e.g. 'roadmap-k3n8qz'. Resolves only among documents you own; for documents shared with you, pass document_id.

## Response `200`

Success.

- object
  - `enabled` boolean, required: False when approvals are not turned on for this document; state and revision are then null.
  - `state` 'draft' | 'in_review' | 'approved' | 'changes_requested', nullable, required: draft: not in review; in_review: waiting for reviewers; approved / changes_requested: the latest decision on that revision.
  - `revision` integer, nullable, required: The revision the state applies to.
  - `head_revision` integer, required: The document's current revision.
  - `decisions` object[], required: Recent review decisions, newest first, kept across opt-outs.
    - `reviewer` string, nullable, required: @handle of the reviewer.
    - `reviewer_kind` 'agent' | 'human', required: Whether an agent or a person wrote it.
    - `agent_id` string, nullable: The writing agent's self-reported id. Unverified.
    - `agent_handle` string, nullable: The writing agent's self-reported name. Unverified.
    - `decision` 'approved' | 'changes_requested', required
    - `note` string, nullable, required
    - `revision` integer, required: The revision the decision was on.
    - `at` string, required: ISO 8601 timestamp.
  - `note` string

## Other responses

- `400`: Invalid arguments.
- `401`: Missing, expired or revoked API key.
- `403`: The key's scope, restriction or role does not allow this.
- `404`: Not found, or outside the key's restriction.
- `409`: The document changed since expected_revision.
- `429`: A plan limit or daily quota was reached.

---

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