Skip to Content
Supported Platforms

Supported Platforms

VoxBurst supports publishing to multiple social media platforms. Some are live and available today. Others are integrated and in the pipeline — their developer API applications are pending review and approval from each platform. Check the status column below before building against a specific platform.

Platforms marked Pending approval are not yet available for publishing. Their developer API applications are under review by each platform. You can store account credentials in preparation, but post publishing will return an error until approval is granted.

Platforms overview

PlatformConstantStatus
Twitter / XTWITTERLive
LinkedInLINKEDINLive
BlueskyBLUESKYLive
InstagramINSTAGRAMLive
FacebookFACEBOOKLive
ThreadsTHREADSLive
YouTubeYOUTUBELive
MastodonMASTODONLive
TikTokTIKTOKPending approval
PinterestPINTERESTPending approval
RedditREDDITPending approval
SnapchatSNAPCHATPending approval
TelegramTELEGRAMPending approval
Google Business ProfileGOOGLE_BUSINESSPending approval
WhatsApp BusinessWHATSAPPLive

Platform Capabilities

PlatformSchedulingMedia UploadFirst CommentCharacter Limit
Twitter / X✓ (4 imgs, 1 vid)280
LinkedIn✓ (20 imgs, 1 vid)3,000
Bluesky✓ (4 imgs, 1 vid)300
Instagram✓ (10 imgs/vids)2,200
Facebook✓ (10 imgs, 1 vid)✗ †63,206
Threads✓ (10 imgs, 1 vid)500
TikTok✓ (35 imgs, 1 vid)2,200
YouTube✓ (video only)5,000
Pinterest✓ (5 imgs, 1 vid)500
Reddit✓ (1 img)40,000
Snapchat✓ (1 img/vid)80
Telegram✓ (10 imgs, 1 vid)4,096
Google Business Profile✓ (10 imgs, 1 vid)1,500
Mastodon✓ (4 imgs, 1 vid)500
WhatsApp Business✓ (30 imgs, 1 vid)4,096

Legend: ✓ = Supported, ✗ = Not supported. “Scheduling” refers to VoxBurst-managed scheduling via EventBridge — it does not require native platform scheduling support.

† Facebook first comment — pending Meta API approval. First-comment posting on Facebook requires the pages_manage_engagement permission, which is under review by Meta. Posts with firstComment set will publish normally — the comment will be silently skipped on Facebook until approval is granted. This feature will be re-enabled automatically once the permission is approved.


Content Types by Platform

Use contentType on post creation to signal the format of your content. Platforms that do not support a content type will reject the post at validation time.

PlatformTextImageVideoGIFDocument
Twitter / X
LinkedIn
Instagram
Facebook
Bluesky
Threads
TikTok
YouTube
Pinterest
Reddit
Snapchat
Telegram
Google Business
Mastodon
WhatsApp Business

YouTube does not support image posts. Thumbnails can be attached as companion images alongside a video but are not published as standalone image posts. Reddit supports single-image posts only — galleries and video are not yet implemented.


Content Limits

PlatformMax TextMax ImagesMax Video LengthNotes
Twitter / X280 chars42:20 minLinks count as 23 chars
LinkedIn3,000 chars2010 minCompany page posts supported; PDFs supported
Instagram2,200 chars1090 secImage or video required for feed posts
Facebook63,206 chars104 hoursPages and personal profiles
Bluesky300 graphemes43 minVideo launched Sept 2024
Threads500 chars105 minMeta platform
TikTok2,200 chars3510 minPhoto mode supports up to 35 images
YouTube5,000 chars012 hoursVideo-only; thumbnails accepted as companion images
Pinterest500 chars51 minRequires a destination link URL
Reddit40,000 chars1N/ASingle image only; gallery and video not yet implemented
Snapchat80 chars11 minPosts to Spotlight / Story via marketing API
Telegram4,096 chars101 hourBot-token auth; supports document uploads
Google Business Profile1,500 chars1030 secBusiness posts (Updates, Offers, Events)
Mastodon500 chars45 minDefault limit; varies by instance
WhatsApp Business4,096 chars303 minRequires Business API access and Meta verification

