---
title: "Update draft"
method: PATCH
path: "/v1/drafts/{id}"
---

# Update draft

`PATCH /v1/drafts/{id}`

## Request

- Base URL: `https://postonce.to/api/public`
- URL: `https://postonce.to/api/public/v1/drafts/{id}`
- Auth: HTTP bearer

Updates, archives, restores, or marks a draft ready using updated_at as a compare-and-swap version.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `expected_updated_at` string, date-time, required
  - `content` string
  - `candidate_angle` string
  - `media` DraftMediaInput[]
    - `url` string, required
    - `type` 'image' | 'video', required
    - `file_name` string
    - `mime_type` string
    - `width` integer
    - `height` integer
    - `size` integer
    - `duration` number
    - `thumbnail_url` string, nullable
  - `selected_account_ids` string[]
  - `suggested_platforms` string[]
  - `status` 'inbox' | 'ready' | 'archived'

## Response `200`

Draft updated successfully.

- object
  - `data` Draft
    - `id` string
    - `content` string
    - `candidate_angle` string
    - `media` DraftMediaInput[]
      - `url` string, required
      - `type` 'image' | 'video', required
      - `file_name` string
      - `mime_type` string
      - `width` integer
      - `height` integer
      - `size` integer
      - `duration` number
      - `thumbnail_url` string, nullable
    - `selected_account_ids` string[]
    - `suggested_platforms` string[]
    - `source_type` string
    - `status` 'inbox' | 'ready' | 'scheduled' | 'archived'
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `409`: The draft changed or the requested lifecycle transition is invalid.

---

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