Twitter Rate Limits — Exceeded, API Caps & 429 Fixes
Two different things share the name "Twitter rate limit": the "Rate limit exceeded" message regular Twitter users see when they browse too aggressively, and the per-endpoint API limits developers hit when building against the X API. This guide covers both. GetXAPI has no platform-level rate limit caps for developers — throughput scales at $0.001 per call (~20 tweets).
Regular Twitter / X user
"Rate limit exceeded" explained
You got the "Rate limit exceeded" message while browsing X. Why it happens, how long it lasts, and what to do →
Developer building on the API
Twitter / X API rate limits reference
Per-endpoint caps, 429 handling, headers, and how to skip platform-level rate limits with GetXAPI →
What Does "Rate Limit Exceeded" Mean on Twitter?
When Twitter / X shows you the message "Rate limit exceeded" (or "You are rate limited"), it means you've made too many requests to Twitter's servers in a short period of time. This can happen even if you're just browsing — refreshing your timeline aggressively, scrolling rapidly through search results, or hitting many profiles in quick succession all count toward the limit.
How long does the Twitter rate limit last? For regular users, the rate limit usually clears within 15 to 30 minutes. In some cases (especially during platform-wide load spikes or if the system flags repeated automated patterns) it can last several hours. There's no way to manually reset it — the only fix is to wait it out.
Why does Twitter rate limit regular users? Twitter applies rate limits to every user (logged in or not) to prevent abuse, scraping, and infrastructure overload. Common triggers:
- Refreshing the timeline or notifications too frequently
- Scrolling through long search-result pages quickly
- Visiting many profiles in a short period
- Logging in/out repeatedly
- Using a third-party Twitter client that polls aggressively
- Sharing an IP with many other Twitter users (e.g. corporate networks, public Wi-Fi)
What to do when you see "Rate limit exceeded":
- Stop refreshing — every refresh extends the cooldown.
- Wait 15–30 minutes before trying again.
- If you're using a third-party Twitter app, switch to the official X app or website to verify the issue isn't client-specific.
- Check Downdetector or @XEng for platform-wide outages — sometimes "rate limited" is misreported during incidents.
- If it persists for hours, log out, clear your browser cookies, and log back in.
If you're a developer building against the Twitter API, the rate limit you're seeing is different — it's an endpoint-specific quota with explicit headers that you can read and respond to in code. Jump to that section for the full developer reference.
GetXAPI
No platform-level caps
Throughput depends on your usage and system constraints, not endpoint-level throttle windows. Pay per call at $0.001–$0.002 (~20 tweets).
Official X API (Pay-Per-Use)
Endpoint-specific limits
Under the pay-per-use model, limits still apply per endpoint and per auth context. Post reads start at $0.005 per resource, user reads at $0.010, and content create is currently listed at $0.015 per request.
Endpoint Rate-Limit Comparison
Showing 25 of 25 rows
| Family | Endpoint | Official X API | GetXAPI | Notes |
|---|---|---|---|---|
| Tweets | GET /2/tweets | 3,500/15min app; 5,000/15min user | No platform-level cap | - |
| Tweets | GET /2/tweets/:id | 450/15min app; 900/15min user | No platform-level cap | - |
| Tweets | GET /2/tweets/search/recent | 450/15min app; 300/15min user | No platform-level cap | 100 max results |
| Tweets | GET /2/tweets/search/all | 1/sec; 300/15min app | No platform-level cap | 500 max results |
| Tweets | POST /2/tweets | 10,000/24hrs app; 100/15min user | No platform-level cap | Official content create: $0.015/request |
| Users | GET /2/users | 300/15min app; 900/15min user | No platform-level cap | - |
| Users | GET /2/users/:id | 300/15min app; 900/15min user | No platform-level cap | - |
| Users | GET /2/users/by | 300/15min app; 900/15min user | No platform-level cap | - |
| Users | GET /2/users/by/username/:username | 300/15min app; 900/15min user | No platform-level cap | - |
| Users | GET /2/users/:id/tweets | 10,000/15min app; 900/15min user | No platform-level cap | - |
| Users | GET /2/users/:id/mentions | 450/15min app; 300/15min user | No platform-level cap | - |
| Users | GET /2/users/me | 75/15min user | No platform-level cap | - |
| DMs | GET /2/dm_events | 15/15min user | No platform-level cap | DM Event: Read at $0.010/resource |
| DMs | GET /2/dm_events/:id | 15/15min user | No platform-level cap | - |
| DMs | POST /2/dm_conversations | 1,440/24hrs app; 15/15min user | No platform-level cap | DM Interaction: Create at $0.015/request |
| DMs | POST /2/dm_conversations/:id/messages | 1,440/24hrs app; 15/15min user | No platform-level cap | DM Interaction: Create at $0.015/request |
| Lists | GET /2/lists/:id | 75/15min app; 75/15min user | No platform-level cap | - |
| Lists | GET /2/lists/:id/members | 900/15min app; 900/15min user | No platform-level cap | - |
| Lists | GET /2/lists/:id/tweets | 900/15min app; 900/15min user | No platform-level cap | - |
| Lists | POST /2/lists | 300/15min user | No platform-level cap | - |
| Bookmarks | GET /2/users/:id/bookmarks | 180/15min user | No platform-level cap | - |
| Bookmarks | POST /2/users/:id/bookmarks | 50/15min user | No platform-level cap | - |
| Spaces | GET /2/spaces | 300/15min app; 300/15min user | No platform-level cap | - |
| Spaces | GET /2/spaces/search | 300/15min app; 300/15min user | No platform-level cap | - |
| Other | GET /2/usage/tweets | 50/15min app | No platform-level cap | - |
Source: developer.x.com/#pricing and docs.x.com/x-api/fundamentals/rate-limits. X publishes specific per-app and per-user windows by endpoint, and its pricing docs list current pay-per-use read/write costs. GetXAPI endpoint and pricing claims are based on docs.getxapi.com/docs. Values last researched on May 5, 2026.
Understanding the Three Twitter API Rate Limit Windows
Twitter API rate limits are not enforced through one global cap. The official X API uses three different time windows depending on the endpoint and operation type. Knowing which window applies to your call is the difference between a clean retry and an avoidable 24-hour stall.
- 15-minute windows. The most common pattern. Counters reset every 15 minutes from your first request in that window. Tweet search, user lookups, and most read endpoints use this. If you hit the cap, the
x-rate-limit-resetheader tells you the unix timestamp when your bucket refills. - 24-hour daily caps. Used for write-heavy endpoints — post create caps at 10,000/day at the app level, DM send caps at 1,440/day. These do not roll over; if you blow through your daily quota at 9am UTC, you are locked out until UTC midnight.
- 1 request/second hard floor. The full-archive search endpoint (
/2/tweets/search/all) enforces a hard 1 req/sec ceiling on top of its 300/15min window. Bursting past this triggers an immediate 429 even when your 15-minute counter still has room.
A common engineering mistake is to track only the 15-minute windows in your retry logic and ignore the daily caps. A scheduled scraper that runs hourly can pass every 15-minute check and still hit the daily ceiling at 4pm UTC — surfacing as "429s for no reason" in your logs. Plan retry budgets against the lowest of the applicable windows for each endpoint, not just the most visible one.
Twitter API Rate Limits: GetXAPI vs twitterapi.io vs Official X API
A side-by-side look at how the three most-compared Twitter API options handle rate limits in practice.
| Aspect | GetXAPI | twitterapi.io | Official X API |
|---|---|---|---|
| Platform-level cap | None | Per-credit, no time window | 15-min and 24-hour, by endpoint |
| 429 responses | Not enforced at platform level | Only when credits are exhausted | Common; need retry logic |
| Daily ceilings | None | None | 10,000/day post create; 1,440/day DM |
| Monthly hard cap | None | None | 2M post reads on PPU; Enterprise above |
| Reset-time visibility | N/A | Credit balance in dashboard | x-rate-limit-* response headers |
| Engineering effort | Single Bearer header, no scaffolding | Track credit balance | Per-endpoint queues, retry, backoff |
For the full pricing context behind these limits, see the Twitter API cost guide and the live cost calculator.
X API Rate-Limit Headers Cheat Sheet
Every official X API response includes rate-limit headers that let you detect throttling before it triggers a 429. Production code should read these on every response, not just on errors.
| Header | Meaning | How to use it |
|---|---|---|
x-rate-limit-limit | Total requests allowed in this window | Set this as the budget for your queue |
x-rate-limit-remaining | Requests left before throttling | Throttle proactively when remaining drops below your batch size |
x-rate-limit-reset | Unix timestamp when the window refills | Sleep until this value, not a fixed delay |
Sleeping until x-rate-limit-reset beats a static setTimeout — it accounts for the actual reset window rather than guessing. GetXAPI does not return these headers because there is no platform-level window to track.
How to Read X API Limits in Practice
Most teams do not hit Twitter API rate limits evenly. They hit them in bursts: a search job fans out across many keywords, a user enrichment queue wakes up after an import, or a dashboard refreshes the same account list every few minutes. That is why the important question is not only "what is the listed endpoint limit?" but also "how much coordination does my app need before it can make the next request?"
With the official X API, each high-volume workflow needs guardrails. Keep separate queues for search, tweet lookup, user lookup, and write operations. Track retry timestamps from 429 responses. Cache profile and tweet objects that multiple jobs reuse. For background jobs, store the next eligible run time instead of letting workers repeatedly fail against the same endpoint window.
GetXAPI is simpler for teams that care more about throughput and cost predictability than managing endpoint windows. It charges by call, starts at $0.001 per request, and has no platform-level rate cap. That makes it easier to model jobs by dataset size: 20,000 tweets is roughly 1,000 calls, 100,000 tweets is roughly 5,000 calls, and 1 million tweets is roughly 50,000 calls.
Planning Checklist
- Separate read-heavy jobs from write operations so one queue cannot block the other.
- Cache stable user objects, profile lookups, and tweet metadata before retrying the same endpoint.
- Budget by calls, tweets returned, and empty-result searches, not only by monthly account limits.
- Add retry logic for 429 responses before launching scheduled collection jobs.
- Use a cheaper Twitter API alternative when your workload is mostly search, timelines, user lookups, or enrichment.
Rate-Limit Handling Examples
If you stay on the official X API, build around 429 responses. If you use GetXAPI, the same data collection job can usually be modeled as a simple pay-per-call loop.
async function fetchWithRateLimit(url: string, token: string) {
const response = await fetch(url, {
headers: { Authorization: `Bearer ${token}` },
});
if (response.status === 429) {
const resetAt = Number(response.headers.get("x-rate-limit-reset")) * 1000;
const waitMs = Math.max(resetAt - Date.now(), 30_000);
throw new Error(`Rate limited. Retry after ${waitMs}ms`);
}
if (!response.ok) {
throw new Error(`X API request failed: ${response.status}`);
}
return response.json();
}Common X API Rate-Limit Mistakes
- Treating all rate limits as 15-minute windows. Daily caps on write endpoints are easy to miss. A nightly job that posts 200 tweets fits the 15-min window but breaches the 10,000/day app limit if it runs across many connected accounts.
- Sharing one Bearer token across multiple workers. The cap is per app, not per process. Three workers hitting the same endpoint share one bucket and 3x your effective burst rate. If you need parallelism, split workers across distinct apps.
- Retrying 429s without backoff. Hammering a throttled endpoint with sub-second retries can extend the soft penalty into something longer. Always sleep until the reset header value before retrying.
- Ignoring empty-result charges. The official X API charges for searches that return zero results — and consumes the rate-limit slot too. Caching the queries themselves (not just results) avoids paying for the same empty search twice.
- Assuming auth context does not matter. User-context (OAuth user) limits and app-context (Bearer) limits are separate buckets on the same endpoint. Mixing both can mask the true cap until you graduate to higher volume.
Where This Fits in Your API Decision
Rate limits are only one part of the buying decision. If you are choosing a Twitter data provider, compare limits together with price per 1,000 tweets, endpoint coverage, authentication, and how much work your team needs to do before data is usable. Start from the GetXAPI homepage for the product overview, then use the Twitter API pricing comparison to map request volume to monthly spend.
If you are comparing vendors directly, read GetXAPI vs twitterapi.io and GetXAPI vs TweetAPI. For official-account setup context, the guides on Twitter API v2 vs GetXAPI and how to get a Twitter API key help explain when the official route still makes sense.
Skip the Rate-Limit Headaches
GetXAPI has no platform-level rate caps and a 30-second signup. $0.05 per 1,000 tweets, $0.10 in free credits at signup.
Frequently Asked Questions
If you're a regular Twitter / X user, "Rate limit exceeded" means you've made too many requests to Twitter's servers in a short period — usually triggered by aggressive refreshing, rapid scrolling through search results, or visiting many profiles quickly. It typically clears within 15–30 minutes; the only fix is to wait. If you're a developer hitting this on the API, it's the per-endpoint 429 response — see the rate-limit table above for endpoint-specific caps and the headers cheat sheet for handling it in code.
Twitter applies rate limits to every user (logged in or not) to prevent abuse, scraping, and infrastructure overload. Common triggers include refreshing the timeline too often, scrolling through long search results quickly, visiting many profiles in succession, logging in/out repeatedly, using a third-party Twitter client that polls aggressively, or sharing an IP with many other Twitter users (e.g. corporate networks, public Wi-Fi). The limit isn't per-account — it's per-IP and per-session, so even read-only browsing can trigger it.
The official X API now uses consumption-based pay-per-use pricing, while rate limits remain endpoint-specific. Common read limits range from 15 requests per 15 minutes for some user-auth endpoints to 10,000 requests per 15 minutes for user timelines. Reads start at $0.005 per resource for posts and lists, and writes/actions commonly cost $0.005-$0.200 per request depending on action type.
When you exceed the official X API rate limit, requests return a 429 Too Many Requests error. You must wait until the rate limit window resets before making more calls. With GetXAPI, there are no platform-level caps so you won't encounter this issue.
Use a shared queue per endpoint, respect rate-limit reset headers when they are present, retry with exponential backoff, and cache repeated user or tweet lookups. If you need sustained scraping, monitoring, or enrichment workflows, GetXAPI removes the platform-level window planning and lets you scale by call volume.
Yes for write operations. Post create caps at 10,000 per day at the app level (100/15min on user-context auth), DM send caps at 1,440 per day. Read endpoints don't have explicit daily caps but pay-per-use is hard-capped at 2 million post reads per calendar month before requiring Enterprise. GetXAPI has no platform-level daily or monthly caps.
For regular Twitter users, the rate limit usually clears in 15–30 minutes. In rare cases (heavy platform load or repeated automated patterns) it can last several hours. There's no way to manually reset it — wait it out, and avoid refreshing during the cooldown since that extends it. For developers on the X API, rate-limit windows are explicit: most endpoints reset every 15 minutes, write endpoints reset every 24 hours, and the exact reset time is in the x-rate-limit-reset response header.
Twitter API rate limits are caps on how many requests you can make per time window. Under the official X API pay-per-use model, rate limits vary by resource type and usage volume. GetXAPI has no platform-level rate limit caps.
GetXAPI does not enforce platform-level rate limit caps. Throughput depends on your usage volume and system constraints rather than tiered endpoint windows. All endpoints use pay-per-call pricing at $0.001–$0.002 per request (~20 tweets per call).
They usually refer to the same constraint: request windows enforced by the official X API. Developers still search for Twitter API rate limits because the product was historically called Twitter, while X API limits is the newer naming. In practice, you should plan around endpoint-specific quotas, 429 responses, and monthly usage cost.
Official X API limits are primarily endpoint-specific and can vary by access level, operation type, and usage model. That means a search endpoint, user lookup endpoint, and write endpoint can each have different behavior. GetXAPI uses a simpler pay-per-call model with no platform-level cap.
Daily limits apply to write endpoints. The app-level post-create cap is 10,000 per 24 hours, with a 100/15min user-context window underneath. Direct messaging is capped at 1,440 sends per 24 hours. Read endpoints use 15-minute windows instead — the closest read-side daily-style limit is the 2 million post-read monthly hard cap on pay-per-use.
Next read
Continue exploring related pages:
Twitter API pricing and X API pricing comparison
Compare monthly economics and derived request-level cost.
Twitter API cost calculator
Estimate monthly spend using your request volume.
How to get a Twitter / X API key
Two paths — official console vs 30-second GetXAPI signup with $0.10 free credits.
Twitter API v2 vs GetXAPI
Side-by-side endpoints, pricing, auth, and response shape — same data, 100x cheaper.