Cross-Platform Quick Comparison

PlatformcontentType valuesStoriesFirst CommentMax MediaText Limit
Twitter / XTEXT IMAGE VIDEO THREAD4 img / 1 vid280 chars
LinkedInTEXT IMAGE VIDEO DOCUMENT20 img / 1 vid3,000 chars
InstagramIMAGE VIDEO CAROUSEL REEL✗ (API)10 img+vid2,200 chars
FacebookTEXT IMAGE VIDEO10 img / 1 vid63,206 chars
BlueskyTEXT IMAGE VIDEO4 img / 1 vid300 graphemes
ThreadsTEXT IMAGE VIDEO10 img / 1 vid500 chars
YouTubeVIDEO only1 video5,000 chars
MastodonTEXT IMAGE VIDEO4 img / 1 vid500 chars*

* Mastodon character limit varies by instance. Default is 500.

When targeting multiple platforms in a single post, VoxBurst sends each platform its own copy. Use platformOverrides to customize content per platform if your caption, hashtags, or links need to differ.


Twitter / X

  • Constant: TWITTER
  • Character limit: 280 (links count as 23 characters regardless of length)
  • Media: Up to 4 images, or 1 video (max 2:20), or 1 GIF
  • Scheduling: ✅ Supported
  • First comment: ✅ Supported
  • Auth: OAuth 2.0 with PKCE — TWITTER_CLIENT_ID, TWITTER_CLIENT_SECRET

Supported content types

contentTypeSupportedNotes
TEXTPlain text post
IMAGE1–4 images
VIDEO1 video, max 2:20
THREADUse threadPosts array
CAROUSELNot supported
REELNot supported
STORYNot supported

Validation rules

  • 280 characters per tweet; links always count as 23 characters regardless of actual length
  • Images: max 5 MB JPG/PNG, max 15 MB GIF, max 4 images per tweet
  • Video: max 512 MB, max 2:20 duration, H.264, AAC audio
  • Cannot mix images and video in a single tweet

Common failures

ErrorCauseFix
CONTENT_TOO_LONGCaption over 280 charsShorten or use a Thread
MEDIA_MIXED_TYPESImages and video togetherUse only images or only video
GIF_TOO_LARGEAnimated GIF over 15 MBReduce GIF size
DUPLICATE_CONTENTTwitter rejects identical postsChange the caption slightly

MCP example

create_post( content: "Just launched our new feature! 🚀 Check it out at the link below.", accountIds: ["acc_twitter_abc123"], contentType: "IMAGE", mediaUrls: ["https://cdn.example.com/feature-screenshot.jpg"] )

LinkedIn

  • Constant: LINKEDIN
  • Character limit: 3,000 for posts
  • Media: Up to 20 images, or 1 video (10 min max), or 1 PDF document
  • Scheduling: ✅ Supported
  • First comment: ✅ Supported
  • Account types: Personal profiles and company pages (organization URN selection required for company pages)
  • Auth: OAuth 2.0 — LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET

Supported content types

contentTypeSupportedNotes
TEXTText-only post
IMAGE1–20 images
VIDEO1 video, max 10 min
DOCUMENT1 PDF, max 100 MB
CAROUSELUse IMAGE with multiple images instead
REELNot supported
STORYNot supported

Validation rules

  • 3,000 character limit for post text
  • Company page posts require the connected account to have Admin or Content Admin role
  • PDF documents max 100 MB; 300 page limit
  • Video: max 5 GB, max 10 min; H.264 recommended

Common failures

ErrorCauseFix
INSUFFICIENT_PERMISSIONSNot an admin of the company pageVerify admin role in LinkedIn
CONTENT_TOO_LONGOver 3,000 charsShorten the post
DOCUMENT_TOO_LARGEPDF over 100 MBCompress the PDF
VIDEO_PROCESSING_FAILEDUnsupported video codecRe-encode to H.264

