Social media character counter for 14 networks
This free tool from Schedulely checks one caption against the text limits of 14 social networks at once. Paste your text and see where it fits and where it runs long, before you schedule it anywhere.
Every limit below comes from the network's own documentation, with the source listed at the end of the page.
Free during early access.
Last updated
0 characters
Limits come from each network's official documentation, listed in Sources below. Networks that publish no official limit show none. Counting happens in your browser and nothing you type is sent anywhere.
| Network | Main text limit | Other text limits |
|---|---|---|
| 2,200 characters | Up to 30 hashtags and 20 @ tags per caption | |
| Facebook Pages | check their page | Meta's Page photos docs state no caption limit |
| X | 280 characters (weighted; URLs count 23; CJK count 2) | Long posts with Premium: Up to 25,000 characters |
| TikTok | Video caption: 2,200 UTF 16 runes | Photo post title 90 UTF 16 runes, description 4,000 UTF 16 runes |
| YouTube | Title: 100 characters (no < or >) | Description 5,000 bytes (no < or >); tags 500 characters |
| 3,000 characters | Polls: Question 140 chars; 2 to 4 options, 30 chars each; 1/3/7/14 days | |
| Threads | 500 characters | Up to 5 links per post; topic tags 1 per post, 1 to 50 characters |
| Pin title: 100 characters (first 40 may show in feed) | Pin description 800 characters | |
| Google Business Profile | check their page | Google's own help gives no figure |
| Bluesky | 300 graphemes (3,000 bytes) | Separate tags field: Up to 8 tags, 64 graphemes each |
| Mastodon | 500 characters (default; per server) | Each server can set its own limit |
| Tumblr | 4,096 characters per text block; post total 524,288 incl. reblog trail | Search indexes 30 tags indexed in search (20 for in blog search) |
| Telegram | Message: 1 to 4,096 characters | Photo or video caption 0 to 1,024 characters (Premium users 4,096) |
| Discord | 2,000 characters (Nitro 4,000) | Embeds: Title 256, description 4,096, 25 fields, 6,000 total; 10 embeds per message |
Facebook Pages and Google Business Profile publish no official text limit, so those rows link to the source we found instead of showing a number.
What counts as a character on X, Bluesky and Threads?
Each network counts text its own way. X weights characters, so a link costs a fixed amount and some scripts count more than once. Bluesky counts graphemes, meaning each symbol you see counts once. Threads counts emojis by their byte length, so an emoji heavy post fills up faster than it looks.
X publishes its counting rules in its developer docs. A post can hold 280 characters (weighted; URLs count 23; CJK count 2). In practice a long tracking link costs you no more than a short one, and Chinese, Japanese and Korean characters use up the limit faster than Latin letters. Replies are posts too, so they share the same limit. X Premium subscribers can write long posts of Up to 25,000 characters.
Bluesky sets its limit as 300 graphemes (3,000 bytes). A grapheme is one visible symbol, so an emoji built from several code points, such as a family or a flag, still counts once. Hashtags typed into the text count towards the limit, while the separate tags field holds Up to 8 tags, 64 graphemes each.
Threads allows 500 characters. Meta's Threads documentation says emojis count as their byte length, so a row of emojis can use far more of the limit than the same number of letters. If your brand voice leans on emojis, count them before you post rather than after Threads rejects the text.
Why do Mastodon, Telegram and YouTube limits vary?
Mastodon's limit belongs to each server, not to the network. Telegram has two limits, a long one for a text message and a much shorter one for a caption under a photo or video. YouTube measures its description in bytes, so text in Arabic, Hindi or Chinese fits fewer characters than English.
Mastodon is a network of independent servers. The default is 500 characters (default; per server), but each server's admin can change it, and the server publishes its own figure in its instance settings. If you post to more than one server, write for the smallest limit you use. Schedulely posts to Mastodon on any server, so check the one you connect.
Telegram's Bot API, which channel posts go through, allows 1 to 4,096 characters for a message and 0 to 1,024 characters (Premium users 4,096) for a caption on a photo, video or album. A long announcement with a picture may need to go out as text only, or be split into two posts.
YouTube accepts a title of 100 characters (no < or >) and a description of 5,000 bytes (no < or >). A basic Latin letter takes 1 byte, while letters in many other scripts take 2 or more, so the same description written in Urdu or Japanese fills up much sooner. Discord is simpler: 2,000 characters (Nitro 4,000) per message.
How do you write one caption for many networks?
Write for the shortest main text limit you post to, then add to it for the roomier networks. Put the hook and any link near the start, keep hashtags for the end, and check the result in this counter. X and Bluesky are usually the tightest, so a core that fits there fits most places.
A single caption rarely suits every network unchanged, but one strong core can. Start with a version that fits the shortest main text limit in your plan, which is usually X or Bluesky. That core carries the message. Then add what each network rewards: more context on LinkedIn, hashtags on Instagram, a keyword rich description on Pinterest or YouTube.
- Lead with the point. Long text gets cut in most feeds, so the first line has to work alone.
- Mind tag limits. The table below lists the ones people most often hit.
- Watch titles. YouTube, Pinterest and TikTok photo posts have short title fields on top of the main text.
- Check captions on media. Telegram media captions are far shorter than its messages.
Paste the final version into the counter above and trim any network that goes over before you schedule. Keep the trimmed versions, because the same core will come back next week.
| Network | What is limited | Official limit |
|---|---|---|
| Hashtags per caption | 30 hashtags | |
| @ tags per caption | 20 @ tags | |
| Threads | Topic tags | 1 per post, 1 to 50 characters |
| Threads | Links per post | 5 |
| Bluesky | Tags outside the text | Up to 8 tags, 64 graphemes each |
| Tumblr | Tags indexed in search | 30 tags indexed in search (20 for in blog search) |
| YouTube | All tags together | 500 characters |
How does Schedulely help you post one caption to several networks?
In Schedulely you write a post once, choose the accounts it goes to and check a preview for each network before scheduling. The preview shows roughly how the post will look on each network, and this counter shows which limits you are close to, so together they catch problems before anything goes out.
Schedulely is a social media scheduler made by SureSocial that posts to 14 networks: Instagram, Facebook Pages, X, TikTok, YouTube, LinkedIn, Threads, Pinterest, Google Business, Bluesky, Mastodon, Tumblr, Telegram and Discord. The planner works the same way for each of them. You write the caption, attach media from your computer, phone, a Google Drive link or the client's library, pick the accounts and look at the preview for each network.
Each network keeps its own rules inside Schedulely. X posts can run as threads, which is the simplest fix when a message will not fit in one post. Telegram posts go to a channel through a bot, and Discord posts go to a server channel through a webhook. If an account signs out, its posts wait safely and go out after you reconnect, and a failed post can be retried in 1 tap.
Everything that is built is free during early access. After that, posting to X becomes a separate $10 a month add on, because X charges apps for each post.
Who it's for, and who it isn't
A good fit if you
- Write one caption for several networks and want to see every limit at once
- Post in languages other than English, where bytes and graphemes change the count
- Run Mastodon, Bluesky or Telegram alongside the bigger networks
- Prepare captions for clients and want to catch problems before approval
Not the right fit if you
- Want a tool that rewrites or shortens captions for you, which this counter does not do
- Post to a Mastodon server with a custom limit, which only that server can confirm
Questions people ask
What is the character limit for an Instagram caption?
Instagram captions can be up to 2,200 characters, according to Meta's Instagram Graph API documentation. The same caption can carry up to 30 hashtags and 20 @ tags. Only the first lines show in the feed before people tap to read more, so put the important part first and leave hashtags for the end.
How does X count characters in a post?
X counts weighted characters rather than letters. Its developer docs give the limit as 280 characters (weighted; URLs count 23; CJK count 2), so every link costs the same fixed amount however long the address is, and characters from some scripts use the limit faster. Replies follow the same rule. X Premium subscribers can write long posts of Up to 25,000 characters.
Why does Bluesky count my post differently from other counters?
Bluesky counts graphemes, not characters or bytes. Its limit is 300 graphemes (3,000 bytes). A grapheme is one visible symbol, so a flag or a family emoji made of several code points counts once on Bluesky, while a simple counter that adds up code points or bytes would count it several times and report the post as longer than it is.
Is the YouTube description limit in characters or bytes?
In bytes. YouTube's Data API documentation gives the description limit as 5,000 bytes (no < or >) and the title limit as 100 characters (no < or >). English letters take 1 byte each, but letters in many other scripts take 2 or more, so a description in Hindi, Arabic or Chinese holds noticeably fewer characters than the same space in English.
What is the character limit on Telegram channel posts?
Telegram has two limits. A text message can be 1 to 4,096 characters, while a caption on a photo, video or album is limited to 0 to 1,024 characters (Premium users 4,096), according to the Telegram Bot API. Schedulely posts to Telegram channels through a bot, so the Bot API limits are the ones that apply to scheduled posts.
How long can a LinkedIn post be?
LinkedIn posts can be up to 3,000 characters, according to LinkedIn's help centre. In Schedulely you can post text and photos to a personal LinkedIn profile; video and Company Pages are not supported yet. Long posts are common on LinkedIn, but the opening lines decide whether people expand the post, so lead with the point.
Is this character counter free?
Yes. This character counter is a free tool from Schedulely, the social media scheduler made by SureSocial, and you can use it without an account. Schedulely itself is free during early access, so you can check a caption here and then schedule it to the same networks from one planner, with a preview for each network.
Sources
Every outside fact on this page comes from the source listed here, checked on 29 October 2026. Prices and features change, so check the source before you decide.
- Meta for Developers: Instagram Graph API, IG User Media reference developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-user/media
- Zoho Social help: character limits for social networks (third party) help.zoho.com/portal/kb/articles/what-are-the-character-limits-for-different-social-networks
- X developer docs: counting characters docs.x.com/fundamentals/counting-characters
- X Help: how to post help.x.com/en/using-x/how-to-post
- TikTok for Developers: Content Posting API, Direct Post reference developers.tiktok.com/doc/content-posting-api-reference-direct-post
- TikTok for Developers: Content Posting API, photo post reference developers.tiktok.com/doc/content-posting-api-reference-photo-post
- YouTube Data API: videos resource developers.google.com/youtube/v3/docs/videos
- LinkedIn Help: post length linkedin.com/help/linkedin/answer/a528176
- LinkedIn Marketing API: Poll Post API learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/poll-post-api
- Meta for Developers: Threads API overview developers.facebook.com/docs/threads/overview
- Meta for Developers: Threads API posts developers.facebook.com/docs/threads/posts
- Pinterest Business Help: product specs help.pinterest.com/en/business/article/pinterest-product-specs
- Bluesky AT Protocol lexicon: feed post github.com/bluesky-social/atproto/blob/main/lexicons/app/bsky/feed/post.json
- Mastodon docs: Instance entity (server configuration) docs.joinmastodon.org/entities/Instance/
- Tumblr Help: writing posts help.tumblr.com/hc/en-us/articles/360010901913-Writing-Posts
- Tumblr Help: tagging your posts help.tumblr.com/knowledge-base/tagging-your-posts/
- Telegram Bot API core.telegram.org/bots/api
- Discord Support: account caps, server caps and more support.discord.com/hc/en-us/articles/33694251638295-Discord-Account-Caps-Server-Caps-and-More
- Discord developer docs: message resource docs.discord.com/developers/resources/message
- Meta for Developers: Graph API Page photos reference developers.facebook.com/docs/graph-api/reference/page/photos/
- Google Business Profile Help: posts support.google.com/business/answer/7342169?hl=en
Related pages
- Social media planner and calendarPlan posts for every client on one calendar, each in their own time zone. Preview each network, schedule…
- Social media image and video sizes for 2026Free size guide from Schedulely: image sizes, aspect ratios, file size limits and video lengths for 14…
- 14 social networks, all livePost to Instagram, Facebook Pages, X, TikTok, YouTube, LinkedIn, Threads, Pinterest, Google Business…
Start free today
Everything that is built today is free during early access. Plans start later, and we will tell you well before anything is charged.
Free during early access.