Public APIPlatform Settings Reference

Platform Settings Reference

Per-platform settings, character limits, media specs, and threading support for the SocialRails API.

When creating posts via the API, each platform has specific capabilities, character limits, and settings fields. Use the platform_settings object on POST /posts to customize behavior per platform.

You can also discover these dynamically via GET /accounts/{id}/settings.


Platform Overview

PlatformChar LimitThreadMax ImagesMax VideosRequired Settings
Twitter280Yes41
LinkedIn3,000No91
Facebook420No101selectedPage
Instagram2,200No101
TikTok2,200No351
Bluesky300No41
Pinterest500No11selectedBoard
Threads500Yes101
YouTube5,000No01

Twitter

Character limit: 280 per post (4,000 per thread item)

Threading: Supported. Use the thread array field on POST /posts.

Settings:

FieldTypeDescription
selectedCommunitiesstring[]Community IDs to cross-post to

Example:

{
  "content": "Check out our new feature!",
  "platform": "twitter",
  "scheduled_for": "2026-03-15T14:30:00Z",
  "platform_settings": {
    "twitter": {
      "selectedCommunities": ["1234567890"]
    }
  }
}

Thread example:

{
  "content": "Thread incoming...",
  "platform": "twitter",
  "scheduled_for": "2026-03-15T14:30:00Z",
  "thread": [
    "1/ Here's an important thread about our product launch",
    "2/ We've been working on this for months",
    "3/ And here's what we learned along the way"
  ]
}

LinkedIn

Character limit: 3,000

Threading: Not supported.

Settings:

FieldTypeDescription
selectedLocationstringCompany page ID to post as (omit for personal profile)

Example:

{
  "content": "Excited to announce our Series A!",
  "platform": "linkedin",
  "platform_settings": {
    "linkedin": {
      "selectedLocation": "urn:li:organization:12345"
    }
  }
}

Facebook

Character limit: 420

Threading: Not supported.

Settings:

FieldTypeDefaultDescription
selectedPagestringFacebook Page ID to post to
selectedPagesstring[]Multiple Page IDs to post to
videoTypestring"reel"Video post type: "reel" or "post"

Facebook requires at least a selectedPage when posting to a Page. Discover available pages via POST /accounts/{id}/tools with {"tool": "pages"}.

Example:

{
  "content": "New blog post is live!",
  "platform": "facebook",
  "platform_settings": {
    "facebook": {
      "selectedPage": "123456789",
      "videoType": "reel"
    }
  }
}

Instagram

Character limit: 2,200

Threading: Not supported.

Settings:

FieldTypeDefaultDescription
postTypestring"reel""reel" or "story"

Instagram requires media for all posts. Include at least one image or video via the media field.

Example:

{
  "content": "Behind the scenes look",
  "platform": "instagram",
  "media": ["workspace-id/api-uploads/images/photo.jpg"],
  "platform_settings": {
    "instagram": {
      "postType": "reel"
    }
  }
}

TikTok

Character limit: 2,200

Threading: Not supported.

Settings:

FieldTypeDefaultDescription
privacy_statusstring"PUBLIC_TO_EVERYONE"PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY
interactionsobjectall true{ allow_comment, allow_duet, allow_stitch }
commercial_contentobjectall true{ enabled, your_brand, branded_content }
titlestring""Video title
post_modestring"DIRECT_POST""DIRECT_POST" or "UPLOAD_TO_INBOX"

Example:

{
  "content": "Check out this tutorial!",
  "platform": "tiktok",
  "media": ["workspace-id/api-uploads/videos/tutorial.mp4"],
  "platform_settings": {
    "tiktok": {
      "privacy_status": "PUBLIC_TO_EVERYONE",
      "interactions": { "allow_comment": true, "allow_duet": false, "allow_stitch": false },
      "title": "Quick tutorial",
      "post_mode": "DIRECT_POST"
    }
  }
}

Bluesky

Character limit: 300

Threading: Not supported.

Settings: No platform-specific settings.

Example:

{
  "content": "Hello Bluesky!",
  "platform": "bluesky",
  "scheduled_for": "2026-03-15T14:30:00Z"
}

Pinterest

Character limit: 500

Threading: Not supported.

Settings:

FieldTypeDescription
selectedBoardstringRequired. Board ID to pin to. Discover boards via POST /accounts/{id}/tools with {"tool": "boards"}.
destinationLinkstringURL the pin links to

Example:

{
  "content": "10 tips for better productivity",
  "platform": "pinterest",
  "media": ["workspace-id/api-uploads/images/pin-graphic.jpg"],
  "platform_settings": {
    "pinterest": {
      "selectedBoard": "board-id-123",
      "destinationLink": "https://example.com/blog/productivity-tips"
    }
  }
}

Threads

Character limit: 500 per post

Threading: Supported. Use the thread array field on POST /posts.

Settings:

FieldTypeDefaultDescription
reply_controlstring"everyone""everyone", "accounts_you_follow", "mentioned_only"

Example:

{
  "content": "New thread on Threads!",
  "platform": "threads",
  "platform_settings": {
    "threads": {
      "reply_control": "everyone"
    }
  }
}

YouTube

Character limit: 5,000

Threading: Not supported.

Settings: No platform-specific settings. YouTube posts require a video in the media field.

Example:

{
  "content": "New video: How to automate your social media workflow",
  "platform": "youtube",
  "media": ["workspace-id/api-uploads/videos/tutorial.mp4"],
  "scheduled_for": "2026-03-15T14:30:00Z"
}

Threading API

Threading is supported on Twitter and Threads. When using threads, the content field is still required but the thread array takes precedence.

Fields

FieldTypeDescription
threadstring[]Array of 2-25 content items. First = main post, rest = replies.
thread_mediaobjectMedia keys per thread index: {"0": ["key1"], "2": ["key2"]}
thread_delaynumberDelay between thread items in minutes (0-60, default 0)

Character limits per thread item

  • Twitter: 4,000 characters
  • Threads: 500 characters

Example: Twitter thread with media

{
  "content": "Thread start",
  "platform": "twitter",
  "scheduled_for": "2026-03-15T14:30:00Z",
  "thread": [
    "1/ Here's why we built SocialRails",
    "2/ The problem: managing 9 platforms is chaos",
    "3/ Our solution: one API to schedule everywhere",
    "4/ Try it free at socialrails.com"
  ],
  "thread_media": {
    "0": ["workspace-id/api-uploads/images/hero.jpg"],
    "2": ["workspace-id/api-uploads/images/diagram.png"]
  },
  "thread_delay": 0
}

Discovery Endpoints

Use these endpoints to programmatically discover platform capabilities and available tools for each connected account.

GET /accounts/{id}/settings

Returns character limits, media specs, threading support, available settings, workspace defaults, and available tools.

POST /accounts/{id}/tools

Trigger a discovery tool. Available tools per platform:

PlatformTools
Facebookpages
Pinterestboards
LinkedIncompanies
Twittercommunities

Example:

curl -X POST https://socialrails.com/api/v1/accounts/{id}/tools \
  -H "Authorization: Bearer sr_live_..." \
  -H "Content-Type: application/json" \
  -d '{"tool": "pages"}'

Frequently Asked Questions