MCP example

create_post( content: "Excited to share our latest case study. Here is what we learned about scaling content operations across 12 platforms.", accountIds: ["acc_linkedin_abc123"], contentType: "DOCUMENT", mediaIds: ["media_casestudy_pdf_abc123"] )

Bluesky

  • Constant: BLUESKY
  • Character limit: 300 graphemes
  • Media: Up to 4 images, or 1 video (3 min max)
  • Scheduling: ✅ Supported
  • First comment: ✗ Not supported
  • Protocol: AT Protocol (atproto)
  • Auth: App passwords — no OAuth app credentials required; users authenticate with their bsky.app app password

Supported content types

contentTypeSupportedNotes
TEXTText-only post
IMAGE1–4 images
VIDEO1 video, max 3 min
CAROUSELNot supported
REELNot supported
STORYNot supported

Validation rules

  • 300 graphemes, not 300 characters — emoji count as 1 grapheme each
  • Links are embedded as card previews; they count toward the 300 grapheme limit
  • 4 images maximum; max 1 MB per image
  • Video support added September 2024; max 3 min

Common failures

ErrorCauseFix
CONTENT_TOO_LONGOver 300 graphemes (check emoji-heavy posts)Count graphemes, not characters
INVALID_APP_PASSWORDApp password revoked or expiredRe-connect account in VoxBurst settings
IMAGE_TOO_LARGEImage over 1 MBCompress before uploading

MCP example

create_post( content: "New blog post: How we built our content calendar from scratch. Link in thread.", accountIds: ["acc_bluesky_abc123"], contentType: "TEXT" )

Instagram

  • Constant: INSTAGRAM
  • Character limit: 2,200 for captions
  • Media: Required — at least 1 image or video (up to 10 per carousel); Reels supported
  • Scheduling: ✅ Supported
  • First comment: ✅ Supported
  • Account types: Instagram Business or Creator accounts only
  • Auth: OAuth 2.0 via Facebook Graph API — META_APP_ID, META_APP_SECRET
  • Supported content types: IMAGE (single feed photo), VIDEO (feed video), CAROUSEL (2–10 images/videos), REEL (short-form video). Always set contentType when posting to Instagram.
  • Stories: STORY is not supported — the Instagram Graph API does not allow third-party apps to publish Stories. Posts with contentType: STORY targeting Instagram will be rejected.

Instagram requires a Business or Creator account connected through the Facebook Graph API. Personal Instagram accounts are not supported.

Supported content types

contentTypeSupportedNotes
IMAGESingle feed photo
VIDEOFeed video, max 90 sec
CAROUSEL2–10 images or videos
REELShort-form video
STORYGraph API restriction — not supported
TEXTMedia required; text-only posts rejected

Validation rules

  • Media is required on every post — no text-only posts
  • contentType is required — omitting it causes rejection
  • Aspect ratio: 4:5 to 1.91:1 (portrait to landscape); Reels should be 9:16
  • Images must be JPEG, PNG (auto-converted to JPEG), or WebP (auto-converted)
  • Video: max 90 seconds for feed; max 4K resolution; H.264 codec recommended
  • Caption max 2,200 characters

Common failures

ErrorCauseFix
MEDIA_REQUIREDNo media providedAdd mediaUrls or mediaIds
CONTENT_TYPE_REQUIREDcontentType omittedAdd contentType: "IMAGE"
CONTENT_TYPE_NOT_SUPPORTEDcontentType: "STORY" usedUse IMAGE, VIDEO, CAROUSEL, or REEL
ASPECT_RATIO_INVALIDImage outside 4:5–1.91:1Re-crop to a supported ratio
ACCOUNT_TYPE_NOT_SUPPORTEDPersonal Instagram accountAccount must be Business or Creator
MEDIA_REJECTED (9004)Non-JFIF JPEG streamVoxBurst normalizes images; retry or use /fix with fresh media

