Each network sets its own rules, which is why the same post can publish to LinkedIn and be refused by Instagram. Ocoya checks a post against these before publishing and tells you which limit it breaks.

Caption limits

NetworkCaptionHashtags
Facebook5,000No limit
Instagram2,20030
X (Twitter)280 per post, 5,000 totalNo limit
LinkedIn3,000No limit
TikTok2,200No limit
Pinterest500No limit
Threads500 per post, 5,000 totalNo limit
Bluesky300 per post, 5,000 totalNo limit
Mastodon500 per post, 5,000 totalNo limit
YouTube Shorts5,000No limit
Google Business1,500No limit
Telegram4,096 (1,024 on media)No limit
Discord2,000No limit
Slack40,000No limit
Dribbble3,00012, lifted into tags
Tumblr100,00020, lifted into tags
WordPress100,000No limit
DEV.to100,000No limit
Whop50,000No limit
Notion100,000No limit
Webflow100,000No limit
Framer100,000No limit
Wix100,000No limit
Twitch500 per message, 5,000 totalNo limit
Kick500 per message, 5,000 totalNo limit
Snapchat160 (Spotlight only)No limit
Custom200,000No limit

Where a network shows two numbers, the first is what fits in one post and the second is the point at which Ocoya refuses the post. Between the two, Ocoya splits your text into a thread — see Long posts and threads.

Image limits

NetworkImages per postMax size each
Facebook108 MB
Instagram108 MB
X (Twitter)45 MB
LinkedIn910 MB
TikTok3520 MB
Pinterest5—
Threads108 MB
Bluesky42 MB
Mastodon416 MB
Telegram1010 MB
Discord1010 MB
Slack10100 MB
Google Business15 MB
Dribbble18 MB
Tumblr1020 MB (GIFs 10 MB)
WordPress10Your site’s upload limit
DEV.to10—
Whop10100 MB
Notion10—
Webflow10—
Framer1 used—
Wix10—
Snapchat0—
Custom20—

Video limits

NetworkVideos per postMax size
Facebook1100 MB
Instagram1100 MB
X (Twitter)1100 MB
LinkedIn1100 MB
TikTok1100 MB
Threads1100 MB
Pinterest1—
Mastodon199 MB
YouTube Shorts1256 MB
Telegram1050 MB
Discord1010 MB
Slack10100 MB
Whop10100 MB
Notion10—
Snapchat1300 MB
Custom20—

Bluesky, Google Business, Dribbble, Tumblr, WordPress, DEV.to, Webflow, Framer, Wix, Twitch and Kick take no video at all — attach one and the post is refused. YouTube Shorts is the mirror image: it takes a video or a GIF and no still images.

Instagram Reels are a separate case: up to 1,000 MB, between 3 seconds and 15 minutes.

Other rules worth knowing

NetworkRule
InstagramBusiness or Creator account only, linked to a Facebook Page
FacebookPages only, never personal profiles
PinterestEvery Pin needs a board
LinkedInPDF carousels need at least 2 images and a 5–50 character title
DribbbleA shot is one image, required. Dribbble accepts only 400×300 or 800×600, so anything else is resized for you. Needs a title
TumblrEvery blog on the account connects as its own channel. A title is optional and publishes as a heading. Your caption’s hashtags become Tumblr tags
WordPressNeeds an application password over https, and a user with the Author, Editor or Administrator role. A title is taken from your first caption line if you don’t set one
DEV.toArticles are Markdown and need a title, up to 128 characters. Ocoya takes it from your caption’s first line if you don’t set one
WhopOne channel per forum, chosen when you connect. Body is Markdown and is required
NotionA post becomes a sub-page of a page, or a row in a database. The first caption line is the title. Up to 10 images, videos and GIFs in any mix
WebflowA post becomes an item in a CMS collection: the title is its Name and slug, the text its rich text body, the first image its main image. Required fields with no value block the post — see Webflow
FramerA post becomes an item in a CMS collection. Publishing live publishes the whole project, including other unpublished changes — see Framer
WixA post becomes a blog post on the site: the title is its title, the text its body, the first image its cover. Every post is written by the site member chosen when connecting — see Wix
TwitchChat messages only — no attachments
KickChat messages only — no attachments. Capped at 2,048 bytes as well as 500 characters
SnapchatVertical .mp4 only, 5-60 seconds, 540x960 or larger. No images. Connects to a Public Profile, which needs a Snapchat business organization
CustomSends JSON to your own endpoint. Add headers under Advanced options so it can authenticate the request
TelegramUp to 10 photos and videos in one album. A GIF goes on its own. A caption over 1,024 characters on media follows as a reply
DiscordMaximum 10 attachments per post
SlackUp to 10 files in any mix of images, video and GIFs, shared in one message. A private channel needs Ocoya added to it, which happens when you connect
Google BusinessEvents and offers need a title, start time and end time
TikTokCustom video thumbnails are not supported
InstagramCustom thumbnails work for Reels, not standard video

Image shapes

Instagram accepts a limited range of shapes and Ocoya crops to fit:

  • Landscape — 1.91:1
  • Portrait — 4:5

If an image is cropped differently than you expected, it was outside that range. Crop it yourself first to control what’s kept.