Skip to content

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.

Start free

Free during early access.

Last updated

0 characters

Your account
Your text appears here, and anything over the limit turns red.
Instagram 0 / 2,200
Caption
Facebook Pages 0 / no official limit
Post
X 0 / 280
Post, links count as 23
TikTok 0 / 2,200
Video caption
YouTube 0 / 100
Title
YouTube 0 / 5,000
Description, counted in bytes
LinkedIn 0 / 3,000
Post
Threads 0 / 500
Post
Pinterest 0 / 100
Pin title
Pinterest 0 / 800
Pin description
Google Business 0 / no official limit
Update
Bluesky 0 / 300
Post, counted in graphemes
Mastodon 0 / 500
Post (server default)
Tumblr 0 / 4,096
Text block
Telegram 0 / 4,096
Message
Telegram 0 / 1,024
Photo or video caption
Discord 0 / 2,000
Message

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.

Text limits on 14 networks, from official docs
NetworkMain text limitOther text limits
Instagram2,200 charactersUp to 30 hashtags and 20 @ tags per caption
Facebook Pagescheck their pageMeta's Page photos docs state no caption limit
X280 characters (weighted; URLs count 23; CJK count 2)Long posts with Premium: Up to 25,000 characters
TikTokVideo caption: 2,200 UTF 16 runesPhoto post title 90 UTF 16 runes, description 4,000 UTF 16 runes
YouTubeTitle: 100 characters (no < or >)Description 5,000 bytes (no < or >); tags 500 characters
LinkedIn3,000 charactersPolls: Question 140 chars; 2 to 4 options, 30 chars each; 1/3/7/14 days
Threads500 charactersUp to 5 links per post; topic tags 1 per post, 1 to 50 characters
PinterestPin title: 100 characters (first 40 may show in feed)Pin description 800 characters
Google Business Profilecheck their pageGoogle's own help gives no figure
Bluesky300 graphemes (3,000 bytes)Separate tags field: Up to 8 tags, 64 graphemes each
Mastodon500 characters (default; per server)Each server can set its own limit
Tumblr4,096 characters per text block; post total 524,288 incl. reblog trailSearch indexes 30 tags indexed in search (20 for in blog search)
TelegramMessage: 1 to 4,096 charactersPhoto or video caption 0 to 1,024 characters (Premium users 4,096)
Discord2,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.

Tag and link limits that catch people out
NetworkWhat is limitedOfficial limit
InstagramHashtags per caption30 hashtags
Instagram@ tags per caption20 @ tags
ThreadsTopic tags1 per post, 1 to 50 characters
ThreadsLinks per post5
BlueskyTags outside the textUp to 8 tags, 64 graphemes each
TumblrTags indexed in search30 tags indexed in search (20 for in blog search)
YouTubeAll tags together500 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.

  1. Meta for Developers: Instagram Graph API, IG User Media reference developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-user/media
  2. 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
  3. X developer docs: counting characters docs.x.com/fundamentals/counting-characters
  4. X Help: how to post help.x.com/en/using-x/how-to-post
  5. TikTok for Developers: Content Posting API, Direct Post reference developers.tiktok.com/doc/content-posting-api-reference-direct-post
  6. TikTok for Developers: Content Posting API, photo post reference developers.tiktok.com/doc/content-posting-api-reference-photo-post
  7. YouTube Data API: videos resource developers.google.com/youtube/v3/docs/videos
  8. LinkedIn Help: post length linkedin.com/help/linkedin/answer/a528176
  9. LinkedIn Marketing API: Poll Post API learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/poll-post-api
  10. Meta for Developers: Threads API overview developers.facebook.com/docs/threads/overview
  11. Meta for Developers: Threads API posts developers.facebook.com/docs/threads/posts
  12. Pinterest Business Help: product specs help.pinterest.com/en/business/article/pinterest-product-specs
  13. Bluesky AT Protocol lexicon: feed post github.com/bluesky-social/atproto/blob/main/lexicons/app/bsky/feed/post.json
  14. Mastodon docs: Instance entity (server configuration) docs.joinmastodon.org/entities/Instance/
  15. Tumblr Help: writing posts help.tumblr.com/hc/en-us/articles/360010901913-Writing-Posts
  16. Tumblr Help: tagging your posts help.tumblr.com/knowledge-base/tagging-your-posts/
  17. Telegram Bot API core.telegram.org/bots/api
  18. Discord Support: account caps, server caps and more support.discord.com/hc/en-us/articles/33694251638295-Discord-Account-Caps-Server-Caps-and-More
  19. Discord developer docs: message resource docs.discord.com/developers/resources/message
  20. Meta for Developers: Graph API Page photos reference developers.facebook.com/docs/graph-api/reference/page/photos/
  21. Google Business Profile Help: posts support.google.com/business/answer/7342169?hl=en

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.

Start free

Free during early access.