Guides

Platform support

The call is identical everywhere, but each network has its own rules. Here's the current picture. And how to read the live limits programmatically.

NetworkCaptionRatePublishing extrasManaging
Bluesky 300 threads, first comment, delete read, engage (10), reply, DMs, profile
Facebook 63,206 25/day first comment, delete read, engage (2), reply
built, waiting on review
Instagram 2,200 100/day first comment, delete read, engage (2), reply, DMs
LinkedIn 3,000 first comment, delete engage (2), reply
built, waiting on review
Pinterest 500 delete read, engage (3)
Threads 500 250/day first comment, delete read, reply
TikTok 2,200 / 4,000 25/day not yet not yet
X 280 threads, first comment, delete read, reply, DMs
YouTube 5,000 100/day first comment, delete read, engage (4), reply

Caption shows video / photo where a network caps them differently. Engage counts the actions available. Every figure is read from the same table the API validates against, so it cannot disagree with what a call will actually do. Read it programmatically with GET /v1/platforms.

Network by network

Bluesky

OptionTypeValuesNotes
whoCanReplyenumeverybody nobody mentioned followingWho can reply
whoCanQuoteenumeverybody nobodyBluesky calls this a postgate. 'nobody' stops anyone quote-posting it.
quoteOfstringAn at:// uri or a bsky.app post url to quote. The quoted post appears embedded beneath yours.
contentLabelenumnone sexual nudity graphic-mediaContent warning
languagestringBCP-47 code(s), e.g. en

Facebook

Built, waiting on permission. These work in the code and are switched off until Facebook grants access:
  • messages: pages_messaging (Meta App Review, separate track from the Pages permissions)
  • discovers.creators: facebook_creator_marketplace_discovery is granted and the adapter is written, but Meta has not published a creator_marketplace_creators edge on the Page node, so the call names that rather than pretending a search worked. Instagram's equivalent edge is documented and does work.
OptionTypeValuesNotes
linkstringURL shown as a link preview on text posts. Ignored for photo albums and videos.
locationIdstringA Facebook Page / place id to tag on the post.
mentionPageIdsstringComma-separated Facebook Page ids to mention. Facebook takes mentions inline in the message, so we place them for you at the end of the post.

Instagram

Two ways to connect

What a connection can do depends on how it was made, not only on which network it is. Pass variant when you create a connect link.

OptionTypeValuesNotes
shareToFeedbooleanAlso show in feed (Reels) (video only)
locationIdstringA Facebook Page place id to tag as the post's location.
collaboratorsstringComma-separated Instagram usernames to invite as collaborators.
thumbOffsetnumberMilliseconds into a Reel to use as the cover thumbnail. (video only)
upcomingEventIdstringThe id of a scheduled event on the account, from the events call. Puts a reminder button on the post. Events are created in the Instagram app.
productIdsstringComma-separated product ids from your Instagram catalogue. Find them with the products call on the account. Photos only: Instagram does not take shopping tags on video. (image only)

LinkedIn

Built, waiting on permission. These work in the code and are switched off until LinkedIn grants access:
  • reads.comments: r_member_social (LinkedIn grants it to selected partners only, not self-serve)
OptionTypeValuesNotes
visibilityenumPUBLIC CONNECTIONSWho can see it
allowResharebooleanAllow resharing

Pinterest

OptionTypeValuesNotes
boardIdstringOverrides the board chosen at connect time. List them with the account's targets.
boardSectionIdstringPins into a section of the board. Section ids come back from the account's targets, named as 'Board / Section'.
linkstringDestination link
titlestringmax 100 charsShown in the Pinterest grid. Falls back to the post text when unset.
altTextstringmax 500 charsAlt text
thumbnailstringA JPEG or PNG media id. If omitted, Pinterest uses frame 0 of the video.

Threads

OptionTypeValuesNotes
replyControlenumeveryone accounts_you_follow mentioned_only parent_post_author_only followers_onlyWho can reply
topicTagstringmax 50 charsTopic tag
locationIdstringA place id from GET /v1/discover/places. Ids from other networks will not work.
shareToInstagrambooleanCrossposts the published thread to the linked Instagram account. Ignored when no Instagram account is linked.
linkstringURL shown as a link preview on a text post.
quotePostIdstringThe id of a Threads post to quote.
pollOptionsstringTwo to four options, comma separated, 25 characters each. Text-only posts.
allowlistedCountriesstringISO country codes, comma separated. Only these countries see the post.
spoilerbooleanHide media behind a spoiler
replyApprovalsbooleanApprove replies before they show

TikTok

OptionTypeValuesNotes
modeenumdirect inboxdirect = publish immediately; inbox = send to the creator's TikTok inbox as a draft they finish inside the TikTok app (max 5 pending per 24h, needs the video.upload scope).
privacyLevelenumPUBLIC_TO_EVERYONE MUTUAL_FOLLOW_FRIENDS FOLLOWER_OF_CREATOR SELF_ONLYMust be one of the creator's available options (see publish-info). Defaults to PUBLIC_TO_EVERYONE for API calls.
titlestringmax 90 charsPhoto post title (image only)
allowCommentbooleanDefaults to on when omitted (API/MCP). Pass false to disable. Compose UI still starts unchecked per TikTok guidelines.
allowDuetbooleanAllow Duet (video only)
allowStitchbooleanAllow Stitch (video only)
coverTimestampMsnumberVideo cover frame (ms) (video only)
photoCoverIndexnumberCover image index (image only)
autoAddMusicbooleanAuto-add music (photo posts) (image only)
brandContentbooleanPaid partnership (branded content)
brandOrganicbooleanPromoting my own business
isAigcbooleanAI-generated content disclosure

X

OptionTypeValuesNotes
replySettingsenumeveryone following mentionedUsers subscribersWho can reply
superFollowersOnlybooleanSuper Followers only

YouTube

OptionTypeValuesNotes
privacyStatusenumpublic unlisted privatePrivacy
categoryIdstringCategory id
tagsstringTags (comma-separated)
titlestringmax 100 charsVideo title
madeForKidsbooleanMade for kids
licenseenumyoutube creativeCommonLicense

Read the live capabilities

Don't hard-code limits. GET /v1/platforms (all) and GET /v1/platforms/{platform} (one) return the authoritative, current capability set for each network. Max characters, media rules, posts/day, async-publish behaviour, and the valid platformOptions. Agents use this to validate a post before sending it.

{
  "platform": "bluesky", "displayName": "Bluesky",
  "maxChars": 300, "asyncPublish": false,
  "media": { "images": 4, "video": true }
}

Quirks worth knowing