TL;DR
- Standard tweets: 280 characters max
- X Premium tweets: Up to 25,000 characters
- DMs: 10,000 characters
- Bio: 160 characters
- Display name: 50 characters
- Username: 15 characters
- Alt text: 1,000 characters
Why Character Counts Matter on X
X (formerly Twitter) built its identity on brevity. The original 140-character limit forced users to be concise. When they doubled it to 280 in 2017, the platform kept its punchy, fast-scrolling feel. But here’s what trips people up: not all characters are equal. URLs, emojis, and mentions eat into your count differently than plain text. If you’ve ever written what seemed like a short tweet only to see “Your post is over the character limit” - you’ve hit this problem. Understanding the exact limits saves you from editing frustration and helps you craft posts that fit perfectly on the first try.The Complete X/Twitter Character Limits
Tweets (Posts)
| Account Type | Character Limit |
|---|---|
| Standard (free) | 280 characters |
| X Premium | 25,000 characters |
| X Premium+ | 25,000 characters |
Posts longer than 280 characters are truncated in the timeline. Only Premium subscribers can create them, but everyone can read them. - X Help Center
Direct Messages
DMs allow up to 10,000 characters per message. This applies to both standard and Premium accounts.Profile Elements
| Element | Limit |
|---|---|
| Display name | 50 characters |
| Username (@handle) | 15 characters |
| Bio | 160 characters |
| Location | 30 characters |
Media Alt Text
Alt text for images is capped at 1,000 characters. This is accessibility text for screen readers - describe what’s in the image clearly.How Characters Are Counted
X counts characters using Unicode normalization. In practice, this means: 1 character each:- Letters (A-Z, a-z)
- Numbers (0-9)
- Spaces
- Basic punctuation
- Most emojis (yes, that heart costs you double)
- Some special characters
- Characters from certain languages (Chinese, Japanese, Korean)
- URLs: All URLs are shortened to 23 characters, regardless of actual length. A 100-character URL still counts as 23.
- Mentions: @username counts as its full length including the @ symbol
- Hashtags: Full length including the # symbol
The 23-character URL rule is crucial for link-heavy tweets. A long tracking URL and a short bit.ly link cost the same character budget.
Counting Characters Correctly
Quick Mental Math
For a typical tweet with text, one emoji, and one link:- Your text: count normally
- Each emoji: add 2
- Your link: add 23
Using X’s Built-in Counter
When composing a tweet on X (web or app), a circular progress indicator appears. It fills as you type:- Blue arc: You’re under the limit
- Yellow arc: Approaching the limit
- Red arc: Over the limit
Third-Party Character Counters
Several tools count characters before you paste into X:- charactercounter.com - Simple web tool, shows character and word count
- lettercount.com - Includes X-specific counting mode
- Your scheduling tool - Most social media schedulers show character counts per platform
Platform-Specific Quirks
Threads (Multi-tweet Posts)
When creating a thread, each tweet in the thread has its own 280-character limit. The platform adds “1/5”, “2/5” etc. automatically - this counts against your limit. If you’re numbering manually, factor that in: “1/10 ” costs 5 characters.Quote Tweets
When you quote-tweet, you get the full 280 characters for your commentary. The quoted tweet appears as an embedded card and doesn’t count against your limit.Replies
Replies also get 280 characters. The @mention of who you’re replying to doesn’t count against this limit - X handles that separately.Premium Long-Form: When to Use It
X Premium’s 25,000-character posts are tempting for long-form content. But consider: Good use cases:- Detailed threads consolidated into one post
- Technical explanations that need space
- Essays or opinion pieces
- Anything that could be a normal thread (engagement is often better)
- Content that should be a blog post (SEO is better on your own site)
- Padding short ideas to seem more substantial
Character Limits for API Integrations
If you’re posting to X via API (directly or through a scheduling platform), the character validation happens when you submit the post. The X API v2 returns specific error codes:Comparing X to Other Platforms
X’s 280-character limit is among the shortest. This constraint is a feature, not a bug - it forces clarity and makes the timeline scannable.
Tips for Writing Within the Limit
1. Cut filler words- “In order to” → “To”
- “The fact that” → (delete)
- “I think that” → (just state the thought)
- “twenty-three” (12 chars) → “23” (2 chars)
- “with” → “w/” in casual contexts
- “versus” → “vs”
- Don’t describe what’s in the link. Just tease it.
- Bad: “Here’s an article about character limits on Twitter” (53 chars)
- Good: “X character limits, explained” (29 chars) + link
- If you’re fighting the limit, you probably have two thoughts. Make them two tweets.
Posting to X programmatically? If you’re building an app that posts to X, character validation should happen before you hit the API. Our X/Twitter integration handles limit validation automatically - posts over 280 fail gracefully with clear error messages telling you exactly how many characters to cut.
X/Twitter API Documentation
Full X posting options including threads and media