Rate limits

The API enforces per-tenant rate limits by plan. Limits are applied per minute (rolling 60-second window) and are shared across all API keys for that tenant.

Limits by plan (requests per minute)

PlanReq/min
Solo300
Business1,000
Studio5,000
Platform20,000

Response headers

Every API response includes rate-limit headers so you can throttle clients and avoid 429s.

  • X-RateLimit-Limit — Max requests allowed per window (your plan limit).
  • X-RateLimit-Remaining — Requests left in the current window.
  • X-RateLimit-Reset — Unix timestamp when the window resets.

When you exceed the limit (429)

If you send more requests than your plan allows in a 60-second window, the API responds with 429 Too Many Requests. The body includes a retryable error so you can back off and retry.

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Too many requests",
    "retryable": true
  }
}

Use exponential backoff (e.g. 1s, 2s, 4s) when retrying after a 429. For higher throughput, consider upgrading your plan or contacting us for custom limits.

Quotas vs rate limits

Rate limits cap how many API calls you can make per minute. Invoice quotas (e.g. 1,000 live invoices/month on Solo) are separate and defined per plan on the pricing page. Both apply to your tenant.