Update a post
update_postEdits a draft, review or scheduled post: text, link, hashtags, replies, media, media per network, targets, date or status. Only the fields given are changed; overrides and mediaOverrides are each replaced as a whole when given (pass every entry to keep), kept when omitted. Use it instead of schedule_post to fix or reschedule an existing post (no duplicate is created), and instead of cancel_post when the post should still go out. Setting status "scheduled" publishes without approval and needs the publish scope, so only do it when the user asked. A published post cannot be edited.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Id of the post to edit, from get_schedule or schedule_post. | |
| body | No | Main text of the post. Per-network overrides go in `overrides`; leave it as an empty string when every target has its own text there (never write quote marks as the text). | |
| link | No | Link appended after the text (becomes a preview card on Bluesky, Mastodon, Threads, Facebook and LinkedIn without media). | |
| media | No | Images (4 on x, bluesky and mastodon, 10 on facebook, 20 on instagram, threads and linkedin, 35 on tiktok) or one video, for every target without its own entry in `mediaOverrides`. Instagram and Threads also take a carousel of up to 20 images and videos, mixed. Instagram takes JPEG images and MP4 or MOV videos only. | |
| repeat | No | Publishes the post again every day, week or month at the same time (Europe/Paris), counted from scheduledAt: once an occurrence goes out, the next one is created with the same content. null stops the series. TikTok settings chosen in the app apply to every occurrence. | |
| status | No | draft: saved without a date. review (default when scheduledAt is set): waits for an approval in the app. scheduled: published automatically at scheduledAt, without approval (needs the publish scope); with scheduledAt "now" it goes out within a minute. | |
| tiktok | No | The user's TikTok settings for every TikTok target, required to schedule a TikTok post (status scheduled); without them the post waits in review for the user to pick them in Broadcast. While TikTok's audit of Broadcast is pending they are optional: the post goes out private (SELF_ONLY), interactions off. By publishing, the user accepts TikTok's Music Usage Confirmation (and Branded Content Policy when brandedContent is true). | |
| replies | No | Replies Broadcast posts under the post right after it goes out, from the same account. On x, bluesky, threads and mastodon they form a thread: each one replies to the one before. On linkedin, facebook and instagram only the first one goes out, as a comment under the post (text only; e.g. the link, kept out of the post). None on tiktok, youtube or an instagram story. Up to 24. On X each reply costs credits like a post (10 with a link). If one fails, the post stays published, the replies carry on from that one on the automatic retries, and the target's `replies` says where they stopped. null or [] removes them. When the post's text is longer than a thread network takes, put its first part in `overrides` for that network and the rest in replies. Per network, `noReplies` turns them off. | |
| xThread | No | Deprecated: same as `replies` (ignored when `replies` is given). | |
| accounts | No | Target account ids (see GET /accounts / list_accounts). | |
| hashtags | No | Hashtags appended on their own line, with or without the leading #. | |
| noReplies | No | Account ids or platform names that get no replies (e.g. ["linkedin"] to keep the thread on x and bluesky only). On update_post it replaces the list; omit it to keep it. | |
| overrides | No | Text replacing `body` for one network, keyed by account id or platform name (e.g. a shorter text for x). On update_post it replaces every override at once. | |
| platforms | No | Alternative to `accounts`: every connected account of these networks. | |
| sourceUrl | No | Optional https address of the conversation or session making this call (for instance a Claude Code session link), shown as a link in the user's activity log. Omit it when unknown; never invent one. | |
| scheduledAt | No | ISO 8601 date-time with offset (e.g. 2026-10-14T09:00:00+02:00), or "now". Required for status review and scheduled. | |
| firstComment | No | Deprecated: a single reply, same as `replies: [{ text }]` (ignored when `replies` is given). | |
| instagramStory | No | true: every Instagram target is published as a story instead of a post (exactly one image or one video of 60 s max; no caption, no replies; gone after 24 h). Or per Instagram account: an object keyed by account id (e.g. {"<id>": true}), the accounts left out staying posts. Default false. A story takes the target's own media when it has some in `mediaOverrides`. | |
| mediaOverrides | No | Replaces every per-network media list at once, like `overrides`: a target left out goes back to `media`; {} removes them all. Omit it to keep them. |