# Social media character limits for every network

Canonical: https://postmesh.app/blog/social-media-character-limits

By PostMesh team. Published 2026-10-26; updated 2026-10-31.

X allows 280 characters per post (25,000 with Premium), Threads 500, Instagram and TikTok 2,200 for a caption, LinkedIn 3,000, Reddit 300 for a title, and YouTube 100 for a title and 5,000 bytes for a description. Emoji, links and non-Latin text can use more than one unit of a limit, depending on how each network counts.

This guide covers the text limits on 13 networks: posts and captions, titles and descriptions, comments, bios, display names and usernames. Each number is marked one of two ways. Official means the network states it on its own help center or developer documentation, and that page is linked. Reported means the network doesn't publish the number on any page we could find, so it's the figure the app is widely reported to enforce, and the app itself has the final say. Reported numbers can change without notice, so leave a little room when you're close to one.

## The short answer

For a single post, the limits that trip people up most are X at 280, Threads at 500 and YouTube's 100-character title. Facebook, Reddit and Slack allow tens of thousands of characters, so a normal post never gets near them. The table gives the main text limit on each network, then the sections below explain the details, the exceptions and how each network counts.

| Network | Post, caption or message | Title | Basis |
| --- | --- | --- | --- |
| X | 280, weighted (25,000 with Premium) | None | Official |
| Threads | 500, plus a 10,000-character text attachment | None | Official |
| Instagram | 2,200, with 5 hashtags and 20 mentions | None | Official |
| TikTok | 2,200 for a video caption, 4,000 for a photo description | 90 on photo posts | Reported |
| LinkedIn | 3,000 for a post, 125,000 for an article | None | Official |
| Facebook Pages | 63,206 | None | Reported |
| Reddit | 40,000 for the body | 300 | Title official, body reported |
| YouTube | 5,000 bytes for a description | 100 | Official |
| Discord | 2,000 (4,000 with Nitro) | None | Official |
| Telegram | 4,096 for a bot message, 1,024 for a caption (4,096 with Premium) | None | Official |
| Slack | 40,000 before truncation, 4,000 recommended | None | Official |
| Bluesky | 300 graphemes | None | Reported |
| Pinterest | 800 for a Pin description | 100 | Official, from Pinterest's ad specs |

**What are you writing?**
- One post for several networks → Fit the shortest limit, usually X at 280, or give each network its own version
- A YouTube description with emoji or non-English text → Count bytes: the API allows 5,000 bytes, not 5,000 characters
- A Threads post with emoji or links → Each emoji counts as its UTF-8 bytes, and no more than 5 links
- A bio, name or username → Check the profile table: X bio 160, Discord bio 300, Telegram bio 70

*Limits from each network's own documentation, linked in the sections below.*

If you just want to check a draft, the free [post checker](/tools/post-checker) measures one piece of text against Instagram, Facebook, Threads, Reddit, X, LinkedIn, YouTube and TikTok at once. There's also a counter for each network, linked in its section.

## How does X count characters?

X's developer documentation on [counting characters](https://docs.x.com/fundamentals/counting-characters) sets a post at 280 characters, but not every character costs the same. X gives each character a weight, and the weights have to add up to 280 or less. That's why a post can look short and still be rejected, or look long and still fit.

### Letters, emoji and Chinese, Japanese or Korean text

Latin letters, punctuation and common symbols have a weight of 1, so you get the full 280 of them. Emoji have a weight of 2, which means a post of nothing but emoji tops out at 140. Chinese, Japanese and Korean characters also weigh 2, so a post written in those scripts has room for 140 characters. Other Unicode characters default to a weight of 2 as well, and X points developers to the configuration file of its open-source twitter-text library for the exact ranges.

Complex emoji don't cost extra on X. A thumbs-up with a skin-tone modifier counts as 2 in total, and so does a family emoji built from four people joined together. The invisible joining characters that glue those emoji together add nothing to the count.

### Every link counts as 23

X wraps every valid URL in its t.co shortener, and each one counts as 23 characters no matter how long the original link is. A 90-character tracking link costs 23. That cuts both ways: a short link like example.com also costs 23, even though it's shorter on screen. Plan for 23 per link and you won't be caught out.

### What doesn't count