MCP example

See the full Post to Instagram via MCP guide for complete examples.

create_post( content: "Launch day. Shipping now. 🚀", accountIds: ["acc_instagram_abc123"], contentType: "CAROUSEL", mediaUrls: ["https://cdn.example.com/a.jpg", "https://cdn.example.com/b.jpg"], scheduledFor: "2026-06-01T15:00:00Z", firstComment: "Link in bio for details." )

Facebook

  • Constant: FACEBOOK
  • Character limit: 63,206 characters
  • Media: Up to 10 images or 1 video (4 hours max)
  • Scheduling: ✅ Supported
  • First comment: ✅ Supported
  • Account types: Pages (personal profiles have limited API access); page ID selection required via POST /v1/accounts/:id/select-page
  • Auth: OAuth 2.0 via Facebook Graph API — META_APP_ID, META_APP_SECRET

Supported content types

contentTypeSupportedNotes
TEXTText-only page post
IMAGE1–10 images
VIDEO1 video, max 4 hours
CAROUSELNot a native Facebook post type
REELFacebook Reels not yet supported
STORYNot supported

Validation rules

  • Must be posting to a Facebook Page — personal profiles have limited API access
  • 63,206 character limit (effectively unlimited for normal use)
  • Video: max 10 GB, max 4 hours; H.264 recommended

Common failures

ErrorCauseFix
PAGE_NOT_SELECTEDAccount connected but no page chosenCall POST /v1/accounts/:id/select-page
INSUFFICIENT_PERMISSIONSMissing pages_manage_posts scopeRe-connect the Facebook account
VIDEO_TOO_LARGEVideo over 10 GBCompress or shorten

MCP example

create_post( content: "We are hiring! Three open roles on our engineering team. Apply at the link below.", accountIds: ["acc_facebook_abc123"], contentType: "IMAGE", mediaUrls: ["https://cdn.example.com/hiring-banner.jpg"] )

Threads

  • Constant: THREADS
  • Character limit: 500 characters
  • Media: Up to 10 images or 1 video (5 min max)
  • Scheduling: ✅ Supported
  • First comment: ✗ Not supported
  • Note: Threads is a Meta platform; requires an Instagram Business or Creator account
  • Auth: OAuth 2.0 — THREADS_APP_ID, THREADS_APP_SECRET (falls back to Meta credentials)

Supported content types

contentTypeSupportedNotes
TEXTText-only Thread
IMAGE1–10 images
VIDEO1 video, max 5 min
CAROUSELNot a Threads concept
REELNot supported
STORYNot supported

Validation rules

  • Requires an Instagram Business or Creator account to be connected
  • 500 character limit
  • Video: max 5 minutes

Common failures

ErrorCauseFix
INSTAGRAM_ACCOUNT_REQUIREDNo Instagram Business/Creator account connectedConnect an Instagram account first
CONTENT_TOO_LONGOver 500 charsShorten the text

MCP example

create_post( content: "Big news coming tomorrow. Stay tuned. 🔔", accountIds: ["acc_threads_abc123"], contentType: "TEXT" )

TikTok

  • Constant: TIKTOK
  • Character limit: 2,200 characters
  • Media: Up to 35 images (photo mode carousel), or 1 video (3 sec–10 min, up to 4 GB)
  • Scheduling: ✅ Supported
  • First comment: ✅ Supported (requires comment.list.manage scope approval from TikTok)
  • Video specs: H.264 or HEVC; up to 3840×2160; aspect ratios 9:16, 1:1, 4:5
  • Auth: OAuth 2.0 — TIKTOK_CLIENT_KEY, TIKTOK_CLIENT_SECRET

TikTok’s Content Posting API requires app review and approval from TikTok before live publishing. Test mode is available during development.


