Rate limits
The programmatic API enforces a per-account rate limit on top of the monthly credit quota.
The limit
| Setting | Value |
|---|---|
| Window | Rolling 60 seconds |
Max requests (HTTP /api/v1/*) |
60 per billing account |
Max requests (MCP tools/call) |
300 per billing account (separate counter; /mcp logs) |
| Counted (HTTP) | Metered calls that pass auth, including rate-limit / credit 429s and uncaught 500s. 401 / 403 plan/auth failures do not count. |
When you cross the HTTP limit:
{
"success": false,
"error": "Rate limit exceeded. Max 60 requests per minute."
}
MCP tool rate limits use a separate message: Rate limit exceeded. Max 300 MCP tool calls per minute. (and credit exhaustion on MCP is a tool error string, not the REST credits JSON envelope).
This is distinct from credit-exhaustion 429 (which includes a credits object on REST). See Errors.
Backoff
- On rate-limit
429, wait at least 1–2 seconds, then retry with exponential backoff (cap ~30s). - Do not busy-loop; the 429 itself ages out of the rolling window.
- On credit-exhaustion
429, stop and buy add-ons or wait for monthly reset — retrying will not help.