Twitter Character Limits and the Three Other Limits People Confuse Them With
Twitter Character Limits and the Three Other Limits People Confuse Them With
"I hit a Twitter limit" describes four unrelated situations, and the fix is different for each.
| Limit | What it caps | Symptom |
|---|---|---|
| Character limit | Length of one post | Compose box won't let you type more |
| Daily posting limit | Posts per day | "You are over the daily limit" |
| Account restriction | Reach, not volume | Everything works, nobody sees it |
| API rate limit | Requests per window | 429 responses from code |
★Most articles only cover the first one.★ This covers all four, because the one you're hitting determines whether you need to shorten your text, wait a day, check your account, or fix your code.
The character limit
280 characters for a standard post. 25,000 for accounts with a paid subscription.
The 25,000 figure is the source of most confusion: ★a long post is still 280 characters in previews★ — timelines, quotes, and embeds truncate with a "Show more". So a long post reads differently depending on where someone encounters it.
Other length caps:
| Field | Limit |
|---|---|
| Display name | 50 characters |
| Bio | 160 characters |
| Handle | 15 characters |
| Direct message | 10,000 characters |
If you're building something that displays posts, ★the character count you compute has to match X's rules or your previews will be wrong★ — the raw text comes back on every post so you can count it yourself.
★How characters are actually counted★
This is the part that makes character counters give different answers, and it's the real content behind every "tweet character counter" search.
1. Links are a fixed length regardless of the URL. Every link is shortened internally and counts as a constant — roughly 23 characters — ★whether the URL is 20 characters or 200★. A post with three long URLs costs far less than the raw text suggests.
2. Emoji count as 2. Most emoji consume two characters, not one. Some composite emoji — skin tones, family groupings — cost more, because they're several code points joined together.
3. CJK characters count as 2. Chinese, Japanese, and Korean characters each count double. ★So a Chinese post has an effective limit of 140 characters, not 280.★ This surprises people building multilingual tools and is the single most common counting bug.
4. Media doesn't count. Images, video, GIFs, and polls consume none of your character budget. A quoted post's text doesn't count either — only your own commentary.
⚠️ Why naive counters are wrong: len(text) in any language gets all four of these wrong. If you're computing a count, you need to model link shortening and weighted characters, or your number will disagree with X's compose box exactly when it matters.
Daily posting limits
Separate from length, and X doesn't publish exact figures — they vary by account age, verification status, and behaviour.
The published guidance is roughly:
- Posts per day: several hundred, counted over rolling 24 hours
- Direct messages: a few hundred per day
- Follows: capped daily and additionally ratio-limited once you follow far more accounts than follow you
⚠️ ★Why exact numbers aren't publishable: these adjust dynamically. An established account behaving normally has more headroom than a week-old one posting rapidly.★ Anyone quoting a precise figure is quoting a snapshot.
If you hit one: wait. It's a rolling window, so it clears on its own. Nothing accelerates it, and repeatedly retrying makes the pattern look more automated.
"Limited" that isn't a limit
★The most confusing case: everything works but nobody sees your posts.★
That's not a limit in the sense above — you're not blocked from doing anything. It's a visibility question, and the diagnosis is completely different: check whether your posts are findable, not whether actions succeed. The full four-step test is here.
The distinguishing question: can you still post? If yes, you haven't hit a posting limit. If your posts are also findable in search, you probably haven't hit a visibility restriction either — and low reach is ordinary variance.
API rate limits
If you're getting 429 responses from code, that's a fourth thing entirely — request volume per time window, unrelated to how much you post or how long your text is.
Handling it correctly matters more than knowing the numbers, which change: what to do when you hit one.
Counting characters correctly in code
import re
# X shortens every link to a constant length
LINK_LEN = 23
URL = re.compile(r'https?://\S+')
def weighted_length(text):
"""Approximate X's counting: links fixed, CJK and emoji weighted 2."""
# replace links with a fixed-cost placeholder
stripped = URL.sub("", text)
link_cost = len(URL.findall(text)) * LINK_LEN
count = 0
for ch in stripped:
o = ord(ch)
# CJK, full-width forms, and most emoji count double
if (0x1100 <= o <= 0x11FF or 0x2E80 <= o <= 0xA4CF
or 0xAC00 <= o <= 0xD7A3 or 0xF900 <= o <= 0xFAFF
or 0xFE30 <= o <= 0xFE4F or 0xFF00 <= o <= 0xFF60
or o > 0xFFFF):
count += 2
else:
count += 1
return count + link_cost
for s in ["Hello world",
"看看这条推文",
"Check https://example.com/a/very/long/path/that/goes/on"]:
print(f"{weighted_length(s):>4} {s[:45]}")
★This is an approximation, not a reimplementation.★ (The raw text comes back on every post — the counting is yours to do.) X's exact rules involve normalisation details this doesn't model. It's close enough to warn a user before they hit the wall, and you should treat the compose box as authoritative.
Where this matters: any tool that drafts, schedules, or previews posts. ⚠️ Getting it wrong in the CJK direction is the worst version — you'd tell a Chinese user they have 200 characters left when they have 60.
Questions people ask
What is the Twitter character limit? 280 for a standard post; 25,000 with a paid subscription. Previews still truncate at 280.
How many characters is a tweet? 280 by default. Long posts show a "Show more" in timelines rather than displaying in full.
Did Twitter increase the character limit? Yes, for subscribers — up to 25,000. The free tier remains 280.
How many characters in a Twitter post in 2026? 280 standard, 25,000 with a subscription. That hasn't changed recently.
Do links count toward the character limit? Yes, but as a fixed cost — around 23 characters regardless of actual URL length.
Do images count toward the limit? No. Media, polls, and quoted post text consume no character budget.
Do emoji count as one character? No, most count as two. Composite emoji with skin tones or groupings cost more.
How are Chinese characters counted? ★Each counts as two★, so the effective limit is 140 characters for CJK text.
How do Japanese and Korean characters count? Same as Chinese — two each, giving an effective 140.
Why does my character counter disagree with Twitter?
Almost always link shortening or weighted characters. len(text) gets both wrong.
What's the best tweet character counter? Any that models link shortening and CJK weighting. The compose box is the authority; use a counter for drafting.
How do I count characters for a tweet in code? Substitute links with a fixed cost and weight CJK and emoji as two. The example above is a working approximation.
What's the display name character limit? 50 characters.
What's the Twitter bio character limit? 160 characters.
How long can a Twitter handle be? 15 characters, letters, numbers, and underscores only.
What's the direct message character limit? 10,000 characters — much longer than a post.
How many tweets can I post per day? Several hundred, over a rolling 24 hours. X doesn't publish an exact figure because it varies by account.
What happens if I hit the daily tweet limit? Posting is blocked until the rolling window clears. Waiting is the only fix.
How many DMs can I send per day? A few hundred, and lower for new accounts. Not published precisely.
How many people can I follow per day? Capped daily, and additionally ratio-limited once your following count far exceeds your followers.
Why does it say I'm rate limited on Twitter? Either a daily action cap or a reading limit. ★Both are rolling windows that clear on their own within 24 hours, and nothing accelerates them★ — the full mechanics.
Why am I getting 429 errors? That's an API rate limit — request volume, unrelated to posting. See handling it correctly.
What are the Twitter API limits? They vary by endpoint and tier and change over time. See what the tiers cost.
Does deleting tweets free up my daily limit? No. The count is of actions taken, not posts currently existing.
How many characters can a thread have? Each post in a thread has its own limit. Threads are how people exceed 280 without a subscription.
Can I edit a tweet to add characters? Editing is a subscriber feature with a time window, and the same character limit applies.
Does a quote tweet's original text count? No — only your own commentary counts.
How many hashtags can I use? No hard limit, but they consume characters and more than two reduces engagement.
Is there a limit on how many people I can DM at once? Group message size is capped, and bulk DMing is the behaviour most likely to trigger restrictions.
Do polls count toward the character limit? The poll itself doesn't; poll option text has its own separate limit.
Why can't I post even though I'm under 280? Possible causes: a daily cap, an account restriction, or a duplicate-content check — X blocks posting identical text repeatedly.
Can I see my remaining daily limit? No, X doesn't expose a counter. You find out by hitting it.
Do retweets count toward my daily limit? Yes, reposts count as actions.
How do I avoid hitting limits? Space actions out rather than bursting. Rapid sequences are what trip both daily caps and restrictions.
What is the current Twitter character limit? 280 for standard accounts, far higher for subscribers. ★The number people search with a year attached has not moved in a long time★ — it is the subscriber tier that changed, not the base.
How long can a tweet be? 280 characters without a subscription. ★Long-form posts are a paid feature★, which is the actual answer behind most year-stamped searches.
What is the Twitter character count? 280 for the base tier, and the same limit applies to replies and quotes. ★Counting is not naive★ — the composer counts as you type, and links and emoji are measured as below.
Does the character limit include links? Links count as a fixed length, not their actual length. ★A very long URL costs the same as a short one.★
Do emoji count as one character? ★Often not.★ Many count as two, and combined emoji can cost more — which is why a post can be rejected while looking short.
Has the character limit changed? The base limit has been stable. ★What changed is the paid tier gaining much longer posts★ — the source of most confusion here.
Which limit are you actually hitting
Compose box won't accept more text → character limit. Check link and CJK counting before assuming your counter is right.
"Over the daily limit" → action cap. Wait for the rolling window.
Everything works but reach collapsed → not a limit at all. Test visibility instead.
429 from your code → API rate limit. Different problem entirely.
For the last case, our API has no per-user rate limit for you to manage — that's handled on our side. It's read-only, so it can't post on your behalf and can't hit your posting caps either.
Related reading: handling API rate limits · testing for visibility restrictions · measuring reach properly · what API tiers cost.