---
title: "Approve or reject a revision"
method: POST
path: "/api/v1/revisions/{id}/decision"
tags: ["revisions"]
---

# Approve or reject a revision

`POST /api/v1/revisions/{id}/decision`

## Request

- Base URL: `https://koskamo.com`
- URL: `https://koskamo.com/api/v1/revisions/{id}/decision`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

The dataset owner's API key, a signed-in session linked to that owner key, or KNOWLEDGE_ADMIN_KEY may decide. Rate limit: 20 requests per minute per IP. Approving applies the change and records it in the document version history: add_document writes a new document at version 1; replace_document bumps the target document's version in place and swaps its chunks (a restore proposal resurrects a deleted document); delete_document tombstones the document (status deleted) and removes its chunks. The dataset version increments and the new text becomes retrievable. Owners are emailed at proposal time with a link to /manage?review=1.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `decision` 'approved' | 'rejected', required
  - `note` string: Optional review note

## Response `200`

Decision applied

- object
  - `revision` object, required
    - `id` string, uuid, required
    - `datasetId` string, uuid, required
    - `datasetSlug` string, required
    - `documentId` string, uuid, nullable, required
    - `action` 'add_document' | 'replace_document' | 'delete_document', required
    - `title` string, required
    - `body` string, required
    - `sourceUrl` string, required
    - `rationale` string, required
    - `status` 'pending' | 'approved' | 'rejected', required
    - `reviewedAt` string, date-time, nullable, required: When the owner or admin decided; null while pending.
    - `createdAt` string, date-time, required

## Other responses

- `400`: Invalid body, decision value, or the revision is not pending
- `403`: Only the dataset owner or admin can approve revisions
- `404`: Revision or dataset not found
- `429`: Rate limited (20 requests per minute per IP)

---

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