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).

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":

  1. Stop refreshing — every refresh extends the cooldown.
  2. Wait 15–30 minutes before trying again.
  3. 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.
  4. Check Downdetector or @XEng for platform-wide outages — sometimes "rate limited" is misreported during incidents.
  5. 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

FamilyEndpointOfficial X APIGetXAPINotes
TweetsGET /2/tweets3,500/15min app; 5,000/15min userNo platform-level cap-
TweetsGET /2/tweets/:id450/15min app; 900/15min userNo platform-level cap-
TweetsGET /2/tweets/search/recent450/15min app; 300/15min userNo platform-level cap100 max results
TweetsGET /2/tweets/search/all1/sec; 300/15min appNo platform-level cap500 max results
TweetsPOST /2/tweets10,000/24hrs app; 100/15min userNo platform-level capOfficial content create: $0.015/request
UsersGET /2/users300/15min app; 900/15min userNo platform-level cap-
UsersGET /2/users/:id300/15min app; 900/15min userNo platform-level cap-
UsersGET /2/users/by300/15min app; 900/15min userNo platform-level cap-
UsersGET /2/users/by/username/:username300/15min app; 900/15min userNo platform-level cap-
UsersGET /2/users/:id/tweets10,000/15min app; 900/15min userNo platform-level cap-
UsersGET /2/users/:id/mentions450/15min app; 300/15min userNo platform-level cap-
UsersGET /2/users/me75/15min userNo platform-level cap-
DMsGET /2/dm_events15/15min userNo platform-level capDM Event: Read at $0.010/resource
DMsGET /2/dm_events/:id15/15min userNo platform-level cap-
DMsPOST /2/dm_conversations1,440/24hrs app; 15/15min userNo platform-level capDM Interaction: Create at $0.015/request
DMsPOST /2/dm_conversations/:id/messages1,440/24hrs app; 15/15min userNo platform-level capDM Interaction: Create at $0.015/request
ListsGET /2/lists/:id75/15min app; 75/15min userNo platform-level cap-
ListsGET /2/lists/:id/members900/15min app; 900/15min userNo platform-level cap-
ListsGET /2/lists/:id/tweets900/15min app; 900/15min userNo platform-level cap-
ListsPOST /2/lists300/15min userNo platform-level cap-
BookmarksGET /2/users/:id/bookmarks180/15min userNo platform-level cap-
BookmarksPOST /2/users/:id/bookmarks50/15min userNo platform-level cap-
SpacesGET /2/spaces300/15min app; 300/15min userNo platform-level cap-
SpacesGET /2/spaces/search300/15min app; 300/15min userNo platform-level cap-
OtherGET /2/usage/tweets50/15min appNo 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-reset header 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.

AspectGetXAPItwitterapi.ioOfficial X API
Platform-level capNonePer-credit, no time window15-min and 24-hour, by endpoint
429 responsesNot enforced at platform levelOnly when credits are exhaustedCommon; need retry logic
Daily ceilingsNoneNone10,000/day post create; 1,440/day DM
Monthly hard capNoneNone2M post reads on PPU; Enterprise above
Reset-time visibilityN/ACredit balance in dashboardx-rate-limit-* response headers
Engineering effortSingle Bearer header, no scaffoldingTrack credit balancePer-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.

HeaderMeaningHow to use it
x-rate-limit-limitTotal requests allowed in this windowSet this as the budget for your queue
x-rate-limit-remainingRequests left before throttlingThrottle proactively when remaining drops below your batch size
x-rate-limit-resetUnix timestamp when the window refillsSleep 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.