In the X app: account limits
X caps how many actions an account can take. From X'slimits help page(read 2026-09-27):
| Action | Limit |
|---|---|
| Direct Messages | 500 sent per day |
| Posts (unverified accounts) | 50 original posts and 200 replies per day, also split into half-hour intervals |
| Following | 400 per day; after 5,000 follows, extra follows are limited by account-specific ratios |
| Changing account email | 4 per hour |
The same page also still refers to an overall limit of 2,400 updates per day. X notes that limits count actions from every device and app — web, mobile and third-party apps using your account — and may be lowered temporarily when the site is busy.
How to fix it
- Wait. Time-based limits clear once the window passes — for posts, try again in a few hours.
- Check connected apps. A scheduler, bot or “analytics” app acting for you eats the same limits. Review them under Settings → Security and account access → Apps and sessions.
- Slow down bulk actions. Rapid following/unfollowing or mass replies hit limits fast — and can look spammy enough to reduce your reach (see shadowbans).
In the X API: HTTP 429
If you call the official X API too often you get 429 Too Many Requests. Perdocs.x.com, most limits are counted per 15 minutes (some per 24 hours or per second), and responses carry these headers:
x-rate-limit-limit— requests allowed in the windowx-rate-limit-remaining— requests leftx-rate-limit-reset— Unix time when the window resets
Rate limits and billing are separate on pay-per-use: you can be inside your limits and still pay for every read (see what the X API costs).
Handling 429s in Python
import time, requests
def get(url, **kw):
for attempt in range(5):
r = requests.get(url, **kw)
if r.status_code != 429:
return r
reset = r.headers.get("x-rate-limit-reset") # official X API
retry = r.headers.get("Retry-After") # RelayX and most HTTP APIs
wait = (int(reset) - time.time()) if reset else float(retry or 2 ** attempt)
time.sleep(max(wait, 1))
r.raise_for_status()Beyond retrying: cache profiles instead of re-reading them, request only the pages you need, and spread batch jobs out rather than bursting.
Rate limits on RelayX
RelayX limits requests per second rather than per 15-minute window, and the limit grows with your account's credit balance — from 1 request/second on free trial credits up to 20/second. Over the limit you get429 with a Retry-After header (and X-QPS-Limit showing your current tier); the call isn't charged. Details in credits in practice.
FAQ
What does “rate limit exceeded” mean on X?
You made too many requests or actions in a short time — posting, following, sending DMs, or (for developers) calling the API — and X is temporarily refusing more. It clears on its own when the time window resets.
How long does an X rate limit last?
It depends on the limit. Account limits such as posts and DMs are counted per day (posts also in half-hour intervals); most X API limits reset every 15 minutes, and the exact reset time is in the x-rate-limit-reset response header.
Does a rate limit mean my account is banned?
No. A rate limit is temporary and technical. If it keeps happening while you use X normally, look for a third-party app connected to your account that is using up your limits.
Why do I get 429 errors from the X API?
HTTP 429 means you exceeded the request limit for that endpoint in the current window. Wait until the time in x-rate-limit-reset, then retry with exponential backoff.