Skip to main content
The CSBoard API enforces per-key rate limits to keep the service stable for all users. If you exceed a limit you receive a 429 response immediately — no request is partially processed. Build your client to inspect the Retry-After header and pause before retrying, rather than hammering the endpoint in a tight loop.

Limits by endpoint

All limits are per API key and reset on a rolling 60-second window.
Sending more than 30 requests with invalid or missing API keys from the same IP address within one minute triggers an automatic 5-minute IP-level ban. During the ban every request from that IP returns 401 too_many_failed_auth regardless of which key is used. Rotate to a valid key and wait out the cooldown before retrying.
The cheapest way to stay under these limits is to stop polling for things we can push. Webhooks deliver order state as it changes, and the SSE listing stream delivers new and gone events on one connection — neither counts against your request budget per event.

429 response format

When you exceed a standard endpoint limit the API returns:
The Retry-After header value is an integer number of seconds you must wait before the next request will succeed. The bulk snapshot endpoint uses a distinct error code when rate-limited:

Handling 429s in your client

Read Retry-After and sleep for at least that many seconds before retrying. The example below shows a simple retry loop in bash:
Add a small jitter (e.g. sleep $((RETRY_AFTER + RANDOM % 5))) when running multiple workers in parallel so they don’t all resume at the same instant and immediately re-trigger the limit.

Raising your limits

The default limits suit most integrations. If you have a high-throughput use case — such as a data pipeline or a high-frequency trading bot — contact us to discuss a higher per-key limit for your account.