Skip to main content
Rate limits control how many API requests you can make in a given time period. They ensure fair usage and system stability across the platform.

Rate limits by product

Each X API product has its own rate limiting approach:

How rate limits work

ConceptDescription
Time windowMost limits reset every 15 minutes
Per-user limitsApply when using OAuth 1.0a or OAuth 2.0 user tokens
Per-app limitsApply when using Bearer Token (app-only) authentication
Endpoint-specificEach endpoint has its own limit

Checking your limits

Every API response includes headers showing your current rate limit status:
x-rate-limit-limit: 900
x-rate-limit-remaining: 847
x-rate-limit-reset: 1705420800
HeaderDescription
x-rate-limit-limitMaximum requests allowed in the current window
x-rate-limit-remainingRequests remaining in the current window
x-rate-limit-resetUnix timestamp when the limit resets

Rate limit errors

When you exceed a rate limit, you’ll receive a 429 Too Many Requests response:
{
  "errors": [{
    "code": 88,
    "message": "Rate limit exceeded"
  }]
}

Best practices

Cache responses

Store API responses locally to reduce repeated requests for the same data.

Use exponential backoff

When rate limited, wait before retrying. Double the wait time with each retry.

Check headers

Monitor rate limit headers to avoid hitting limits proactively.

Use streaming

For real-time data, use filtered stream instead of polling search endpoints.

Next steps

For detailed rate limit tables by endpoint, see the rate limits page for your specific API: