Understanding rate limits and their impact on API usage
We apply rate limits to activity from machine users interacting with the Plain API. The default rate limit depends on the plan you're on.
Plan | Rate limit |
|---|---|
Launch & Foundation | 450 requests/minute |
Grow & Horizon | 600 requests/minute |
Scale & Frontier | 1000 requests/minute |
Activity from within the Plain app is exempt from these rate limits. They apply to all activity using an API key.
Impact of hitting rate limits
Whenever you use our API with an API key, you will receive the following response headers:
x-ratelimit-limitthe limit for your workspace (450)x-ratelimit-remaininghow many requests you have left (0)x-ratelimit-resetwhen the limit resets (2026-01-06T15:30:00.000Z)
You can calculate retry-after using the the timestamp provided by the x-ratelimit-reset header.
If you hit the rate limit, you will get a 429 HTTP status code and the following payload:
{ "errors": [ { "message": "Too Many Requests - Rate limit exceeded", "extensions": { "code": "RATE_LIMITED" } } ] }
Your client may then use the provided headers to calculate the time at which you can make the next request.