Skip to content

Platform-Specific Options

One post object goes to every channel in the collection. The platforms object adds non-content behavior per platform.

{ "postAsStory": true }

Story behavior applies to supported Instagram and Facebook destinations. Other channels in the collection can fall back to a normal feed post, so confirm the collection’s channels before using it.

Split a caption into segments with triple newlines, and Nuelink publishes it as a thread of up to 10 segments:

{
"caption": "We rebuilt our checkout.\n\n\nIt's faster on mobile and takes two taps.\n\n\nHere's what changed: https://example.com/blog/checkout"
}

In JSON each \n is a newline, so \n\n\n is the separator.

To let Nuelink split the text for you instead, turn on automatic text splitting:

{ "autoThreadText": true }

Thread support varies by platform, so check how each channel in the collection renders the post, on a DRAFT first.

{
"poll": {
"question": "Which scent should return?",
"options": ["Rosewater", "Wild Fig", "Jasmine"],
"period": "3d"
}
}

Add a zero-based correct answer and an explanation to turn it into a quiz:

{
"poll": {
"question": "Which ingredient was in our first formula?",
"options": ["Bergamot", "Rosewater", "Lavender"],
"correctOptionIndex": 1,
"explanation": "Rosewater has been included since day one.",
"period": "1d"
}
}
FieldTypeRules
questionstringRequired, max 280 characters
optionsstring[]Required, 2–4 items, each max 30 characters
periodstringRequired, one of 1d, 3d, 7d
correctOptionIndexintegerOptional, zero-based, so option 2 is 1. The API doesn’t check it against options, so validate it yourself
explanationstringOptional, max 512 characters

A poll can stand in for caption, it’s the one case where a post doesn’t need caption text. Send a caption as well and it becomes the poll’s caption: when you read the post back, body is null and the text is in poll.caption.

Supported on LinkedIn, X, Telegram, Threads, Mastodon, and Bluesky. Other channels in the collection ignore the poll or fall back to caption-only.

{
"comment": {
"delay": 30,
"comment": "Tap the link in bio to learn more."
}
}
FieldTypeRules
delayintegerSeconds after publishing, >= 0
commentstring1–1000 characters

Fires on every channel in the collection that supports comments, with the same text everywhere.

link is a top-level field, not part of platforms:

{ "link": "https://example.com/products/spring" }

Google Business Profile uses it for the post’s LEARN_MORE button, and Pinterest uses it as the Pin’s destination link. Max 1000 characters. Elsewhere, put the URL in the caption if you want it in the post’s text.

{
"platforms": {
"instagram": {
"collab": "partner_username",
"location": { "id": "location_id", "name": "Brooklyn, NY" },
"trialReel": "MANUAL",
"shareToFeed": true
}
}
}
FieldTypeDescription
collabstringUsername of the Instagram account to invite as co-author (Instagram Collab). Max 1000 characters.
locationobjectGeotag. Needs id (Instagram’s location ID) and name (display name); both required when present.
trialReelstringShows the Reel to non-followers first to test it. MANUAL leaves sharing to followers up to you after the 72-hour trial; SS_PERFORMANCE auto-shares it if it performs well during the trial.
shareToFeedbooleanIf true, Reels are also shared to the main feed.
{
"platforms": {
"facebook": {
"location": { "id": "location_id", "name": "Brooklyn, NY" }
}
}
}

location takes both id and name, both required when the object is present.

{
"platforms": {
"tiktok": {
"sendToInbox": true,
"autoAddMusic": false
}
}
}
FieldTypeDescription
sendToInboxbooleanSend the scheduled video to the TikTok app inbox for native editing and manual completion instead of automatic publication
autoAddMusicbooleanAsk the TikTok publishing flow to add music automatically when supported

Both settings live under platforms.tiktok. REST validation, the live MCP schema, and CLI 1.4.5 all use this nested shape.

{
"platforms": {
"googlemybusiness": {
"uploadToPhotosSection": true
}
}
}
FieldTypeDescription
uploadToPhotosSectionbooleanIf true, the image is added to the location’s Photos section as well as being posted. Applies to image posts on Google Business Profile channels; no effect on other platforms in the collection.
{
"platforms": {
"youtube": {
"tags": ["skincare", "botanicals"],
"playlists": [
{ "channelId": 5001, "playlistIds": ["PL123", "PL456"] }
]
}
}
}

Each tags entry is max 255 characters. Each playlists entry pairs a Nuelink channelId with one or more YouTube playlistIds; the MCP schema requires at least one playlist ID per entry.

All three surfaces expose the same platform options:

OptionREST APICLIMCP
instagram.collab, location, trialReel, shareToFeedYesYesYes
facebook.locationYesYesYes
youtube.tags, youtube.playlistsYesYesYes
tiktok.sendToInbox, tiktok.autoAddMusicYesYesYes
googlemybusiness.uploadToPhotosSectionYesYesYes

The same goes for autoThreadText: it’s autoThreadText in the REST API and the MCP tool, and --auto-thread-text in the CLI.

{
"title": "Product launch",
"caption": "New season, new scents. Available Friday.",
"publishMode": "DRAFT",
"media": [{ "id": "encoded_media_id" }],
"alt": "Three candles arranged on a wooden table",
"platforms": {
"instagram": {
"collab": "partner_username",
"shareToFeed": true
},
"youtube": {
"tags": ["candles", "product-launch"]
}
},
"comment": {
"delay": 30,
"comment": "Learn more through the link in our profile."
}
}

Keep it on DRAFT while you’re checking how each destination renders it. Move to QUEUE or SCHEDULE once the dashboard shows what you expect.