Skip to main content

Rate Limits

OpenBits enforces rate limits per user based on your subscription tier. Limits are checked before credit deduction.

Global Limits by Tier

Every request counts against your global rate limit:

Per-Endpoint Limits

Some endpoints have additional per-endpoint rate limits that apply on top of global limits. These are configured per connector and may include daily caps for expensive operations.

Rate Limit Headers

Every response includes rate limit headers:

Handling 429 Responses

When you exceed a rate limit, you’ll receive a 429 Too Many Requests response with:
The retry-after header (and error.retryAfter field) tells you how many seconds to wait.

Best Practices

When you receive a 429, wait the retry-after duration. If requests continue to fail, double the wait time up to a maximum of 60 seconds.
Track your own request rate and throttle before hitting the server. This avoids wasted round-trips and latency from rejected requests.
Use batch endpoints like /users/by?usernames=user1,user2 instead of making separate calls for each user.
Cache responses on your end when the data doesn’t change frequently. User profiles, for example, rarely change minute-to-minute.

Fail-Open Policy

If the rate limit service (Redis) is temporarily unavailable, OpenBits allows requests through rather than blocking them. This means you may occasionally exceed your limit during infrastructure incidents.