Skip to main content

Rate Limiting

We have multiple rate limiting policies in place to reduce the opportunity for the abuse of our server resources.

If you have a use case that requires higher limits, please reach out to us.

Rate Limit Policies​

There is a limit to how many requests will be handled within the rolling time window.

Policy NameWindowLimit (requests)
Burst1 Minute (60,000 ms)100
Sustained1 Hour (3,600,000 ms)1000

Server Responses​

There will always be some headers showing the rate limit policies.

When you surpass a rate limit policy, the server will respond with a 429 code and a JSON body containing the errors, and add a "Retry-After" header.

KeyDescription
RateLimitPolicy name; requests remaining; milliseconds till oldest request "expires"
RateLimit-PolicyPolicy name; request quota; rolling window duration in seconds
Retry-AfterNumber of seconds to wait till next request

429 Response​

In the JSON Body, each error will have meta-data that provides the more detailed information about what happened, and what to do about it.

Each policy violation will be its own error.

Example JSON Response Body
{
"errors": [
{
"errorUID": "error_...",
"code": "too-many-requests",
"message": "You've made too many requests. Try again later.",
"meta": {
"policy": "burst",
"limit": 100,
"window_ms": 60000,
"reset_time": "2025-12-02T18:03:13.446Z",
"retry_after": 60
}
}
]
}

Response Headers

KeyDescription
RateLimit"burst"; r=0; t=60
RateLimit"sustain"; r=0; t=3507
RateLimit-Policy"burst"; q=1; w=60; pk=:MWM2NmI5OTdlN2Zj:
RateLimit-Policy"sustain"; q=10; w=3600; pk=:MWM2NmI5OTdlN2Zj:
Retry-After60