Skip to main content
Cano enforces rate limits to ensure fair usage and platform stability across all customers — understanding them helps you design resilient integrations that degrade gracefully under load rather than failing hard. Limits are applied per API key and reset on a rolling window basis.

Limits by Endpoint Group

Different endpoint groups have different limits reflecting their relative cost to the platform. High-volume event ingestion supports far higher throughput than administrative actions.
Customers on the Pro and Enterprise plans receive significantly higher rate limits. Enterprise plans also support custom limits tailored to your ingestion volume. Reach out to your account manager or visit Settings → Billing to upgrade.

Rate Limit Headers

Every API response — including successful ones — includes three headers that tell you exactly where you stand within the current window. Read these headers to implement proactive throttling before you hit a 429. A typical response header set looks like this:

Handling 429 Errors

When you exceed a rate limit, the API returns an HTTP 429 Too Many Requests response. The X-RateLimit-Reset header tells you exactly when you can retry, but the most robust strategy is exponential backoff with jitter — each successive retry waits longer, and a small random offset prevents synchronized retry storms when multiple clients hit the limit simultaneously.
Retry with Exponential Backoff
This gives you wait times of roughly 100 ms → 200 ms → 400 ms across three attempts, with up to 50 ms of random jitter applied each time. Adjust the base multiplier and retry count to match the criticality of your workload.
Use the batch events endpoint (POST /v1/events/batch) to send up to 500 events in a single request. Batching is the single most effective way to reduce your request count — it cuts API calls by orders of magnitude for high-volume producers without sacrificing delivery guarantees.

Best Practices

Read X-RateLimit-Remaining on every response and begin throttling your outbound request rate when it drops below 10–15% of X-RateLimit-Limit. This prevents hitting the wall entirely and keeps your integration running smoothly during traffic spikes.
Rate limits apply per API key. Use a cano_test_sk_... key in your staging and load-testing environments so test traffic does not consume production quota.
If your architecture runs multiple independent services, give each one its own API key. Each key receives its own rate limit allowance, so you effectively multiply your total throughput capacity.