Rate limits
To keep the platform healthy, the API throttles abusive or runaway traffic. Sensitive flows — login attempts in particular — are rate limited per account and per IP.
When you're throttled, the response is 429 Too Many Requests:
{
"code": "RATE_LIMITED",
"message": "Too many requests. Please wait before trying again.",
"retry_after": 30
}
retry_afterSeconds to wait before retrying.
Backing off
- Honor
retry_afterexactly — don't retry sooner. - If
retry_afteris absent, use exponential backoff with jitter (e.g. 2s, 4s, 8s… ±20%). - Treat repeated
429s on login as a signal to stop: hammering the endpoint extends the lockout and can trip account protection.
Batch-style workloads should spread requests out rather than bursting. If you have a legitimate high-volume use case, talk to us at letstalk@getroja.com.