Skip to content
SocialHelper
Join waitlist
Guides

Social media character limits, and how each platform counts

Every platform’s text limit in one table, and why the same post can fit on one and be too long for another.

3 minute read By SocialHelper team

Every social network caps how long a post can be, and the caps vary a lot: Snapchat allows 160 characters while Facebook allows over sixty thousand. What surprises people more is that the platforms don’t agree on what a character is. The short promo further down counts as 95 on one network and 84 on another, which is why a post that fits everywhere in your head gets rejected somewhere in practice.

The limits

These are the limits SocialHelper checks before it posts, read from the code that talks to each platform. Each name links to a counter that counts the same way.

PlatformWhat it limitsLimitHow it counts
Facebook Post 63,206 Unicode characters
YouTube Video description 5,000 Bytes
Telegram Post 4,096 UTF-16 code units
LinkedIn Post 3,000 UTF-16 code units
Instagram Post 2,200 Unicode characters
TikTok Caption 2,200 UTF-16 code units
Discord Post 2,000 Unicode characters
Google Business Profile Post 1,500 Unicode characters
Pinterest Post 800 Unicode characters
Threads Post 500 Characters; emoji by bytes
Mastodon Post 500 What you see; links 23
Bluesky Post 300 What you see
X Post 280 Weighted; links 23, emoji 2
Snapchat Post 160 Unicode characters

One post, counted 7 different ways

Here’s a short promo with one emoji and one link:

Spring sale starts Friday 🌸 Everything in the shop is on it: https://example.com/spring-sale

You’d count it as 92 characters. This is what each platform counts:

PlatformCounts it as
Facebook, Instagram, Pinterest, Snapchat, Discord and Google Business Profile 92
X 85
YouTube 95
TikTok, LinkedIn and Telegram 93
Threads 95
Bluesky 92
Mastodon 84

Three things cause the differences: links, emoji and the way text is stored.

X and Mastodon count every link as 23 characters, however long it is, because they treat links as shortened. On X that includes bare domains like example.com. Every other platform here counts a link’s full length, so a long tracking link can use a good part of a short limit. On Bluesky, where the limit is 300, a 120-character link leaves 180 for everything else.

Emoji

An emoji you see as one symbol is often several pieces joined together. The family emoji 👨‍👩‍👧‍👦 is four people and three invisible joiners, and a flag is two letters. Platforms count those pieces differently:

  • Bluesky and Mastodon count what you see, so any emoji is 1.
  • X counts every emoji as 2, however it’s built.
  • Facebook, Instagram and others count Unicode characters, so the family emoji is 7.
  • LinkedIn, TikTok and Telegram count UTF-16 units: most emoji are 2 and the family emoji is 11.
  • Threads counts each emoji by its size in bytes, so a plain 🌙 is 4 and the family emoji is 25.

A caption with a row of emoji can therefore be well within the limit on Bluesky and over it on Threads.

Accents and other alphabets

Most platforms count an accented letter or a Japanese character as 1. Two don’t. X counts Chinese, Japanese and Korean characters as 2 each, which is why posts in those languages hit the limit at about half the length. YouTube limits a video description to 5,000 bytes, where an accented letter takes 2 and a Japanese character takes 3.

Limits that aren’t about length

  • Bluesky also caps a post at 3,000 bytes, which only matters for long posts full of emoji or non-Latin text.
  • Telegram allows 4,096 characters for a text message, but when you attach images the text becomes a caption, and captions are limited to 1,024.
  • Instagram, YouTube, TikTok, Pinterest and Snapchat won’t take a text-only post: each one needs an image or a video.
  • On YouTube the text is the video description. The title is a separate field.

Writing one post for every platform

If the post is going everywhere, write it for the strictest platform you use and check it before you schedule anything. The free checker counts a post against every platform at once, each its own way, and nothing you type leaves your browser.

When one version can’t fit all of them, keep the long version and write a shorter one for the platforms that need it. In SocialHelper that’s a per-platform version of the same post: the composer lets you change the text for one platform, and the API takes it as an override. Before anything goes out, every version is checked against its platform, and if one doesn’t fit, nothing is posted.

Post everywhere from one place.

SocialHelper is invite-only during early access. Join the waitlist: the first 100 people to sign up get a Founding account with higher limits, free for 12 months.