Skip to main content
PUT
Update post

Request

string
required
The post ID.
string
required
The post status. One of:
  • draft — keep as draft
  • scheduled — schedule for the time given in scheduled_at (must be in the future)
  • publishing — publish immediately: dispatches the publish job to all enabled platforms
Cross-validated: scheduled requires a scheduled_at in the future.
string
The post caption/text body.
array
Media items to associate with the post. Most callers upload first via POST /posts/{post}/media (file) or POST /posts/{post} /media/from-url (URL) and let those endpoints append to media[] directly.
array
An array of platform entries to enable. Any platform NOT listed here will be disabled. Pass an empty array to disable all.
string
ISO 8601 datetime. Required when status=scheduled.
array
An array of label UUIDs to assign to the post. Replaces existing labels.

Response

Returns the updated post. Returns 422 with { "message": "Cannot edit a published post." } if the post has already been published.

Tips

  • To publish an existing draft, send only { "status": "publishing" } — content/platforms already saved are kept.
  • To schedule, send { "status": "scheduled", "scheduled_at": "2025-12-31T15:30:00Z" }.
  • To toggle which platforms are active without changing content, send only the platforms[] array.