Rate Limiting
That Is A Q APIs implement rate limiting to ensure fair usage, system stability, and consistent performance for all clients. Understanding these limits helps you build resilient integrations.
Rate Limits by Plan
Rate limits are enforced per API key and vary based on your subscription tier. Limits are calculated on a rolling window basis.
| Plan | Requests / Minute | Requests / Hour | Burst Limit | Max Payload |
|---|---|---|---|---|
| Free | 60 | 1,000 | 10 req/s | 1 MB |
| Growth | 300 | 10,000 | 25 req/s | 5 MB |
| Scale | 1,000 | 50,000 | 50 req/s | 10 MB |
| Enterprise | Custom | Unlimited | Custom | 50 MB |
Response Headers
Every API response includes headers that indicate your current rate limit status. These headers are essential for implementing retry logic and quota management.
| Header | Description |
|---|---|
| X-RateLimit-Limit | The maximum number of requests allowed in the current window. |
| X-RateLimit-Remaining | The number of requests remaining in the current window. |
| X-RateLimit-Reset | Unix timestamp when the rate limit window resets. |
| X-RateLimit-Window | Duration of the rate limit window in seconds. |
Handling 429 Too Many Requests
When you exceed the rate limit, the API returns a 429 Too Many Requests status code along with a JSON body containing error details and a retry-after duration.
"error": {
"code": "rate_limit_exceeded",
"message": "You have exceeded the rate limit. Please retry after 12 seconds.",
"status": 429,
"retry_after": 12,
"limit": 300,
"window": "1 minute"
}
}
Retry Strategy
We recommend implementing exponential backoff with jitter when handling rate limit errors. This approach minimizes the chance of thundering herd problems when multiple clients retry simultaneously.
Retry-After header value when provided. It indicates the exact time you should wait before making another request.
Increasing Your Limits
If your application requires higher throughput than your current plan allows, you have several options:
- โ Upgrade your plan to access higher rate limits built into Growth, Scale, or Enterprise tiers.
- โ Request a temporary increase for special campaigns or events by contacting our support team.
- โ Optimize your integration by using webhooks, batching requests, and caching responses where possible.
Frequently Asked Questions
How is the rate limit window calculated?
We use a sliding window algorithm. This means the limit is calculated based on the requests made in the past N seconds, rather than resetting at fixed clock intervals.
Do different endpoints have different limits?
Generally, limits apply globally across all endpoints. However, certain intensive operations (like bulk exports) may have separate, lower limits. These are documented in the specific endpoint documentation.
What happens when I hit the limit?
Your request will fail with a 429 status code. The request is not queued or processed in the background. You should wait for the specified duration before retrying.