Posts
Update post
Update a post’s content, schedule, enabled platforms, or labels — and trigger publishing.
PUT
Request
The post ID.
The post status. One of:
draft— keep as draftscheduled— schedule for the time given inscheduled_at(must be in the future)publishing— publish immediately: dispatches the publish job to all enabled platforms
scheduled requires a scheduled_at in the future.The post caption/text body.
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.An array of platform entries to enable. Any platform NOT listed here will be disabled. Pass an empty array to disable all.
ISO 8601 datetime. Required when
status=scheduled.An array of label UUIDs to assign to the post. Replaces existing labels.
Response
Returns the updated post. Returns422 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.

