Update post
Updates a post. Only the fields you send change. The social account is fixed (social_account_id is refused).
Send the destination’s format and settings either as top-level content_type and meta (the post has one destination), or as platforms[] with the destination id. meta is merged with the stored settings: send null for a key to clear it (string, list and object settings; boolean settings cannot be cleared, so send true or false); thread_replies replaces the whole list. media replaces the post’s media; label_ids replaces its labels.
status: publishing publishes the post now; scheduled schedules it at scheduled_at, in the queue (queue), or keeps its future scheduled_at; draft unschedules it (it is no longer published; the last scheduled_at stays on the draft). When scheduling or publishing, the content type must fit the media and the required settings must be present.
Posts that are publishing, published, partially published or failed cannot be edited: the request returns 422 with This post has already been processed and cannot be re-published. Duplicate it to try again.
Posts with several destinations (created before each channel got its own post) cannot be queued; platforms there lists the destinations to keep, and the rest are turned off. On this endpoint an invalid body may answer 422 before the 404 check of a post of another workspace.
Authorizations
Workspace API key from Settings → API Keys.
Path Parameters
Post id. A post of another workspace returns 404.
Body
Post text, at most 25000 characters. When status is scheduled or publishing it must also fit each account's limit (max_content_length of the social account, for example 280 on X or 25000 for X accounts with long posts, 300 on Bluesky, 500 on Mastodon including the content warning), measured on the text the network receives. A scheduled or published post needs text or media.
25000Replaces the post's media. Omit it to keep the current media. Media in order. Each item is one of upload_token, url or id. Types the channel does not accept are refused.
draft keeps the post editable. scheduled schedules it at scheduled_at or in the channel queue (queue). publishing publishes it now. Omit it to keep the current status.
draft, scheduled, publishing New format for the post's destination. Omitted, the stored format is kept, except on Pinterest and TikTok where new media decides it as on create.
instagram_feed, instagram_reel, instagram_story, linkedin_post, linkedin_page_post, facebook_post, facebook_reel, facebook_story, tiktok_video, tiktok_photo, youtube_short, x_post, threads_post, threads_ghost_post, pinterest_pin, pinterest_video_pin, pinterest_carousel, bluesky_post, mastodon_post, telegram_post, discord_message, google_business_post Settings of the post's destination, merged with the stored ones.
- X
- Bluesky
- Mastodon
- TikTok
- Pinterest
- Discord
- YouTube
- Instagram
- Threads
- Facebook
- LinkedIn
- Google Business Profile
- Telegram
Alternative to top-level content_type / meta. On a post with several destinations, the destinations not listed are turned off.
With status: scheduled: required unless queue is sent or the post already has a future time; must be in the future and before 2038-01-19. Cannot be combined with queue.
Queue position, only with status: scheduled. next takes the channel's first free slot; top takes its first slot and moves the queued posts behind it to the next gap. The channel must have posting times (has_posting_schedule). Cannot be combined with scheduled_at. Refused on posts with several destinations.
next, top, null Replaces the post's labels.
Response
The updated post.
A post on one channel. Posts created together from several channels are independent posts that share a post_group_id.
Shared by the posts created in one batch.
A workspace member. Only the id and name are exposed.
Post text, stored as sent (posts written in the app hold the editor's HTML).
pending_approval is a post a member who needs approval asked to schedule or publish.
draft, pending_approval, scheduled, publishing, published, partially_published, failed queue: the post holds a slot of the channel's posting schedule. custom: it is scheduled at its own time.
queue, custom, null UTC, format Y-m-d H:i:s.
UTC, format Y-m-d H:i:s.
Who asked for approval (not always the author).
UTC, format Y-m-d H:i:s.
A workspace member. Only the id and name are exposed.
UTC, format Y-m-d H:i:s.
Repeat rule, or null.
network for posts imported from the network (published outside TryPost).
trypost, network UTC, format Y-m-d H:i:s.
UTC, format Y-m-d H:i:s.

