Posts

Edit a draft or scheduled post.

Editing resets the post to draft — pass action in the same call to re-schedule or publish it. A published post cannot be edited.

patch/v1/posts/{id}

Request

  • Base URL: https://api.ravenpo.st
  • URL: https://api.ravenpo.st/v1/posts/{id}
  • Auth: HTTP bearer

Path parameters

idstring required

Post id.

Request body

typestring

Post format. Instagram's model, reused as the shared one — a platform that doesn't honour the format falls back to its own default rather than failing.

accountIdsstring[]

Destination accounts, from GET /v1/accounts. One post fans out to all of them — at most one X account, since X forbids the same post on several accounts.

mediaIdsstring[]

Media assets to attach. Pass [] for a text-only post where the platform allows it.

actionstring

What to do with it. 'schedule' needs scheduledAt; 'queue' resolves the next free slot in the workspace posting schedule and fails if none is configured.

captionstring

Base caption, used by every platform without an override. The text X publishes may carry one $cashtag; a second is rejected, as X would.

captionOverridesobject

Per-platform caption. A platform with no entry publishes the base caption. Keys are platform ids from GET /v1/platforms.

scheduledAtstring

When to publish, for action: 'schedule'.

threadPartsstring[]

Follow-up posts published in order after the head, on platforms that declare a thread model (X, Bluesky, Mastodon, Threads, Telegram, Discord). Over the platform limit is rejected, never truncated.

firstCommentstring

Posted as a comment under the Instagram post right after it publishes, typically for hashtags. Instagram only, and never on a story. A comment Instagram refuses does not fail the post. On update, null clears it.

replyToTweetIdstring

Publish the head post as a reply under this tweet. Accepts an id or a tweet URL. X only — and X only takes a reply from an app to the account's own post, or to a post that @mentions it or quotes one of its posts.

quoteTweetIdstring

Embed this tweet as a quote card. Id or URL. X only, independent of replyToTweetId — and X only takes a quote of the account's own post, or of one that @mentions it.

tiktokOptionsobject

TikTok privacy level, interaction switches and commercial disclosure, keyed by account id. Omitted, a TikTok target publishes SELF_ONLY — TikTok requires the creator to choose, so we never pick a wider audience for them.

audioobject

Reel audio ({ audioId, audioVolume, videoVolume }). Instagram reels only, and only on an account connected through Facebook.

reelCoverobject

An Instagram reel's cover: { mediaId } — a JPEG of up to 8 MB from the media library — or { offsetMs }, a frame of the video in milliseconds, before it ends. One or the other. Instagram reels only, on either connection; dropped for any other format. On update, null goes back to Instagram's default, the first frame.

trialReelstring

Publish an Instagram reel as a trial: shown to non-followers first, and to followers once it graduates — by hand in the Instagram app (MANUAL) or by Instagram when it performs well (SS_PERFORMANCE). Instagram decides which accounts may post one; a refused trial fails rather than going out as a normal reel. On update, "" or null makes it a normal reel.

pinterestBoardsobject

Which board each Pinterest account pins to, keyed by account id (see GET /v1/accounts/:id/boards). Required to publish: a pin belongs to a board and Pinterest has no default, so a Pinterest target without one fails at publish time. A draft saves fine without it.

pinterestOptionsobject

Pinterest pin title ({ title }), max 100 characters. Separate from the caption, which becomes the 800-character description; unset, the caption’s first line is used.

linkUrlstring

The URL this post points at. Facebook publishes it as a link preview card; Pinterest makes it the pin’s destination. Every other platform ignores it.

recurrenceobject

Makes this an evergreen post: each occurrence is created after the previous one publishes. Not with an X account, whose rules forbid repeating a post.

Response

Success

Changes

No recorded changes to this operation across all 1 revision of this API.