What are the API rate limits?
Plain applies rate limits to activity from machine users using the Plain API. The default limit depends on your plan.
| Plan | Rate limit |
|---|---|
| Launch & Foundation | 450 requests/minute |
| Grow & Horizon | 600 requests/minute |
| Scale & Frontier | 1000 requests/minute |
Rate limits apply to all activity using an API key. Activity from within the Plain app is exempt.
Rate limit headers
Every request made with an API key returns these response headers:
x-ratelimit-limit: the limit for your workspace, for example450.x-ratelimit-remaining: how many requests you have left, for example0.x-ratelimit-reset: when the limit resets, for example2026-01-06T15:30:00.000Z.You can calculate
retry-afterfrom the timestamp in thex-ratelimit-resetheader.
What happens when you hit the limit
If you exceed the limit, Plain returns a 429 HTTP status code with this payload:
{ "errors": [ { "message": "Too Many Requests - Rate limit exceeded", "extensions": { "code": "RATE_LIMITED" } } ] }
Your client can then use the headers above to work out when it can make the next request.