update_post
Edit a draft or scheduled social post’s content, media, schedule, platform overrides, and UTM settings without publishing it immediately.
Instructions
Update a draft or scheduled post. X (Twitter): nothing sent to X may contain a link (URL, bare domain or t.co) — not the post, any thread segment, or a first comment (posted to X as a reply). The X API bills each link post at $0.20 vs $0.015, so the API rejects them; put a link-free version in platformContent.twitter.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID to update | |
| utm | No | Per-post UTM overrides. Pass `null` to clear all overrides (use user defaults). Omit to leave alone. | |
| label | No | Internal working name shown in the dashboard. Pass null to clear. Never published. | |
| media | No | Replace the shared media array. Omit to leave existing media alone. | |
| content | No | New post text content | |
| campaign | No | Re-tag this post's campaign (sets utm.campaign). Pass null to clear. | |
| postType | No | Explicit post type; takes precedence over platformSettings flags. Same platform rules as create_post ('thread' is X/Twitter-only and needs threadSegments). Omit to leave the current type unchanged — a plain edit never downgrades a reel/short/story. | |
| schedule | No | Natural-language reschedule: 'draft' (unschedule), 'today 20:30 Europe/Warsaw', 'tomorrow 07:00', 'in 2 hours', 'next week same time' (anchors on the post's current scheduled time). Use publish_post to publish immediately — 'now' is rejected here. | |
| timezone | No | Timezone | |
| scheduledFor | No | New schedule time (ISO 8601), or empty string to unschedule | |
| connectionIds | No | New connection IDs | |
| platformMedia | No | Per-platform media overrides. Pass `null` to clear all overrides (every platform uses the shared `media` array). Omit to leave overrides unchanged. | |
| threadSegments | No | Ordered tweet segments for a thread (postType='thread'). 2–25 segments, each 1–280 characters. | |
| platformContent | No | Per-platform content overrides | |
| platformSettings | No | Per-platform settings (e.g. { instagram: { isReel: true } }). TikTok posts need { tiktok: { privacyLevel } } (PUBLIC_TO_EVERYONE | MUTUAL_FOLLOW_FRIENDS | FOLLOWER_OF_CREATOR | SELF_ONLY) before they can be scheduled — this is how to repair a TikTok post that was created without one. |