Skip to main content
PUT

Request

string
required
Post UUID.
string
required
  • draft — keep as draft
  • scheduled — requires scheduled_at in the future
  • publishing — publish now
string
Shared caption (max 10 000).
array
Replace shared media. Each url must be a presign public_url. Optional meta.alt_text (max 2000).
array
Entries to enable. Platforms not listed are disabled. Empty array disables all.
string
ISO 8601. Required when status=scheduled.

Per-platform meta

Same keys on POST /posts and the MCP create/update tools.
  • Only the keys below are stored. Unknown keys are dropped.
  • On update, meta is merged. "title": null removes title.
  • Required-to-publish keys are enforced when status is scheduled or publishing and the body includes platforms[]. Publishing with only { "status": "publishing" } does not re-check stored meta — the MCP publish-post-tool always does.
  • Media compatibility is always re-checked on scheduled / publishing, with or without platforms[], against each row’s effective media.
  • Caption length is measured per platform against the effective caption.
  • Enum fields are exact JSON strings.
Platforms with no meta keys: X, YouTube, Threads, Bluesky, Mastodon, Telegram.

Instagram / Facebook

LinkedIn / LinkedIn Page

TikTok

Pinterest

Pin description is the effective caption, not a meta field.

Discord

Response

The updated post. 422 with a message when the post is already finalized (published, publishing, partially_published, or failed).