X (Twitter) · Rate Limits

Twitter Rate Limits

X API v2 enforces rate limits on top of its pay-per-call pricing. Limits are scoped per endpoint with per-app (Bearer) and per-user (OAuth) buckets, typically over 15-minute or 24-hour windows. Headers expose the live limit, remaining, and reset timestamp. When a limit is exceeded, the API returns HTTP 429 with error code 88 ("Rate limit exceeded"); recovery is via the reset timestamp and exponential backoff.

Twitter Rate Limits is the machine-readable rate-limit profile for X (Twitter) on the APIs.io network, conforming to the API Commons Rate Limits specification.

It captures 13 rate-limit definitions, measuring requests_per_15_minutes and requests_per_24_hours.

The profile also includes 5 backoff/retry policies defined and response codes documented for throttled.

Tagged areas include Social Media, Developer API, and Rate Limiting.

13 Limits Throttle: 429
Social MediaDeveloper APIRate Limiting

Limits

Tweet lookup (app) app (Bearer token)
requests_per_15_minutes · minute
3500
15-minute window.
Tweet lookup (user) user (OAuth)
requests_per_15_minutes · minute
5000
15-minute window.
Recent search (app) app (Bearer token)
requests_per_15_minutes · minute
450
15-minute window.
Recent search (user) user (OAuth)
requests_per_15_minutes · minute
300
15-minute window.
Post creation (app) app (Bearer token)
requests_per_24_hours · day
10000
24-hour window.
Post creation (user) user (OAuth)
requests_per_15_minutes · minute
100
15-minute window.
User lookup (app) app (Bearer token)
requests_per_15_minutes · minute
300
15-minute window.
User lookup (user) user (OAuth)
requests_per_15_minutes · minute
900
15-minute window.
Follow management (user) user (OAuth)
requests_per_15_minutes · minute
50
User-only; not available with app tokens.
Direct Messages - retrieval (user) user (OAuth)
requests_per_15_minutes · minute
15
User-only.
Direct Messages - creation app/user
requests_per_24_hours · day
1440
24-hour window; available on both app and user contexts.
Media upload init (app) app (Bearer token)
requests_per_24_hours · day
180000
24-hour window.
Media upload init (user) user (OAuth)
requests_per_15_minutes · minute
1875
15-minute window.

Policies

15-Minute / 24-Hour Windows
Most endpoints reset on 15-minute windows; high-volume actions (post creation, DM creation, media upload init) use 24-hour windows. Use x-rate-limit-reset to determine wait time.
App vs User Buckets
Each endpoint has separate per-app (Bearer) and per-user (OAuth) buckets; choose the auth context that fits your traffic shape and treat them as independent budgets.
Error Code 88 Recovery
A 429 response carries error code 88 ("Rate limit exceeded"); recover by waiting until x-rate-limit-reset and applying exponential backoff before retrying.
Streaming for Real-Time
For high-volume real-time use cases, prefer streaming endpoints over polling to stay within the 15-minute / 24-hour windows.
Caching and Distribution
Cache responses, monitor remaining, and distribute requests across the time window to avoid bursting against the limit.

Sources

Work with this as data

Every rate limit here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for rate limits

4 MCP tools reach this
  • find_rate_limitsBrowse and filter every rate limit in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This rate limit
curl "https://apis.io/api/v1/rate-limits/twitter-rate-limits"
All rate limits
curl "https://apis.io/api/v1/rate-limits?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.