---
title: "AI review of a single post"
method: POST
path: "/api/v1/generation/variants/{variant_id}/review"
tags: ["generation"]
---

# AI review of a single post

`POST /api/v1/generation/variants/{variant_id}/review`

## Request

- Base URL: `https://api.cadencz.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.cadencz.com/api/v1/generation/variants/{variant_id}/review`
- Auth: HTTP bearer

Reviews one post variant and returns a few applyable improvement suggestions (each with the post already rewritten to apply it) plus a brand-voice verdict. One smart-tier call; grounded in the workspace's strategy, voice, and writing skills.

## Path parameters

- `variant_id` string, required

## Response `200`

Successful Response

- PostReviewResponse
  - `suggestions` PostSuggestionRead[]
    - `title` string, required
    - `detail` string
    - `revised_body` string
  - `brand_voice` BrandVoiceRead
    - `on_brand` boolean
    - `confidence` integer
    - `tone` string
    - `note` string
  - `voice_source` string
  - `reviewed_at` string, date-time, nullable

## Other responses

- `401`: Missing or invalid Supabase bearer token.
- `422`: Validation Error
- `502`: The upstream provider rejected the request.
- `503`: Required infrastructure or provider config is unavailable.

---

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