Platforms and settings
Platforms you can connect
The identifier is the identifier in GET /integrations and the :platform in GET /social/:platform.
| Platform | Identifier | Plans |
|---|---|---|
| Facebook Page | facebook |
Starter, Pro, Business |
| Instagram (Facebook Business) | instagram |
Starter, Pro, Business |
linkedin |
Starter, Pro, Business | |
| TikTok | tiktok |
Starter, Pro, Business |
| YouTube | youtube |
Pro, Business |
| Threads | threads |
Pro, Business |
| Bluesky | bluesky |
Pro, Business |
| Mastodon | mastodon |
Pro, Business |
| Telegram | telegram |
Pro, Business |
| X | x |
Business |
| Discord | discord |
Business |
Asking to connect a platform outside your plan answers 402.
Bluesky and Telegram are connected in the Postra app, not through GET /social/:platform. Once connected, you post to them through the API like any other channel.
Text and media rules
Postra checks every post against these rules before it saves it. A post that breaks one gets a 400 naming the channel.
| Platform | Most characters | Media |
|---|---|---|
| Facebook Page | 63,206 | Text only, photos, or a video. A story needs at least one photo or video. |
| 2,200 | At least one photo or video, up to 10. A trial reel is one video. | |
| 3,000 | One video on its own, or images. A carousel needs 2 or more images and no video. Follow-up parts (comments) are text only. | |
| TikTok | 2,000 | At least one item: one video, or one or more pictures. Never a video with other items. |
| YouTube | 5,000 | Exactly one video. |
| Threads | 500 | No extra checks |
| Bluesky | 300 | Up to 4 pictures, or 1 video, in each part. |
| Mastodon | 500 | Up to 4 images, or 1 video or GIF on its own, in each part. |
| Telegram | 4,096 | No extra checks |
| X | 280, or 4,000 for X Premium accounts | Up to 4 images, or 1 video or GIF on its own, in each part. |
| Discord | 1,980 | No extra checks |
On X and Mastodon, a link counts as 23 characters, as it does on the platform itself.
GET /integration-settings/:id gives you the same rules and limits for one of your channels.
Settings for each platform
Platform options go in settings, next to integration and value in each item of posts:
{
"integration": { "id": "8d3f1c2a-5b6e-4f7a-9c0d-1e2f3a4b5c6d" },
"value": [{ "content": "Fresh sourdough every Saturday.", "image": [] }],
"settings": { "who_can_reply_post": "everyone" }
}
Platforms with required settings: Instagram, TikTok, YouTube, X and Discord. A post without them is refused with 400, drafts included.
Threads, Bluesky and Telegram have no settings. Leave settings out.
Facebook Page (facebook)
All settings are optional.
| Field | Values | Meaning |
|---|---|---|
post_type |
post or story |
A normal post or a story. Default post. |
url |
A web address | A link to attach to the post |
Instagram (instagram)
| Field | Required | Values | Meaning |
|---|---|---|---|
post_type |
yes | post or story |
A normal post or a story |
is_trial_reel |
no | true or false |
A trial reel: shown only to people who do not follow you, at first |
graduation_strategy |
no | MANUAL or SS_PERFORMANCE |
How a trial reel reaches your followers: by hand, or automatically based on how it performs. Default MANUAL. |
collaborators |
no | A list of {"label": "username"} |
Accounts to invite as collaborators. Not used for stories. |
"settings": {
"post_type": "post",
"collaborators": [{ "label": "northsidecoffee" }]
}
LinkedIn (linkedin)
All settings are optional.
| Field | Values | Meaning |
|---|---|---|
post_as_images_carousel |
true or false |
Publish the images as a carousel |
carousel_name |
Text | Name of the carousel slides. Default slides. |
TikTok (tiktok)
| Field | Required | Values | Meaning |
|---|---|---|---|
privacy_level |
yes | PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY |
Who can see the post |
duet |
yes | true or false |
Allow duets |
stitch |
yes | true or false |
Allow stitches |
comment |
yes | true or false |
Allow comments |
autoAddMusic |
yes | yes or no |
Let TikTok add music to a photo post |
brand_content_toggle |
yes | true or false |
The post promotes a third party (branded content) |
brand_organic_toggle |
yes | true or false |
The post promotes your own business |
content_posting_method |
yes | DIRECT_POST or UPLOAD |
Publish straight away, or send it to TikTok to finish and publish in the TikTok app |
disclose |
no | true or false |
The post is commercial content |
title |
no | Up to 90 characters | Title of a photo post |
video_made_with_ai |
no | true or false |
The content was made with AI |
Rules for direct posts:
- With
disclose: true, setbrand_organic_toggleorbrand_content_toggle(or both) totrue. - Branded content (
brand_content_toggle: true) cannot useSELF_ONLY. - TikTok can limit which privacy levels an account may use.
"settings": {
"privacy_level": "PUBLIC_TO_EVERYONE",
"duet": false,
"stitch": false,
"comment": true,
"autoAddMusic": "no",
"brand_content_toggle": false,
"brand_organic_toggle": false,
"content_posting_method": "DIRECT_POST"
}
YouTube (youtube)
| Field | Required | Values | Meaning |
|---|---|---|---|
title |
yes | 2 to 100 characters | Video title. The post text becomes the description. |
type |
yes | public, private or unlisted |
Who can see the video |
selfDeclaredMadeForKids |
no | yes or no |
The video is made for children |
thumbnail |
no | {"id", "path"} of an uploaded image |
Custom thumbnail. See Uploading media. |
tags |
no | A list of {"value", "label"} |
Video tags. 500 characters at most for all tags together. |
"settings": {
"title": "Our autumn menu",
"type": "public",
"selfDeclaredMadeForKids": "no",
"tags": [{ "value": "baking", "label": "baking" }]
}
X (x)
| Field | Required | Values | Meaning |
|---|---|---|---|
who_can_reply_post |
yes | everyone, following, mentionedUsers, subscribers, verified |
Who can reply |
community |
no | https://x.com/i/communities/<number> |
Post to an X community |
made_with_ai |
no | true or false |
The content was made with AI |
paid_partnership |
no | true or false |
The post is a paid partnership |
"settings": {
"who_can_reply_post": "everyone"
}
Mastodon (mastodon)
All settings are optional.
| Field | Values | Meaning |
|---|---|---|
visibility |
public (default), unlisted, private |
Who can see the post: everyone; everyone, but not in public timelines; followers only. |
Replies in a thread go out with the same visibility as the post.
Discord (discord)
| Field | Required | Values | Meaning |
|---|---|---|---|
channel |
yes | A Discord channel id | The Discord channel to post in. It must be on the server you connected. |
To list the channels you can use, run the channel’s channels tool:
curl https://app.postra.co.uk/api/public/v1/integration-trigger/3b9e2d1f-6a7c-4b8d-9e0f-1a2b3c4d5e6f \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"methodName": "channels", "data": {}}'
Then use an id from the answer:
"settings": {
"channel": "1234567890123456789"
}