---
title: "Create draft"
method: POST
path: "/v1/drafts"
---

# Create draft

`POST /v1/drafts`

## Request

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

Saves content and optional media or destinations without publishing or scheduling it. Reuse an Idempotency-Key when retrying.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `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[]

## Response `201`

Draft created 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

- `400`: Invalid draft or destination account.
- `401`: Missing, invalid, revoked, or expired API key.

---

[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)
