---
title: "Reject a post that is waiting for approval"
method: POST
path: "/posts/{id}/reject"
tags: ["Posts"]
---

# Reject a post that is waiting for approval

`POST /posts/{id}/reject`

Rejects the post's approval workflow on behalf of the user who owns this API key. That user must be a listed approver for the workflow's CURRENT step. Unlike approval, a rejection stops the whole workflow immediately — not just the current step — and the post's status becomes `rejected`. An optional `comment` explaining the rejection is stored on the decision and posted into the post's review thread.

## Path parameters

- `id` string, required

## Request body

- object
  - `comment` string — Optional reason for the rejection, shown to the requester and other approvers.

## Response `200`

Rejection recorded

- object
  - `data` object
    - `id` string
    - `status` string
    - `approval_status` string
    - `message` string

## Other responses

- `400` — `invalid_status` — the post is not waiting for approval. `already_finalized` — someone else already decided this step (race condition). `validation_error` — `comment` was not a string.
- `403` — `forbidden` — the API key's owner is not a listed approver for the workflow's current step.
- `404` — Post not found, or the post has no approval workflow attached

---

[API](https://skmtc.dev/omnisocials/apis/omnisocials-api.md) · [All operations](https://skmtc.dev/omnisocials/apis/omnisocials-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/omnisocials/omnisocials-api/revisions/e53b89af0b98/schema)
