changedInput schema / properties / content / description
Previous value: -"The post text content. Optional — defaults to empty for media-only posts."New value: +"The post text content. Optional — defaults to empty for media-only posts. LinkedIn mentions: write @[Display Name](urn:li:organization:ID) for a Page or @[Display Name](urn:li:person:ID) for a person; search_mentions on a LinkedIn channel returns ready-made Page tokens. The token publishes as a real mention on LinkedIn and as plain @Display Name on other channels."
addedInput schema / properties / platformSpecific / properties / bluesky / properties / repostId
Added value: +{
+ "description": "With postTypeOverrides.bluesky = 'repost': the bsky.app post URL (or at:// URI) to repost.",
+ "type": "string"
+}
addedInput schema / properties / platformSpecific / properties / facebook / properties / thumbnailUrl
Added value: +{
+ "description": "Cover image URL for a video or Reel. Facebook only accepts a cover once the video exists, so it is applied after the video publishes and appears a moment after the post; a cover that cannot be fetched or that Facebook rejects leaves the video published with Facebook's own chosen frame rather than failing the post.",
+ "type": "string"
+}
addedInput schema / properties / platformSpecific / properties / instagram / properties / collaborators / description
Added value: +"Comma-separated Instagram usernames (no leading @) tagged as co-authors. Applies with postTypeOverrides.instagram of 'feed_photo', 'feed_video', 'reel' or 'carousel' — on a carousel the co-authors are set on the carousel itself, not on its individual items. Ignored on 'story', which has no co-author concept."
addedInput schema / properties / platformSpecific / properties / instagram / properties / coverUrl
Added value: +{
+ "description": "Cover image URL for a video or Reel. Takes precedence over thumbnailTimestamp: Instagram accepts one or the other and rejects a request carrying both, so only this one is forwarded when both are sent.",
+ "type": "string"
+}
addedInput schema / properties / platformSpecific / properties / instagram / properties / graduationStrategy / description
Added value: +"How a trial reel becomes a normal one: 'manual' (the creator releases it) or 'auto' (released automatically if it performs well). Default 'manual'. Ignored unless trialReel is true."
addedInput schema / properties / platformSpecific / properties / instagram / properties / thumbnailTimestamp / description
Added value: +"Cover frame for a video or Reel, in seconds from the start. Applies to postTypeOverrides.instagram of 'feed_video' or 'reel'. Ignored when coverUrl is also set."
addedInput schema / properties / platformSpecific / properties / instagram / properties / trialReel / description
Added value: +"Publish as a trial reel, shown to people who do not follow the account first. Only takes effect with postTypeOverrides.instagram of 'reel' — a 'feed_video' publishes as an ordinary reel and this is ignored, even though both use the same underlying reel container."
addedInput schema / properties / platformSpecific / properties / mastodon / properties / repostId
Added value: +{
+ "description": "With postTypeOverrides.mastodon = 'repost': the status URL or ID to boost.",
+ "type": "string"
+}
addedInput schema / properties / platformSpecific / properties / threads / properties / locationId
Added value: +{
+ "description": "Numeric place ID from get_channel_options with a `q` search on a Threads channel. Only works once the channel has granted location tagging.",
+ "type": "string"
+}
addedInput schema / properties / platformSpecific / properties / threads / properties / repostId
Added value: +{
+ "description": "With postTypeOverrides.threads = 'repost': the numeric ID of the Threads post to repost (Threads links cannot be used; the ID of a post published through BulkPublish is in get_post's platforms[].platformPostId).",
+ "type": "string"
+}
addedInput schema / properties / platformSpecific / properties / threads / properties / topicTag
Added value: +{
+ "description": "One topic tag for the post, without a leading '#'. Must not contain periods or ampersands.",
+ "type": "string"
+}
addedInput schema / properties / platformSpecific / properties / tiktok / properties / thumbnailTimestamp / description
Added value: +"Cover frame for the video, in seconds from the start."
changedInput schema / properties / platformSpecific / properties / tumblr / description
Previous value: -"Tumblr options, nested under the BulkPublish channel id: { \"12\": { \"blogName\": \"myblog\", \"tags\": [\"art\"] } }. A flat object applies to every Tumblr channel on the post. Up to 30 images OR exactly one video per post."New value: +"Tumblr options, nested under the BulkPublish channel id: { \"12\": { \"blogName\": \"myblog\", \"tags\": [\"art\"] } } (tags: array of strings or one comma-separated string). A flat object applies to every Tumblr channel on the post. Up to 30 images OR exactly one video per post."
addedInput schema / properties / platformSpecific / properties / x / properties / repostId
Added value: +{
+ "description": "With postTypeOverrides.x = 'repost': the X post URL or ID to repost (retweet).",
+ "type": "string"
+}
changedInput schema / properties / postTypeOverrides / properties / bluesky / enum
Previous value: -[
- "post",
- "video"
-]New value: +[
+ "post",
+ "video",
+ "thread",
+ "repost"
+]
changedInput schema / properties / postTypeOverrides / properties / mastodon / enum
Previous value: -[
- "post"
-]New value: +[
+ "post",
+ "thread",
+ "repost"
+]
changedInput schema / properties / postTypeOverrides / properties / threads / enum
Previous value: -[
- "text",
- "image",
- "video",
- "carousel"
-]New value: +[
+ "text",
+ "image",
+ "video",
+ "carousel",
+ "repost"
+]
changedInput schema / properties / postTypeOverrides / properties / x / enum
Previous value: -[
- "tweet",
- "video",
- "thread"
-]New value: +[
+ "tweet",
+ "video",
+ "thread",
+ "repost"
+]
addedInput schema / properties / publishWhenApproved
Added value: +{
+ "description": "Optional (default false). Set true on a post that waits for approval when it should go out as soon as it is approved, even if that is after its scheduled time. This is how someone who needs approval says 'publish now': status 'scheduled', scheduledAt = now, requestApproval true (or a contributor key), publishWhenApproved true. An approval arriving more than 15 minutes late then publishes immediately; with false it is approved but returned to draft for a new time. Stored only when the post ends up approvalStatus 'pending'; otherwise saved as false.",
+ "type": "boolean"
+}
changedInput schema / properties / threadParts / description
Previous value: -"Thread parts array. Required when postFormat is thread (min 2 parts)."New value: +"Thread parts array. Required when postFormat is thread (min 2 parts). EVERY part is measured against the character limit of every platform the post targets, not only the first — an over-long part is rejected with 400 VALIDATION_ERROR naming the part number, the platform and its limit. URLs count as 23 characters on X and Mastodon, their real length elsewhere."
addedOutput schema / properties / approver
Added value: +{
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {},
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Who approved it: { id, name, image }. Null unless approvalStatus is approved."
+}
addedOutput schema / properties / assignee
Added value: +{
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {},
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Who is expected to act on it next: { id, name, image }. Null when nobody is."
+}
addedOutput schema / properties / author
Added value: +{
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {},
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Who wrote the post: { id, name, image }. Null when that account is gone."
+}