Skip to content

Rate Limits

Canviq rate limits are applied per API key. Limits reset on a rolling window.


Limits by Key Type

Key type Requests Window
pk_org_live_ (standard) 100 1 minute
pk_org_live_ (bulk import) Contact support
Anonymous (public board) 30 1 minute

Bulk import rate limits are available on request for data migration use cases. Contact [email protected].


Rate Limit Headers

Every API response includes rate limit headers:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1708387200
Header Value
X-RateLimit-Limit Total requests allowed in the window
X-RateLimit-Remaining Requests remaining in the current window
X-RateLimit-Reset Unix timestamp (seconds) when the window resets

When You're Rate Limited

A 429 Too Many Requests response:

{
  "error": "rate_limited",
  "message": "Rate limit exceeded. Retry after 23 seconds.",
  "retry_after": 23,
  "limit": 100,
  "window": "1 minute"
}

The response also includes a Retry-After header with the number of seconds to wait.


Best Practices

Check X-RateLimit-Remaining before making bursts of requests. If it's near zero, pause until X-RateLimit-Reset.

Back off on 429 — don't immediately retry. Use the retry_after value from the response or the Retry-After header.

Use server-side calls — making API calls from your backend means one key handles all your users. Client-side calls from many users can exhaust limits quickly.

Batch where possible — the category creation endpoint accepts an array; prefer one request over many.


MCP Agent Rate Limits

If you're using the MCP Server, agent API keys have separate limits:

Tier Requests Window
Standard 60 1 minute
Professional 300 1 minute
Enterprise 1000 1 minute

Custom limits can be configured per-agent via agent policies.