YouTube

  • Constant: YOUTUBE
  • Character limit: 5,000 for video descriptions
  • Media: Video required (up to 12 hours / 256 GB); thumbnail image optional
  • Scheduling: ✅ Supported (native YouTube scheduling)
  • First comment: ✅ Supported
  • Shorts: Videos ≤60 seconds in 9:16 format are automatically published as YouTube Shorts
  • Rate limit: 6 uploads per day, 3 per hour
  • Auth: OAuth 2.0 via Google — GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET

YouTube has strict daily upload quota limits enforced by the YouTube Data API. The default quota is 6 video uploads per day per channel. Contact Google to request a quota increase for high-volume use cases.

Supported content types

contentTypeSupportedNotes
VIDEORequired — only content type
TEXTVideo required
IMAGEThumbnails accepted as companion, not standalone
CAROUSELNot supported
REELVideos ≤60s in 9:16 auto-publish as Shorts
STORYNot supported

Validation rules

  • Video is required; no other media types accepted as standalone posts
  • Thumbnails may be uploaded as companion media but are not published independently
  • Videos ≤60 seconds in 9:16 aspect ratio automatically become YouTube Shorts
  • Max 6 uploads per day, 3 per hour (YouTube Data API quota)
  • Video description max 5,000 characters

Common failures

ErrorCauseFix
QUOTA_EXCEEDEDOver 6 uploads/dayWait until quota resets or request increase from Google
VIDEO_REQUIREDNo video mediaYouTube requires a video — provide mediaIds or mediaUrls pointing to a video
DESCRIPTION_TOO_LONGOver 5,000 charsShorten the description
INVALID_VIDEO_FORMATUnsupported codecRe-encode to H.264 with AAC audio

MCP example

create_post( content: "How we built our content calendar from scratch — full walkthrough", accountIds: ["acc_youtube_abc123"], contentType: "VIDEO", mediaIds: ["media_video_abc123"], scheduledFor: "2026-06-02T16:00:00Z", firstComment: "Full article in the description. Subscribe for more." )

Pinterest

  • Constant: PINTEREST
  • Character limit: 500 for pin descriptions
  • Media: Up to 5 images (carousel pin), or 1 video (max 1 min)
  • Scheduling: ✅ Supported
  • First comment: ✗ Not supported
  • Note: Pins require a destination link URL. Carousel (multi-image) pins are supported.
  • Auth: OAuth 2.0 — PINTEREST_CLIENT_ID, PINTEREST_CLIENT_SECRET

Reddit

  • Constant: REDDIT
  • Character limit: 40,000 for self (text) posts
  • Media: 1 image only — JPEG, PNG, or GIF (gallery/multi-image and video upload not yet implemented)
  • Scheduling: ✅ Supported
  • First comment: ✗ Not supported
  • Note: Posts require a target subreddit. Link posts and text posts are also supported.
  • Auth: OAuth 2.0 — REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET, REDDIT_USER_AGENT

Reddit gallery (multi-image) posts and video uploads are not yet implemented. Only single-image posts, text posts, and link posts are supported at this time.


Snapchat

  • Constant: SNAPCHAT
  • Character limit: 80 characters
  • Media: 1 image or 1 video (max 1 min) — published to Spotlight or Story via the Snapchat Marketing API
  • Scheduling: ✅ Supported
  • First comment: ✗ Not supported
  • Note: Requires a Snapchat Business/Ads account. Limited to the marketing API — direct personal account posting is not supported.
  • Auth: OAuth 2.0 — SNAPCHAT_CLIENT_ID, SNAPCHAT_CLIENT_SECRET

Telegram

  • Constant: TELEGRAM
  • Character limit: 4,096 characters (caption limit: 1,024 chars when media is attached)
  • Media: Up to 10 images (media group), or 1 video (max 1 hour), or documents
  • Scheduling: ✅ Supported (native Telegram scheduled messages)
  • First comment: ✗ Not supported
  • Note: Posts to a Telegram channel or group that the bot administers. Each connected account uses its own bot token — no shared app credentials required.
  • Auth: Bot tokens from @BotFather  — stored per-account in Secrets Manager; no TELEGRAM_* app env vars needed

