Skip to main content
PATCH
Edit an unpublished draft
Saved drafts are available to all users. Normal publishing and scheduling rules apply when submitting. Drafts stay separate from scheduled and published posts. Saving does not publish or use your posting allowance. Text, media, destinations, and platform settings can be unfinished. Use the draft UUID from the save response. Read the draft’s current revision before editing, deleting, or submitting, then send it as expected_revision. A 409 means the draft changed or was submitted; read it again before continuing. Only the submit endpoint publishes or schedules. It runs the same account, plan, content, and platform checks as Create Post. If validation fails, the draft stays saved. After a successful submission, the draft read includes submission with the original jobs. Repeating the same submission revision and schedule returns those same jobs. Use profile_id for a non-default connection profile. A draft uses one profile. Lists include only unpublished drafts in that profile. See the draft workflow for dashboard, API, MCP, and CLI examples.

Authorizations

Authorization
string
header
required

Use Authorization: Bearer {api_key}

Path Parameters

id
string<uuid>
required

Query Parameters

profile_id
string

Omit to use the default profile on lists. On reads, deletes and submissions, optionally verify the draft belongs to this profile. Random public connection profile ID returned by GET /api/v1/profiles.

Pattern: ^[A-Za-z0-9]{6,32}$
Example:

"AbC123xYz90"

Body

application/json

Unpublished content. All fields are optional; no scheduled date or connected destination is needed to save. Supplied arrays and platform_options replace the saved value when editing. Media must already be uploaded to files.mallary.ai.

expected_revision
integer
required

Current revision from a draft read or save.

Required range: x >= 1
profile_id
string

Random public connection profile ID returned by GET /api/v1/profiles.

Pattern: ^[A-Za-z0-9]{6,32}$
Example:

"AbC123xYz90"

message
string
Maximum string length: 10000
platforms
enum<string>[]
Maximum array length: 10
Available options:
facebook,
meta,
instagram,
threads,
twitter,
x,
linkedin,
tiktok,
youtube,
pinterest,
reddit,
bluesky
media
object[]
Maximum array length: 20
comments_under_post
(string | object)[]
Maximum array length: 3
Maximum string length: 10000
platform_options
object | null
auto_reply_enabled
boolean

Response

Success

status
enum<string>
required
Available options:
ok
data
object
required
Last modified on October 9, 2026