- The @mentions X fills in automatically at the start of a reply. Mentions you type yourself count normally.
- Photos, videos and GIFs attached through X's official apps, which count as 0.

Hashtags do count, including the # symbol. X also normalizes text before counting it, using Unicode Normalization Form C. In plain terms, an accented letter like the é in café counts once, even if your keyboard stored it as an e plus a separate accent mark. Café is 4 characters either way.

### Longer posts with X Premium

X's help page [About X Premium](https://help.x.com/en/using-x/x-premium) says subscribers can post up to 25,000 characters, including in quotes and replies. Everyone can read a longer post, but only Premium subscribers can write one. The developer counting rules above still describe the standard 280 limit, which is the one that applies to accounts without Premium.

- 280: Weighted characters in a standard X post
- 140: Emoji, or Chinese, Japanese or Korean characters, that fit
- 23: Characters each link costs, whatever its length
- 25,000: Characters in a longer post with X Premium

*Sources: X developer docs on counting characters, and X Help on X Premium.*

### Usernames, names and bios on X

X's help page on [username registration](https://help.x.com/en/managing-your-account/x-username-rules) says a username can't be longer than 15 characters, and can only use letters A to Z, numbers 0 to 9 and underscores. Your display name can be longer, up to 50 characters. Usernames that contain the word Admin can't be claimed unless they belong to official accounts. X's page on [customizing your profile](https://help.x.com/en/managing-your-account/how-to-customize-your-profile) gives the bio a maximum of 160 characters.

> PostMesh checks X posts at 280 characters for every account, and its count gives each character a weight of 1. That means a post full of emoji or Japanese text can pass PostMesh's check and still be over on X, while a long link counts at its full length in PostMesh but as 23 on X. Near the limit, check the post in the [X character counter](/tools/twitter-character-counter) and leave room for emoji.

For bios and names, the [X bio counter](/tools/x-bio-character-counter) checks all three profile limits at once. If you're writing posts to go out later, the [guide to scheduling tweets](/blog/how-to-schedule-tweets) covers how to schedule X posts.

## How long can an Instagram caption be?

Meta's [IG User Media reference](https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-user/media), which sets the rules for apps that publish to Instagram, gives a caption a maximum of 2,200 characters, 30 hashtags and 20 @ tags. All three limits apply at once. Instagram's help center now sets a lower hashtag limit for posts made in the app: up to 5. Plan for 5, since a 400-character caption with 6 hashtags is already over it.

### Where captions apply

The caption limit covers single photos, videos and Reels, and carousels. In a carousel, the caption belongs to the post as a whole: the individual photos and videos inside it can't carry their own captions. Stories published through the API don't take a caption at all.

### Alt text

The same reference allows alternative text of up to 1,000 characters on a single image or an image inside a carousel. Alt text is read aloud by screen readers, so describe what's in the photo rather than repeating the caption. Reels and Stories don't take alt text through the API.

### Bio, name and username

Instagram's help center doesn't publish profile limits. The bio limit is reported as 150 characters and the username limit as 30, using letters, numbers, periods and underscores. Instagram's help page on [changing your profile information](https://help.instagram.com/583107688369069) does say two things worth knowing: if your account reaches a lot of people, a username change may need to be reviewed first, and your followers may be notified when you change it.

The [Instagram caption counter](/tools/instagram-caption-character-counter) shows how close you are to 2,200, and the [Instagram bio counter](/tools/instagram-bio-character-counter) checks the bio and username. Before you settle on a new handle, see [how to check if an Instagram username is available](/blog/how-to-check-if-an-instagram-username-is-available). For photo dimensions, the [Instagram post size guide](/blog/instagram-post-size) has every shape.

## What is the Threads character limit?

Meta's [Threads API overview](https://developers.facebook.com/docs/threads/overview) limits a text post to 500 characters. The [Threads posts guide](https://developers.facebook.com/docs/threads/posts/) adds the detail that matters most: emoji are counted by their UTF-8 byte length, not as single characters. Most emoji are 4 bytes, so each one uses about 4 of your 500.

### No more than 5 links

The posts guide says a post may contain 5 links or fewer, and that from December 22, 2025, posts with more than 5 fail with a link limit error. Each unique URL in the text counts once, even if it appears twice. A link attachment, the preview card under a text post, counts as an extra link only if it's different from every URL already in the text. If a text-only post has no link attachment set, the first link in the text becomes the attachment.

### One topic tag per post

Threads uses topic tags instead of a free-for-all of hashtags. A tag must be 1 to 50 characters and can't contain periods or ampersands. Only one topic is used per post: if you type several hashtags, the first valid one becomes the topic and the rest stay as plain text. A # followed by a whole number, like #1, isn't turned into a tag.

### Text attachments up to 10,000 characters

For longer writing, Threads has text attachments. Meta's [text attachments guide](https://developers.facebook.com/documentation/threads/create-posts/text-attachments) allows up to 10,000 characters in one, with optional bold, italic, highlight, underline and strikethrough styling. They only attach to text-only posts, never to a post with a poll, and the 5-link limit still applies.

### Posting limits for apps and schedulers

The Threads overview also caps how much an app can publish for one profile: 250 posts and 1,000 replies in any rolling 24 hours. A carousel counts as a single post toward that limit. If a tool that posts replies for you suddenly stops, this limit is one thing to check.

- 500: Characters in a Threads post
- 5: Links per post at most
- 1 to 50: Characters in a topic tag
- 10,000: Characters in a text attachment

*Sources: Meta's Threads API overview, posts guide and text attachments guide.*

The [Threads character counter](/tools/threads-character-counter) shows your count against the 500 limit. The [Threads page](/platform/threads) lists what PostMesh can post there: text, one photo or one video, up to 500 characters.

## How long can a YouTube title and description be?

YouTube has separate limits for the title, the description and the tags, and they're counted in different units. The [YouTube Data API videos reference](https://developers.google.com/youtube/v3/docs/videos) sets them out for apps, and YouTube's help page on [editing video settings](https://support.google.com/youtube/answer/57404) covers YouTube Studio.

### Titles: 100 characters

Both sources agree a title can be up to 100 characters. The API adds that a title can contain any valid UTF-8 character except the less-than and greater-than signs, < and >.

### Descriptions: 5,000 bytes, not 5,000 characters

YouTube's help page says descriptions have a limit of 5,000 characters. The API reference is more exact: 5,000 bytes. In plain English text, one letter is one byte, so the two numbers match. Accented letters take 2 bytes each, Chinese, Japanese and Korean characters take 3, and most emoji take 4. A description in Japanese reaches the byte limit at around 1,666 characters.

**YouTube Studio (help page)**
- Title: 100 characters
- Description: 5,000 characters
- Invalid characters not allowed

**YouTube Data API (apps and schedulers)**
- Title: 100 characters
- Description: 5,000 bytes
- No < or > in either
- Tags: 500 characters in total

*Sources: YouTube Help, edit video settings, and the YouTube Data API videos reference.*

The API reference adds two description details that are easy to miss. For links in a description to be clickable, the channel has to meet requirements such as being verified or having advanced features turned on. And timestamps written in the description, like 00:00, create chapters in the video.

### Tags: 500 characters in total

Tags share one budget of 500 characters across the whole list, not 500 each. The commas between tags count toward it, and a tag that contains a space is counted as if it were wrapped in quotation marks, so the quotes count too. The API's own example: Foo-Baz is 7 characters, while Foo Baz is 9.

Here's a worked example. The tags cooking, easy dinner and pasta cost 7 for cooking, 13 for easy dinner (11 letters and the space, plus 2 quotes), 5 for pasta and 2 for the commas between them: 27 in total.

### Channel name, description and handle

The [YouTube Data API channels reference](https://developers.google.com/youtube/v3/docs/channels) gives a channel description a maximum of 1,000 characters, channel keywords 500 characters in total, and the channel title in branding settings 30 characters. YouTube's help page on [handles](https://support.google.com/youtube/answer/11585688) says a handle is 3 to 30 characters, except handles in Han or Hangul script, which are 1 to 10, and Ethiopic, Hiragana or Katakana, which are 2 to 20.

Handles can use letters or numbers from YouTube's 75 supported languages, plus underscores, hyphens, periods and Latin middle dots, but a separator can't be the first or last character. Handles aren't case-sensitive. YouTube's page on [managing your channel's profile](https://support.google.com/youtube/answer/2657964) says you can change your channel name twice within 14 days, and your handle twice within 14 days.

To check before you upload, use the [YouTube title checker](/tools/youtube-title-checker), the [YouTube description counter](/tools/youtube-description-character-counter), which counts bytes, and the [YouTube channel counter](/tools/youtube-channel-name-character-counter) for your handle and channel description. The [guide to scheduling YouTube videos](/blog/how-to-schedule-youtube-videos) covers the rest of the upload.

## What are LinkedIn's character limits?

LinkedIn's help page on the [differences between posts and articles](https://www.linkedin.com/help/linkedin/answer/86780) says a post can be up to 3,000 characters and an article up to 125,000. A post is what appears in the feed; an article is a long-form piece published on LinkedIn with its own page.

### Comments and groups

LinkedIn's help page on [limits for groups](https://www.linkedin.com/help/linkedin/answer/a544801) lists 3,000 characters for a group post, 1,250 for a comment, and 20 mentions within one conversation. LinkedIn doesn't publish a separate comment limit for regular feed posts; it's reported as the same 1,250.

### Headline and About section

LinkedIn's help center doesn't state a headline or About length. The headline is reported at 220 characters and the About section at 2,600.

### Through LinkedIn's API

Microsoft's documentation for LinkedIn's [Posts API](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/posts-api) lists a field-too-long error for post text that's over the maximum, but doesn't state the number, so the 3,000 from the help center is the figure to plan around.

The [LinkedIn character counter](/tools/linkedin-character-counter) checks a post, and the [LinkedIn headline counter](/tools/linkedin-headline-character-counter) checks the headline, About section and comments. For images and video, see the [LinkedIn post size guide](/blog/linkedin-post-size).

## What are the limits on Facebook, Reddit and TikTok?

### Facebook Pages

Meta's [Page feed reference](https://developers.facebook.com/docs/graph-api/reference/page/feed) describes the message field as the main body of the post, and says it can mention other Pages, but gives no maximum length. The limit is widely reported as 63,206 characters, far more than a normal post needs. The [Facebook character counter](/tools/facebook-character-counter) shows where you are.

### Reddit

Reddit's [API documentation](https://www.reddit.com/dev/api/) describes the title of a submission as up to 300 characters long, and limits flair text chosen at submission to 64 characters. It doesn't state a limit for the body of a text post or for comments. The body is reported at 40,000 characters. The [Reddit title counter](/tools/reddit-title-counter) and [Reddit post counter](/tools/reddit-post-character-counter) check each part.

Many communities also require flair or allow only some post types, and PostMesh checks a community's rules like these before it posts. The [Reddit karma requirements guide](/blog/reddit-karma-requirements) covers another kind of rule communities set.

### TikTok

TikTok's developer site wasn't reachable when this guide was checked, so the TikTok numbers here are the ones PostMesh enforces when it publishes through TikTok's Content Posting API, not figures quoted from a TikTok page: 2,200 characters for a video caption, and 90 for the title and 4,000 for the description of a photo post. PostMesh counts TikTok captions in UTF-16 units, the way most apps store text, where most emoji count as 2.

TikTok doesn't publish its profile limits either. The bio is reported at 80 characters, the display name at 30 and the username at 24, using letters, numbers, underscores and periods. The [TikTok caption counter](/tools/tiktok-caption-character-counter) and the [TikTok bio counter](/tools/tiktok-bio-character-counter) check both, and the [guide to scheduling TikTok videos](/blog/how-to-schedule-tiktok-videos) covers posting.

## What are the limits on Discord, Telegram, Slack, Bluesky and Pinterest?

### Discord

Discord's developer documentation for [messages](https://docs.discord.com/developers/resources/message) limits message content to 2,000 characters. Discord's support page on [Nitro](https://support.discord.com/hc/en-us/articles/115000435108-What-is-Discord-Nitro) lists longer messages, up to 4,000 characters, as a Nitro perk. Bots that send embeds work to separate limits: 256 characters for an embed title, 4,096 for its description, up to 25 fields with 256-character names and 1,024-character values, 2,048 for the footer and 256 for the author name, with 6,000 characters across all embeds in one message.

Discord's [update of September 25, 2026](https://discord.com/blog/discord-update-september-25-2026) raised the bio limit from 190 to 300 characters. Its support page on [usernames and display names](https://support.discord.com/hc/en-us/articles/12620128861463-New-Usernames-Display-Names) says usernames are 2 to 32 characters, lowercase, using Latin letters, numbers, underscores and periods, with no two periods in a row. Display names are 1 to 32 characters and can include spaces, emoji and non-Latin letters. The [Discord character counter](/tools/discord-character-counter) checks all four, and [Discord bio ideas](/blog/discord-bio-ideas) has examples to start from.

### Telegram

The [Telegram Bot API](https://core.telegram.org/bots/api#sendmessage) limits a message sent by a bot to 4,096 characters and a media caption to 1,024, both measured after formatting is parsed, so the markup itself doesn't count. Telegram's [client configuration](https://core.telegram.org/api/config) sets bios at 70 characters, or 140 with Telegram Premium, and captions at 1,024, or 4,096 with Premium. Usernames are 5 to 32 characters using a to z, 0 to 9 and underscores, and aren't case-sensitive, according to the [account.updateUsername reference](https://core.telegram.org/method/account.updateUsername). The [Telegram character counter](/tools/telegram-character-counter) checks messages and profiles.

### Slack

Slack's [chat.postMessage reference](https://docs.slack.dev/reference/methods/chat.postMessage/) recommends keeping a message to 4,000 characters for best results and says Slack truncates messages longer than 40,000. Messages sent with Slack's markdown field are limited to 12,000 characters. Messages built from blocks follow each block type's own limits instead. The [Slack character counter](/tools/slack-character-counter) checks a message against the 40,000 limit.

### Bluesky

Bluesky's developer documentation describes how post text is stored but doesn't state a length on the pages we could open. The post limit is reported as 300 graphemes, the bio as 256 and the display name as 64. A grapheme is one visible character, so an emoji counts once, however many code points it's built from. Bluesky's [rich text guide](https://bsky.network/docs/about-bluesky-content/post-richtext) explains that text is UTF-8 and that links and mentions are located by byte position, which matters to developers but not to the count you see. The [Bluesky character counter](/tools/bluesky-character-counter) counts graphemes.

### Pinterest

Pinterest's [product specs](https://help.pinterest.com/en/business/article/pinterest-product-specs) give every Pin format a title of up to 100 characters and a description of up to 800. The page is written for ads, and it notes that only about the first 40 characters of a title show in feeds, or 30 in double-byte languages. Pinterest doesn't publish board name or profile limits; they're reported at 50 and 500 characters. The [Pinterest character counter](/tools/pinterest-character-counter) checks titles, descriptions, board names and your profile.

## What are the bio, name and username limits on each network?

Profile fields have their own limits, separate from posts. Here they are in one place. Where a network doesn't publish a number, it's marked reported.

| Network | Bio or description | Display name | Username or handle |
| --- | --- | --- | --- |
| X | 160 (official) | 50 (official) | 15, letters, numbers and underscores (official) |
| Instagram | 150 (reported) | Not published | 30 (reported) |
| TikTok | 80 (reported) | 30 (reported) | 24 (reported) |
| LinkedIn | Headline 220, About 2,600 (reported) | Not published | Not published |
| YouTube | Channel description 1,000 (official) | Channel title 30 in the API (official) | 3 to 30 (official) |
| Discord | 300 (official) | 1 to 32 (official) | 2 to 32, lowercase (official) |
| Telegram | 70, or 140 with Premium (official) | Not published | 5 to 32 (official) |
| Bluesky | 256 graphemes (reported) | 64 graphemes (reported) | Not published |
| Pinterest | 500 (reported) | Not published | Not published |

### Rules beyond length

Usernames are stricter than bios on every network that documents them. X, Telegram and Discord all limit usernames to a short set of characters, and Discord forces them to lowercase. YouTube handles accept letters from 75 languages but can't mix left-to-right and right-to-left scripts, apart from numbers at the end. Display names are looser: Discord lets you change yours whenever you like, while YouTube allows two channel name changes in 14 days.

If you're writing a bio, it helps to draft it in a counter that knows the network's limit, then paste it in. The X, Instagram, TikTok, LinkedIn and YouTube counters linked above all include profile fields, and the [guide to making your X account public](/blog/how-to-make-your-x-account-public) covers another X profile setting, protected posts.

## Why do emoji, links and accents count differently?

Computers can measure text in several units, and each network picks one. Code points are roughly one per symbol. UTF-16 units are how JavaScript and many apps hold text in memory. UTF-8 bytes are how text is usually stored and sent over the internet. Graphemes are what a person sees as one character. Plain English letters cost 1 in every unit. Emoji, accents and non-Latin scripts cost more in some.

| Character | Code points | UTF-16 units | UTF-8 bytes | Weight on X |
| --- | --- | --- | --- | --- |
| a | 1 | 1 | 1 | 1 |
| é | 1 | 1 | 2 | 1 |
| 日 | 1 | 1 | 3 | 2 |
| 😀 | 1 | 2 | 4 | 2 |
| 👍🏽 (with skin tone) | 2 | 4 | 8 | 2 |
| 👨‍👩‍👧‍👦 (family) | 7 | 11 | 25 | 2 |
| 𝐁 (styled bold letter) | 1 | 2 | 4 | Default weight of 2 |

### Which unit each network uses

| Network and field | Unit | Where it's stated |
| --- | --- | --- |
| X post | Weighted: most letters 1, emoji and CJK 2, links 23 | X developer docs |
| Threads post | Characters, with emoji counted by UTF-8 bytes | Threads posts guide |
| YouTube description | UTF-8 bytes | YouTube Data API |
| YouTube title and tags | Characters | YouTube Data API |
| Telegram messages and captions | Characters after formatting is parsed | Telegram Bot API |
| Bluesky post | Graphemes (reported) | Not published |
| TikTok caption | UTF-16 units in PostMesh's check | PostMesh |

**Counted in characters**
- Instagram, LinkedIn, Reddit titles
- YouTube titles and tags
- Discord, Slack, Telegram

**Weighted or byte-based**
- X: emoji and CJK 2, links 23
- Threads: emoji by UTF-8 bytes
- YouTube descriptions: UTF-8 bytes

**Counted in graphemes**
- Bluesky (reported)
- An emoji counts once
- Closest to what you see

*Based on each network's developer documentation; Bluesky's unit is reported.*

### A worked example

Take this post: Big news: our spring menu is live, followed by a cherry blossom emoji and a 49-character link to the menu page. It's 85 code points long. Here's how the same text measures on different networks:

- X: 60. The 35 letters, spaces and punctuation marks count 1 each, the emoji counts 2, and the link counts 23 instead of 49.
- TikTok, in UTF-16 units: 86, because the emoji takes 2 units.
- YouTube description, in UTF-8 bytes: 88, because the emoji takes 4 bytes.
- Threads: about 88, since Threads counts the emoji as its 4 UTF-8 bytes.

Non-Latin text shows the difference even more clearly. A 14-character Japanese sentence weighs 28 on X, because each character counts 2, and takes 42 bytes of a YouTube description, because each character is 3 bytes. A family emoji is 2 on X, 11 UTF-16 units and 25 bytes, so a description full of them runs out of room fast.

### Styled fonts cost more than they look

The bold, italic and script letters made by font generators aren't formatted text. They're separate Unicode symbols, mostly from a mathematical letters block, and each one takes 2 UTF-16 units and 4 UTF-8 bytes. On X they fall outside the standard ranges, so expect them to weigh 2 each. Use them for a word or two, not a whole caption. The guide to [social media fonts](/blog/social-media-fonts-copy-and-paste) explains how they work.

> Spaces and line breaks count on every network listed here, one each. Blank lines between paragraphs add up quickly on X and Threads.

## How do I fit one post on every network?

When the same post goes to several networks, the shortest limit sets the pace. A caption for X, Threads and LinkedIn has to fit X's 280, even though LinkedIn allows ten times that. There are two ways to handle it, and most people end up using both.

1. **Write the short version first**: Draft for X at 280 or less, counting each link as 23 and each emoji as 2. A tight version is easier to lengthen than a long one is to cut.
2. **Expand it for the roomy networks**: Add context, a list or a story for LinkedIn and Facebook, where you have thousands of characters. Keep the opening line able to stand on its own.
3. **Handle titles separately**: Reddit needs a title of up to 300 characters, YouTube up to 100, and a TikTok photo post up to 90. Write them as their own text, not a copy of the caption.
4. **Count hashtags and links where they're capped**: Instagram allows 5 hashtags per post (its API reference still says 30) and 20 mentions. Threads stops at 5 links and uses only the first topic tag. Trim them for those networks.
5. **Check the bytes on YouTube**: If the description has emoji or non-English text, check it in a byte counter. It can be well under 5,000 characters and still be over 5,000 bytes.

1. Write the X version at 280 or less
2. Lengthen it for LinkedIn and Facebook
3. Write titles for Reddit, YouTube and TikTok photos
4. Trim hashtags for Instagram and links for Threads
5. Check YouTube descriptions in bytes

*A workflow built on the limits in this guide.*

In PostMesh, you write one caption and can give any network its own version, and it checks the caption length for every network before you send, so a post that's too long for X or Threads shows up in the composer rather than as a failed post later. The [guide to cross-posting to multiple platforms](/blog/how-to-cross-post-to-multiple-platforms) covers the wider workflow, and [does cross-posting hurt engagement](/blog/does-cross-posting-hurt-engagement) looks at whether identical posts everywhere are a good idea.

## Why was my post rejected or cut off?

When a post fails or gets shortened, the cause is usually one of a handful of limits. Here's how to tell which one you hit.

### X says the post is too long, but it looks short

Emoji and Chinese, Japanese or Korean characters weigh 2 each on X, so a post that looks like 200 characters can weigh more than 280. Check it in a counter that applies X's weights, and swap a few emoji for words.

### A Threads post failed with links in it

Since December 22, 2025, a Threads post with more than 5 unique links fails. Remove links until there are 5 or fewer, remembering that the link preview counts too if it points somewhere new.

### A YouTube description won't save

Check the byte count, not the character count, and look for < or > anywhere in the text. Both are rejected by the API, and arrows written as -> are an easy way to add one without noticing.

### An Instagram caption was rejected

Count the hashtags and @ mentions as well as the characters. Thirty-one hashtags breaks the rule even in a short caption.

### A Slack message got cut off

Slack truncates messages over 40,000 characters. Split long updates into a thread, or move them into a document and post the link.

**Where did the post fail?**
- X, and it has emoji or CJK text → Each weighs 2: shorten until the weighted count is 280 or less
- Threads, and it has several links → Keep 5 unique links or fewer, counting the preview
- YouTube description → Check bytes, and remove any < or > characters
- Instagram caption → Check 2,200 characters, 5 hashtags and 20 mentions together

*From X's, Meta's and YouTube's documentation and help pages.*

If a post went through but isn't being seen, length probably isn't the problem. The [X shadowban test](/blog/x-shadowban-test) covers how to check whether your posts are visible on X.

## What to check before you post

A quick pass before you publish catches nearly every length problem, especially for posts you're scheduling to go out while you're not watching.

**Before you publish**
- [ ] The X version weighs 280 or less, with links at 23 and emoji at 2
- [ ] The Threads version is under 500, with 5 links or fewer
- [ ] Instagram has 5 hashtags or fewer and 20 mentions or fewer
- [ ] Reddit, YouTube and TikTok photo titles are written separately
- [ ] The YouTube description is under 5,000 bytes, with no < or >
- [ ] Any styled font is limited to a word or two
- [ ] Profile text fits the bio, name and username limits

*Limits from each network's own documentation, as listed in this guide.*

Text is only half of a post. For photos and banners, the [social media image sizes guide](/blog/social-media-image-sizes) lists the dimensions for every network. Each network's details in PostMesh, including caption limits and file sizes, are on its page, for example [X](/platform/twitter), [Instagram](/platform/instagram) and [YouTube](/platform/youtube), and plans are on the [pricing page](/pricing).

## Questions

### Which social network has the shortest post limit?

X, at 280 weighted characters for accounts without Premium. Bluesky is reported at 300 graphemes and Threads allows 500.

### Do X Premium subscribers get more characters?

Yes. X Help says Premium subscribers can write posts of up to 25,000 characters, and anyone can read them.

### Is the YouTube description limit 5,000 characters or 5,000 bytes?

YouTube's help page says 5,000 characters, and the Data API says 5,000 bytes. They match for plain English, but emoji and non-Latin text use several bytes per character.

### Does a link count toward the character limit?

On X, every link counts as 23 characters whatever its length. Most other networks count the link's real length, and Threads also caps a post at 5 links.

### How many hashtags can I use on Instagram?

Up to 30 per caption, according to Meta's API reference, alongside a limit of 20 @ mentions.

### How long can an X bio be?

160 characters, according to X Help. Your display name can be up to 50 characters and your username up to 15.

### What is the Discord message limit?

2,000 characters, or 4,000 with Nitro. Bios were raised to 300 characters in September 2026.

### Why do some limits say reported?

The network doesn't publish that number on a help or developer page we could find. Reported limits are what the app is widely seen to enforce, and they can change.

### Do spaces and line breaks count as characters?

Yes, on every network in this guide. Each space and each line break uses one character.

### Can I use more than one hashtag on Threads?

You can type several, but Threads turns only the first valid one into a topic tag. The rest stay as plain text.

## Sources

- [Instagram Help Center: Use hashtags on Instagram](https://help.instagram.com/351460621611097)

- [X developer docs: Counting characters](https://docs.x.com/fundamentals/counting-characters)

- [X Help: About X Premium](https://help.x.com/en/using-x/x-premium)

- [X Help: Help with username registration](https://help.x.com/en/managing-your-account/x-username-rules)

- [X Help: How to customize your profile](https://help.x.com/en/managing-your-account/how-to-customize-your-profile)

- [Meta for Developers: IG User Media reference](https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-user/media)

- [Instagram Help: How to change your Instagram profile information](https://help.instagram.com/583107688369069)

- [Meta for Developers: Threads API overview](https://developers.facebook.com/docs/threads/overview)

- [Meta for Developers: Threads posts](https://developers.facebook.com/docs/threads/posts/)

- [Meta for Developers: Threads text attachments](https://developers.facebook.com/documentation/threads/create-posts/text-attachments)

- [Meta for Developers: Page feed reference](https://developers.facebook.com/docs/graph-api/reference/page/feed)

- [YouTube Data API: Videos](https://developers.google.com/youtube/v3/docs/videos)

- [YouTube Data API: Channels](https://developers.google.com/youtube/v3/docs/channels)

- [YouTube Help: Edit video settings](https://support.google.com/youtube/answer/57404)

- [YouTube Help: Learn about YouTube handles](https://support.google.com/youtube/answer/11585688)

- [YouTube Help: Manage your YouTube channel's profile](https://support.google.com/youtube/answer/2657964)

- [LinkedIn Help: Differences between posting updates and publishing articles](https://www.linkedin.com/help/linkedin/answer/86780)

- [LinkedIn Help: General limits for LinkedIn groups](https://www.linkedin.com/help/linkedin/answer/a544801)

- [Microsoft Learn: LinkedIn Posts API](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/posts-api)

- [Reddit API documentation](https://www.reddit.com/dev/api/)

- [Discord developer docs: Message](https://docs.discord.com/developers/resources/message)

- [Discord Support: What are Nitro and Nitro Basic?](https://support.discord.com/hc/en-us/articles/115000435108-What-is-Discord-Nitro)

- [Discord blog: Discord update, September 25, 2026](https://discord.com/blog/discord-update-september-25-2026)

- [Discord Support: New usernames and display names](https://support.discord.com/hc/en-us/articles/12620128861463-New-Usernames-Display-Names)

- [Telegram Bot API: sendMessage](https://core.telegram.org/bots/api#sendmessage)

- [Telegram API: Client configuration](https://core.telegram.org/api/config)

- [Telegram API: account.updateUsername](https://core.telegram.org/method/account.updateUsername)

- [Slack API: chat.postMessage](https://docs.slack.dev/reference/methods/chat.postMessage/)

- [Bluesky docs: Rich text facets](https://bsky.network/docs/about-bluesky-content/post-richtext)

- [Pinterest Help: Pinterest product specs](https://help.pinterest.com/en/business/article/pinterest-product-specs)