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_live_ (standard) 100 1 minute
pk_live_ (bulk import) Contact support N/A
Anonymous (public board) 30 1 minute

Bulk import rate limits are available on request for data migration use cases. Contact support@canviq.app.


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 30 1 minute
Growth 300 1 minute
Scale 1000 1 minute

The Standard tier is read-only; write access starts at Growth.

There is no self-serve control for a custom per-agent numeric limit. To move an agent to a higher tier, contact support@canviq.app.