Rate limits
100 requests per minute across all /api/v1 calls; 3 concurrent async report runs.
Two limits apply to API usage. Either one returns 429 when exceeded.
Per-account request rate — 100 requests per minute
Across all /api/v1/... calls — reports, mailboxes, messages — your account is limited to 100 HTTP requests per minute. The limit is shared across every key on your account.
If you exceed the limit:
HTTP/1.1 429 Too Many Requests{
"status": "error",
"error": { "code": "429", "message": "Rate limit exceeded." }
}Wait at least one minute and retry. Apply exponential backoff if 429 repeats.
Concurrent async report runs — 3 per account
Async reports (POST /api/v1/reports/*) run in the background. Your account may have at most three runs in status: "running" at any given time. Submitting a fourth while three are already in flight returns 429.
To free a slot, finish polling an existing run until it reaches status: "done". Cancellation isn’t supported; a running report holds its slot until it completes — for a long-running report (up to ~30 minutes), that means the slot stays occupied for the whole run.
Future restrictions
We may add additional limits to control abuse or unusually heavy usage — we’ll give notice before changing the documented numbers above.