Social media character limits in 2026, and how each platform counts
Post limits for X, LinkedIn, Bluesky, Mastodon, Threads, Instagram, Pinterest and YouTube, from each platform's own docs, and how each counts links, emoji and non-Latin text.

TL;DR
- Social media character limits on October 1, 2026: X 280 (25,000 with Premium), LinkedIn 3,000, Bluesky 300 graphemes, Mastodon 500 by default, Threads 500, Instagram captions 2,200, a Pinterest description 800 through the API, and a YouTube title 100.
- The number alone is not enough, because each network counts differently. X counts every link as 23 and CJK characters and emoji as 2. Bluesky and Mastodon count what a reader sees as one character. YouTube counts description bytes.
- Mastodon counts a content warning toward the post's limit, and each Mastodon server can set its own limit, so 500 is only the default.
- The 500-character Pinterest description figure repeated in many tables is not what Pinterest's API reference says: the API accepts 800 characters, with 100 for the title and 500 for alt text.
- A scheduling tool may count differently from the network it posts to. Test a post with links, emoji or non-Latin text before trusting its counter.
Character limits by platform in 2026
Social media character limits differ by network and by field, from 100 characters for a YouTube or Pinterest title to 25,000 for an X Premium post. The table below lists the limit on post text for eight networks as each platform documented it on October 1, 2026, with the unit it counts in. Each figure links to the platform's own page in the sources list.
| Network | Post text limit | Counted in | Other text fields |
|---|---|---|---|
| X | 280; 25,000 for Premium subscribers | Weighted characters: most Latin, Cyrillic, Arabic and Devanagari characters weigh 1, CJK characters and emoji weigh 2, every link counts 23 | None in the post itself |
| 3,000 | Characters (LinkedIn does not document the counting unit) | None in the post itself | |
| Bluesky | 300 | Graphemes, what a reader sees as one character, with a ceiling of 3,000 bytes | None in the post text |
| Mastodon | 500 by default; each server sets its own | Graphemes; every link counts 23; a mention counts only its username; the content warning counts too | Content warning (shares the limit) |
| Threads | 500 | Characters, with each emoji counted as its UTF-8 byte length | Up to 5 links per post |
| 2,200 for a caption | Characters | Up to 30 hashtags and 20 @ tags per caption | |
| 800 for the description (API) | Characters | Title 100, alt text 500, link 2,048 | |
| YouTube | 5,000 bytes for the description | Bytes, so non-Latin text and emoji use more than one each | Title 100 characters; tags 500 characters in total |
Facebook and TikTok are left out on purpose. Their limits could not be confirmed from the platform's own documentation on the access date, and this table lists only figures a platform states itself.
The X figures come from X's character counting documentation and its Premium help page, which says only Premium subscribers can write posts longer than 280 characters, while everyone can read them. LinkedIn's help page on posting sets 3,000 characters for a post. Instagram's caption caps come from Meta's media publishing reference, and the YouTube fields from the YouTube Data API videos resource, which also bars the characters < and > in titles and descriptions.
How X counts characters
X counts a post by weight, not by characters. Its counting documentation says every link is shortened to a t.co address and counts as 23 characters, whatever its real length, and every emoji counts as 2.
The weights sit in X's published twitter-text configuration. Characters from Unicode code point 0 to 4351 weigh 1, along with a few punctuation ranges. That block covers Latin, Greek, Cyrillic, Hebrew, Arabic and Devanagari. Every other character weighs 2, which includes Chinese, Japanese and Korean. A post in Japanese therefore holds 140 characters, not 280.
How Bluesky counts characters
Bluesky counts graphemes, which are the characters a reader sees. The post record's schema sets the text field to at most 300 graphemes and at most 3,000 bytes. A flag or a family emoji is several Unicode code points, but it counts as one grapheme.
A link on Bluesky counts at the length of the text in the post, since the schema has no link allowance like X's 23 characters. A long tracking link can take a third of a Bluesky post, so shorten links before posting there.
Why Mastodon limits differ by server
Mastodon's limit is set by each server, not by the network. The Instance entity documentation lists max_characters, the most characters a server allows per post, and characters_reserved_per_url, the fixed length each link counts as. Any app can read both from the server before posting.
The default comes from Mastodon's own code. Its status length validator sets 500 characters and counts graphemes. It replaces each link with 23 characters and cuts each mention down to its username, so @name@example.social counts as @name. It also joins the content warning to the post text before counting, so a 100-character content warning leaves 400 characters for the post on a server with the default limit.
Pinterest description length: 500 or 800 characters
Pinterest's API accepts a Pin description of up to 800 characters. That figure is in Pinterest's own OpenAPI description of its v5 API, which also caps the title at 100 characters, the alt text at 500 and the destination link at 2,048.
Many third-party tables give 500 for the description. That figure is not in the API reference. A tool that posts through the API, overads included, can apply a lower cap of its own, which is safe but shorter than the network allows.
Do links, mentions and emoji count toward the limit
Links, mentions and emoji count toward the limit on the networks that publish their counting rules, but at different weights. The table sums up the three cases people most often get wrong, for the networks that document them.
| Network | A link counts as | A mention counts as | An emoji counts as |
|---|---|---|---|
| X | 23 | Its full text, except auto-filled reply mentions, which are free | 2 |
| Bluesky | Its full text | Its full text | 1 |
| Mastodon | 23 (the server's setting) | Only the username part | 1 |
| Threads | Not documented; at most 5 unique links | Not documented | Its UTF-8 byte length, often 4 |
| YouTube description | Its bytes | Not applicable | Its UTF-8 byte length |
The Threads rule is in Meta's Threads posts documentation, which says emoji count as their number of UTF-8 bytes toward the 500-character limit. The same page says a post with more than 5 unique links has failed at creation since December 22, 2025, and that a link repeated in the text counts once.
How a scheduling tool can count differently from the network
A scheduling tool checks length with its own code, and that code can count differently from the network. overads Publish is an example. Its backend counts graphemes for Bluesky, as Bluesky does. For X, LinkedIn, Mastodon and Pinterest it counts UTF-16 code units, the length a JavaScript string reports.
To measure the effect, five sample posts were counted on October 1, 2026 with overads' rules as written in its code and with each network's published rules, in Node.js 24. Nothing was posted to a live account.
| Sample post | overads counts | X counts | Mastodon counts |
|---|---|---|---|
| 179 letters, a space and a 111-character tracking link | 291 | 203 | 203 |
| 150 Japanese characters | 150 | 300 | 150 |
| 150 Devanagari letters | 150 | 150 | 150 |
| 40 flag emoji | 160 | 80 | 40 |
| 20 family emoji | 220 | 40 | 20 |
The results fall into two groups. For links and emoji, overads counts more than X or Mastodon, so its check is stricter than the network's and can refuse a post the network would accept. For Chinese, Japanese and Korean text, overads counts less than X, so a 150-character Japanese post passes overads' 280 check and still exceeds X's limit.
One more gap sits on Mastodon. overads checks the post text against the server's limit, and its Mastodon channel page describes reading that limit when the account connects. The optional content warning is not added to that count, while Mastodon adds it. Keep post text and content warning together under the server's limit.
What happens when a post runs over the limit
A post over the limit is refused, not cut short, on the networks whose documentation or code describes the case. X's documentation defines the 280 as a maximum. LinkedIn's Posts API answers FIELD_LENGTH_TOO_LONG when the post text is too long. Threads names a specific error for too many links, and Mastodon's validator returns an over-limit error.
In overads, limits are checked when a post is created or edited, not at the scheduled minute. The X channel page documents the refusal: HTTP 400 with the code TOO_LONG and a sentence naming the cap. The errors reference lists the other channel-limit codes, such as TOO_MANY_ITEMS for too many images. The steps that avoid most refusals:
- Write for the smallest limit among the networks you post to, usually X at 280.
- Shorten tracking links before posting to Bluesky or Threads, where a link counts at full length.
- Count a Mastodon content warning as part of the post.
- Write a separate version for X when the post is in Chinese, Japanese or Korean.
- Check the counter of the tool you schedule with against the network's own composer once, with a post that has links and emoji.
Where overads fits
overads Publish schedules posts to X, LinkedIn, Bluesky, Mastodon and Pinterest from one composer. It shows a counter per network and lets a team write a separate version of the post for each one. Its caps on October 1, 2026 are X 280, LinkedIn 3,000, Bluesky 300 graphemes, Mastodon 500 or the server's own limit, and Pinterest 500 for the description and 100 for the title, as its Pinterest channel page states.
What overads Publish does not do today:
- It does not publish to Instagram, Facebook, Threads, YouTube or TikTok for customers. Those channels are built but wait on each platform's review, and TikTok cannot be connected yet.
- It caps X posts at 280 characters, so X Premium posts longer than that cannot be scheduled through it.
- It does not apply X's weighted count, so a Chinese, Japanese or Korean post can pass its check and still be too long for X.
- It does not count a Mastodon content warning toward the limit.
- It caps Pinterest descriptions at 500 characters, below the 800 the API accepts.
A team that writes long X Premium posts, or posts to X mainly in Chinese, Japanese or Korean, is better served by X's own composer for those posts. The Bluesky channel page documents the grapheme count that overads shares with Bluesky.
Frequently asked questions
Do spaces and line breaks count toward a character limit?
Yes. A space or a line break is a character on every network in this guide, so a post laid out with many short lines uses more of its limit than the same words in one paragraph.
Does an @mention at the start of an X reply count?
No. X's counting documentation says the mentions it fills in automatically at the start of a reply do not count toward the 280, while mentions you type yourself do.
Is there a hashtag limit as well as a character limit?
On Instagram, yes: Meta's API reference caps a caption at 30 hashtags and 20 @ tags. Threads limits a post to 5 links. The other networks here set no separate hashtag cap in the documents cited.
Sources
- Counting characters. X. Accessed Oct 1, 2026.
- twitter-text configuration, version 3. X (twitter-text on GitHub). Accessed Oct 1, 2026.
- About X Premium. X Help Center. Accessed Oct 1, 2026.
- Post and share updates. LinkedIn Help. Accessed Oct 1, 2026.
- Posts API. LinkedIn (Microsoft Learn), May 7, 2026. Accessed Oct 1, 2026.
- app.bsky.feed.post lexicon. Bluesky (atproto on GitHub). Accessed Oct 1, 2026.
- Instance entity. Mastodon documentation. Accessed Oct 1, 2026.
- StatusLengthValidator. Mastodon (source on GitHub). Accessed Oct 1, 2026.
- Pinterest REST API v5 OpenAPI description. Pinterest (api-description on GitHub). Accessed Oct 1, 2026.
- Threads posts. Meta for Developers. Accessed Oct 1, 2026.
- IG User Media reference. Meta for Developers. Accessed Oct 1, 2026.
- Videos resource, YouTube Data API. Google for Developers. Accessed Oct 1, 2026.
- X channel. overads. Accessed Oct 1, 2026.
- Bluesky channel. overads. Accessed Oct 1, 2026.
- Mastodon channel. overads. Accessed Oct 1, 2026.
- Pinterest channel. overads. Accessed Oct 1, 2026.
Drafted with AI assistance, then checked against primary sources and the product itself by the overads team.
Keep reading
Meta One pricing for business: what each plan costs and unlocks
Meta One's four business plans cost $14.99 to $499 a month for each Facebook Page, Instagram profile or WhatsApp number. A feature-by-feature table from Meta's own pages, the monthly link caps, per-profile costs and what stays free.
10 min readWhat is an MCP server? A guide for marketing teams
An MCP server offers tools to AI assistants such as Claude, ChatGPT or Cursor over the Model Context Protocol. What it is, how it differs from an API, how the spec changed through July 2026, and a real server's tools, read and write.
10 min readClaude Opus 5.5 for marketers: what changed, what it costs, which jobs it suits
Anthropic priced Opus 5.5 20% below Opus 5 per token and says it works at Fable 5.1's level. What changed for people who run ads, posts and reports, how it compares with GPT-6, and what Claude can and cannot do in overads.
12 min readOne draft, a separate counter for each network
overads Publish schedules posts to X, LinkedIn, Bluesky, Mastodon and Pinterest from one composer, with a counter per network and per-network text when one post does not fit them all.
Start free
