Update post
Atomically update a post’s content, workflow status, assignees, or user tags. Omitted relation fields are preserved and present empty arrays clear them. expectedContentPayloadId provides optimistic concurrency control. Send an Idempotency-Key header so an ambiguous retry replays the original update; reusing the key with a different payload is rejected. Updating content does not rewrite an existing immutable scheduled snapshot: reschedule it explicitly to publish the new content.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Team (workspace) id (UUID). Discover ids via the list teams endpoint or the agent context.
Post id (UUID), as returned by the create post and list posts endpoints.
Body
Internal display title for the post; null clears it. Not published to the platform.
"June launch teaser"
Content format of the post; defaults to text_post.
text_post, text_image, text_video, carousel "text_post"
Body text of the post; for thread posts use postInput instead.
"Shipping day! Here is what is new in v1."
Structured content: an atomic post (text plus optional media/link attachments) or a thread of 2 or more atomic posts. Takes precedence over text.
- Option 1
- Option 2
UUIDs of previously uploaded media assets to attach to the post.
a Universally Unique Identifier
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$["0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"]Saved after-publish automations (first comment, engagement-triggered comment, repost, recurrence) applied when the post is scheduled or published.
UUIDs of the social accounts selected for this draft. Empty clears the saved selection and duplicates are rejected.
a Universally Unique Identifier
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$["0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"]Team-owned content workflow status to assign atomically with the post save.
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$Full replacement set of team-member user ids assigned to the post. Empty clears every assignee.
a Universally Unique Identifier
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$Full replacement set of existing or inline-created user tags. Empty clears every user-tag assignment.
- Option 1
- Option 2
Optimistic concurrency guard. The update is rejected when this is no longer the post current content payload id.
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$Deprecated and ignored. Accepted for older clients. Item-level fields (title, post type, workflow status, relations) are last-write-wins; content is guarded by expectedContentPayloadId.
Response
Success
UUID of the post.
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"3c9d8e7f-6a5b-4c3d-9e2f-1a0b9c8d7e6f"
a Universally Unique Identifier
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$Content format of a post: text_post (text only), text_image, text_video, or carousel (2+ photos).
text_post, text_image, text_video, carousel "text_post"
"text_image"
slideshow, image_meme, green_screen_meme Editorial status of a post: idea, proposed_render, draft, approved, rejected, archived, or deleted.
idea, proposed_render, draft, in_review, approved, rejected, archived, deleted "draft"
"approved"
Workspace-defined content workflow status currently assigned to the post.
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$a Universally Unique Identifier
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$Display metadata (mime type, name, thumbnail path) for the post's media, in the same order as assetIds. Empty for text-only posts.
Deduped, sorted union of the post's non-deleted assets' AI tags; empty for text-only posts.
["launch", "product"]User/agent-assigned registry tags (id, name, colour) on the post; distinct from AI-derived assetTags. Empty when no tags are assigned.
Team members assigned to the post (userId plus display name/email), in assignment order. Empty when unassigned. Set via the setPostAssignees endpoint.
a Universally Unique Identifier
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$a Universally Unique Identifier
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$UUIDs of the social accounts selected for this draft. Empty clears the saved selection and duplicates are rejected.
a Universally Unique Identifier
^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$["0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"]queue, drafts Saved to Queue, Saved to Drafts - Option 1
- Option 2