Update post
update_postEdit an existing draft/scheduled post without deleting it. You may change its base content, target platforms, status, scheduled time, per-platform settings, and/or APPEND media from public https URLs via mediaUrls. Set publishNow=true to publish using server time; it consumes monthly quota but no deferred queue slot, even when that queue is full. It re-validates the complete final content/media/platform state. Appending does not replace unfinished upload slots: inspect get_post and use delete_media for that specific reservation first only when the user's task authorizes abandoning it. Before changing platforms, call list_connections and copy each target's platformId verbatim. Published/failed posts and posts already being published are not editable. Scheduling re-validates the complete final content/media/platform state; omitting a field keeps its current value.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | New status: 'draft' or 'scheduled'. publishNow=true schedules immediate publication; omit status or use 'scheduled'. Combining it with 'draft' is rejected. | |
| content | No | Optional replacement base post text. On X and Threads, long content auto-splits into a chain; a standalone --- line between paragraphs sets a break, and media attach only to the first part. Threads parts are limited to 500 characters; the connection needs threads_manage_replies, and THREADS_PERMISSION_REQUIRED means reconnect in Publora Channels. Thread part and numbering settings are not API/MCP inputs. After partial publication, inspect get_post and never recreate or resubmit the whole chain. For an unknown outcome, check the live account before further action. Updates every target without an explicit platform-specific override. An empty string is allowed for a draft; scheduling still enforces each platform's content/media rules. | |
| mediaUrls | No | Optional array (max 10) of public https URLs of images/videos to APPEND to this post. Same rules as create_post: direct file URLs only; jpeg, png, gif, webp, tiff, avif, mp4, mov, webm; images ≤25MB, videos ≤150MB. | |
| platforms | No | Optional replacement target platform array. Call list_connections first and copy its platformId values verbatim. This replaces the whole set; [] is allowed only while the post remains a draft. | |
| publishNow | No | Set true to publish this draft or scheduled post immediately using server time and trigger publication processing. Reserves monthly publication quota but no deferred queue slot. Omit scheduledTime and status; a future time or status 'draft' is rejected. False or omitted retains existing editing/scheduling behavior. Inspect get_post for asynchronous publication progress. | |
| postGroupId | Yes | Post group ID | |
| firstComment | No | Replace the first comment (object) or clear it (null). Legacy single first comment under your own post. Supported: linkedin (profiles and Pages), twitter, threads, bluesky, mastodon; other targets are skipped. Best effort: read firstCommentResult via get_post. Cannot be combined with firstComments or added after publishing. | |
| firstComments | No | Replace all first comments (array of up to 3), or clear with null or []. Up to 3 ordered first comments under your own post, each { text, platforms?, delaySeconds? }. delaySeconds is an integer 0–86400; omitted means 0. The next comment runs only after the previous one posts, on a scheduler tick; a failed comment stops later ones. Platform types (not connection keys) and text limits follow firstComment. Best effort, no blind retries. Read per-target firstCommentResults via get_post. Cannot be combined with firstComment or added after publishing. | |
| scheduledTime | No | New ISO 8601 date-time with UTC Z or offset. Choose a future time within the schedule horizon returned by account_context. With publishNow=true, omit this field; a future scheduledTime is rejected. Inspect returned warnings and effective scheduledTime; a quota error requires changing the request or queue state before retrying. | |
| idempotencyKey | No | Optional retry key. Reusing it with the identical request prevents repeated media appends and replays the original response. | |
| platformSettings | No | Merge per-platform options (same shape as create_post). Per-platform options keyed by platform. Example: { instagram: { coverUrl: 'https://.../cover.jpg' }, youtube: { title: 'My video', tags: ['topic'] }, tiktok: { viewerSetting: 'SELF_ONLY' }, twitter: { replyTo: 'https://x.com/user/status/123' } }. Also supports telegram.disableNotification/disableWebPagePreview/protectContent, threads.replyControl, linkedin.repostParentUrn/repostVisibility. For TikTok photos, tiktok.autoAddMusic lets TikTok choose music; no track selection or preview. Unknown platforms or fields are rejected. |