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 — first comment, delete read, engage (2), reply
built, waiting on review
Instagram 2,200 — first comment 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 — 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.
quoteOfstring—An at:// uri or a bsky.app post url to quote. The quoted post appears embedded beneath yours.
contentLabelenumnone sexual nudity graphic-mediaContent warning
languagestring—BCP-47 code(s), e.g. en

Facebook

Built, awaiting permission. Facebook must grant access before PostLake can make these available:
  • messages: pages_messaging (Meta App Review, separate track from the Pages permissions)
  • posts.pageMentions: Page Mentioning (Meta App Review, required before Facebook resolves @[Page-ID] tokens as Page links)
  • liveVideo: Live Video API (Meta App Review)
OptionTypeValuesNotes
linkstring—URL shown as a link preview on text posts. Ignored for photo albums and videos.
locationIdstring—A Facebook Page / place id to tag on the post.
mentionPageIdsstring—Comma-separated Facebook Page IDs to append as mentions. The dashboard also supports inline @PageName mentions. Page Mentioning must be approved by Meta before Facebook resolves tokens as links.

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
placementenumfeed story storiesstory (or stories) publishes one JPEG or PNG image, or video, as an Instagram Story through either login route, subject to account eligibility. PostLake converts PNG to JPEG. Story text is not displayed; put visible text in the media.
shareToFeedboolean—Also show in feed (Reels) (video only)
locationIdstring—A Facebook Page place id to tag as the post's location.
collaboratorsstring—Comma-separated Instagram usernames to invite as collaborators.
thumbOffsetnumber—Milliseconds into a Reel to use as the cover thumbnail. (video only)
upcomingEventIdstring—The 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.
productIdsstring—Comma-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, awaiting permission. LinkedIn must grant access before PostLake can make these available:
  • reads.comments: r_member_social (LinkedIn grants it to selected partners only, not self-serve)
OptionTypeValuesNotes
visibilityenumPUBLIC CONNECTIONSWho can see it
allowReshareboolean—Allow resharing

Pinterest

OptionTypeValuesNotes
boardIdstring—Overrides the board chosen at connect time. List them with the account's targets.
boardSectionIdstring—Pins into a section of the board. Section ids come back from the account's targets, named as 'Board / Section'.
linkstring—Destination link
titlestringmax 100 charsShown in the Pinterest grid. Falls back to the post text when unset.
altTextstringmax 500 charsAlt text
thumbnailstring—Optional JPEG or PNG media id. It replaces PostLake's automatic video cover.

Threads

OptionTypeValuesNotes
replyControlenumeveryone accounts_you_follow mentioned_only parent_post_author_only followers_onlyWho can reply
topicTagstringmax 50 charsTopic tag
locationIdstring—A place id from GET /v1/discover/places. Ids from other networks will not work.
shareToInstagramboolean—Crossposts the published thread to the linked Instagram account. Ignored when no Instagram account is linked.
linkstring—URL shown as a link preview on a text post.
quotePostIdstring—The id of a Threads post to quote.
pollOptionsstring—Two to four options, comma separated, 25 characters each. Text-only posts.
allowlistedCountriesstring—ISO country codes, comma separated. Only these countries see the post.
spoilerboolean—Hide media behind a spoiler
replyApprovalsboolean—Approve 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)
allowCommentboolean—Defaults to on when omitted (API/MCP). Pass false to disable. Compose UI still starts unchecked per TikTok guidelines.
allowDuetboolean—Allow Duet (video only)
allowStitchboolean—Allow Stitch (video only)
coverTimestampMsnumber—Video cover frame (ms) (video only)
photoCoverIndexnumber—Cover image index (image only)
autoAddMusicboolean—Auto-add music (photo posts) (image only)
brandContentboolean—Paid partnership (branded content)
brandOrganicboolean—Promoting my own business
isAigcboolean—AI-generated content disclosure

X

OptionTypeValuesNotes
replySettingsenumeveryone following mentionedUsers subscribersWho can reply
superFollowersOnlyboolean—Super Followers only

YouTube

OptionTypeValuesNotes
privacyStatusenumpublic unlisted privatePrivacy
categoryIdstring—Category id
tagsstring—Tags (comma-separated)
titlestringmax 100 charsVideo title
madeForKidsboolean—Made 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