Skip to main content
Back to App

Rate Limits

The Conviction Public API applies rate limits to ensure service stability and fair access for all users.

#Current Limits

LayerRate LimitDescription
Burst (edge)50 requests / 10 seconds per IPCounts every request to api.conviction.bet. Going over blocks the IP for 10 seconds.
Sustained (application)200 requests / 60 seconds per IP, per endpointEach /v1/... endpoint keeps its own counter — requests to the market list do not use up the order-book budget.

Limits are subject to change as the service scales.

#Rate-limit headers

Every response from a /v1/... endpoint carries the state of that endpoint's 60-second counter:

HeaderDescription
X-RateLimit-LimitThe limit for the window (200)
X-RateLimit-RemainingRequests left in the current window
X-RateLimit-ResetSeconds until the window resets

#Exceeding Rate Limits

When you exceed the 60-second limit, the API returns a 429 Too Many Requests response:

{
  "statusCode": 429,
  "message": "ThrottlerException: Too Many Requests"
}

The response includes a Retry-After header indicating how many seconds to wait before retrying.

When you exceed the 10-second burst limit, the block comes from the network edge instead: it is still an HTTP 429, but the body is not this JSON, so don't parse it as such.

#Best Practices

  • Cache responses when possible
  • Use limit and offset to paginate rather than fetching all data at once
  • Back off exponentially when you receive a 429 instead of retrying immediately
  • Spread polling out — a tight loop over many markets hits the 10-second burst limit long before the 60-second one
Was this page helpful?