Telegram authentication works differently from other platforms. Instead of OAuth, each connected Telegram channel or group requires a dedicated bot token obtained from @BotFather. Add the bot as an administrator of your channel before connecting.


Google Business Profile

  • Constant: GOOGLE_BUSINESS
  • Character limit: 1,500 characters for post summaries
  • Media: Up to 10 images or 1 video (max 30 sec)
  • Scheduling: ✅ Supported
  • First comment: ✗ Not supported
  • Post types: Updates, Offers, and Events — post type is selectable when creating the post
  • Auth: OAuth 2.0 via Google (Business API scope) — GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET

Google Business Profile posts (formerly Google My Business) appear on your business’s Google Search and Maps listings. The connected Google account must have Owner or Manager access to the business location.


Mastodon

  • Constant: MASTODON
  • Character limit: 500 characters (default; varies by instance — some instances allow up to 5,000)
  • Media: Up to 4 images or 1 video (max 5 min)
  • Scheduling: ✅ Supported (native Mastodon scheduled posts)
  • First comment: ✗ Not supported
  • Note: Mastodon is decentralized; each account specifies its instance URL (e.g., mastodon.social). OAuth credentials are registered per-instance.
  • Auth: OAuth 2.0 — per-instance credentials; instanceUrl required at account connection time

Supported content types

contentTypeSupportedNotes
TEXTText-only toot
IMAGE1–4 images
VIDEO1 video, max 5 min
CAROUSELNot a Mastodon concept
REELNot supported
STORYNot supported

Validation rules

  • Character limit depends on the instance — default is 500, but some allow 5,000+
  • instanceUrl required at account connection time (e.g. mastodon.social, fosstodon.org)
  • Images: max 8 MB; videos: max 40 MB (default Mastodon limits)

Common failures

ErrorCauseFix
CONTENT_TOO_LONGOver instance’s character limitShorten or check instance’s actual limit
INVALID_TOKENOAuth token expiredRe-connect the Mastodon account
MEDIA_TOO_LARGEFile over 8 MB (image) or 40 MB (video)Compress before uploading

MCP example

create_post( content: "Just published a new article on decentralized social media. Thoughts? #Mastodon #Fediverse", accountIds: ["acc_mastodon_abc123"], contentType: "TEXT" )

WhatsApp Business

  • Constant: WHATSAPP
  • Character limit: 4,096 characters
  • Media: Up to 30 images or 1 video (max 3 min); documents also supported
  • Scheduling: ✅ Supported
  • First comment: ✗ Not supported
  • Note: Requires a WhatsApp Business API account with Meta Business verification. Messages are sent to opted-in contacts or published to WhatsApp Status (Stories).
  • Auth: OAuth 2.0 via Meta Business API — WHATSAPP_APP_ID, WHATSAPP_APP_SECRET

WhatsApp Business API requires Meta Business verification and an approved WhatsApp Business Account (WABA). Personal WhatsApp accounts are not supported. Message delivery is subject to WhatsApp’s 24-hour messaging window policy.


Platform Capabilities API

Get capability information for a specific platform:

curl https://api.voxburst.io/v1/platforms/twitter \ -H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"

Response

{ "platform": "TWITTER", "name": "Twitter / X", "maxTextLength": 280, "maxImages": 4, "maxVideoLength": 140, "supportsThreads": true, "supportsCarousels": false, "supportsStories": false, "supportsReels": false, "supportsScheduling": false, "supportsFirstComment": true, "supportsComments": true, "supportsAnalytics": true, "supportsOptimalTimes": true, "mediaTypes": ["image/jpeg", "image/png", "image/gif", "video/mp4"], "rateLimit": { "postsPerDay": 2400, "postsPerHour": 100 } }

List all platforms at once:

curl https://api.voxburst.io/v1/platforms \ -H "Authorization: Bearer vb_live_xxxxxxxxxxxxx"
Last updated on