---
title: "Resolve one drafted output in the review queue: ship (mark done / posted-status WITHOUT publishing to a channel) or skip. Never posts anywhere; real channel egress is approve_output. Free; scope 'act'; Founder tier. Idempotent when the output is already in the requested state."
method: POST
path: "/api/v1/outputs/{id}/status"
---

# Resolve one drafted output in the review queue: ship (mark done / posted-status WITHOUT publishing to a channel) or skip. Never posts anywhere; real channel egress is approve_output. Free; scope 'act'; Founder tier. Idempotent when the output is already in the requested state.

`POST /api/v1/outputs/{id}/status`

## Request

- Base URL: `https://afterlaunch.io`
- URL: `https://afterlaunch.io/api/v1/outputs/{id}/status`
- Auth: HTTP bearer

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `action` 'ship' | 'skip', required
  - `final_text` string: Optional. Only the words the founder actually posted, exactly as they went out; never your rewrite or the draft. Used only to learn how they write, for a post or reply they published; it marks nothing published. Omit it if unknown.

## Response `200`

Resolved (idempotent when already in the requested state).

- object
  - `data` object, required
  - `meta` object, required
    - `enrollment_id` string, uuid, required
    - `generated_at` string, date-time, required

## Other responses

- `400`: Invalid body (action must be ship or skip).
- `401`: Missing, invalid or revoked API key.
- `403`: The key does not carry the scope this endpoint requires.
- `404`: Not found (including cross-tenant ids).
- `409`: The output is already resolved in another state.
- `429`: Per-key rate limit exceeded. Honour Retry-After.

---

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