content_posts_update
Edit plan title or notes in any status without changing approval or version.
Edit plan title or notes in any status without changing approval or version. Keep each output's own text in targets[].text — networks differ; the base text is optional source text. Editing text, media or targets creates a new immutable version; an approved post returns to pending_approval. A post that is scheduled, partially_published, published or failed cannot be edited — create a new post.
Behavior
- HTTP
PATCH /content/posts/:id
Arguments
Name | Type | Required | Description |
|---|---|---|---|
id | string | • | The post id returned by content_posts_create. |
text | string | — | Replacement text, in markdown; it may be empty for an idea or draft. Omit to keep the current text. |
media | array | — | Replacement media list (replaces, never merges). Omit to keep the current media. |
notes | string | — | New private plan notes, or null to clear them. Changing them does not create a content version or revoke approval. |
title | string | — | New plan title, or null to clear it. Changing it does not create a content version or revoke approval. |
targets | array | — | Replacement output list (replaces, never merges). Omit to keep the current outputs. Send each kept output with its id; an output without an id is new. Resending the stored outputs — in any order, with or without inherited media — is not an edit. Changing one is an edit like changing the text: a new version, and an approved post returns to pending_approval. |
Response
Field | Type | Always | Description |
|---|---|---|---|
id | string | • | Post id. |
text | string | • | The current text of the post, in markdown. |
media | array | • | Media references attached to the current version. |
notes | string | • | Private plan notes, or null when unset. |
title | string | • | Plan title, or null when unset. |
author | string | • | Identity id of whoever composed the post. |
status | string | • | Post lifecycle status: idea (may have no text) -> draft (being written) -> pending_approval (submitted) -> approved (cleared to publish). Past approval the status follows EVERY output of the approved version (see outputs): scheduled while an output is queued or in flight and none is out yet; partially_published once some outputs are out and others are still queued, failed or never scheduled; published once every output is out; failed when an output gave up and none is out or queued; back to approved when nothing is live any more (all cancelled). A post in any of these five statuses can still have an output scheduled, including a failed one again. |
outputs | array | • | One entry per output of this post, in targets order, with the state its publications add up to and the publication that decides it. Before approval every output is `none`. The post's status past approval is derived from exactly these states. |
targets | array | • | The outputs of this post — a network and a variant each; several may share a network. |
folderId | string | • | Folder containing this post, or null. |
position | integer | • | Order within its folder, or null for an unfiled post. |
createdAt | string | • | ISO-8601 creation time. |
updatedAt | string | • | ISO-8601 time of the last change. |
currentVersion | integer | • | Version number of the current text. |
approvedVersion | integer | • | The version an approval binds to, or null. Cleared on every edit: approving one text never covers another. |
Try it
Edit plan title or notes in any status without changing approval or version.