Skip to content
RedirHub/API
Sign inGet API key
Getting started

Rate limits

The API publishes rate-limit response headers and can answer 429 when a client sends too much traffic. Numeric quotas, reset windows, and retry header behavior should be confirmed by the API owner before being treated as a stable contract.

Headers in the spec

X-RateLimit-Limit
Requests allowed within the current window.
X-RateLimit-Remaining
Requests still available within the current window.
X-RateLimit-Reset
Unix timestamp at which the current window resets.

Handling 429

429 Too many requests means the client should slow down. Retry with exponential backoff and jitter, and avoid retry loops that keep all workers waking at the same time.

async function requestWithBackoff(url, options, attempts = 4) {
  for (let attempt = 0; attempt < attempts; attempt += 1) {
    const res = await fetch(url, options);
    if (res.status !== 429) return res;

    const delay = Math.min(1000 * 2 ** attempt, 8000);
    await new Promise((resolve) => setTimeout(resolve, delay));
  }
  throw new Error("Rate limit did not clear");
}

Needs confirmation

API-owner confirmation required. The live spec exposes X-RateLimit-Limit and X-RateLimit-Remaining descriptions, with an example limit value on some list responses. It does not confirm the reset window, plan-specific quotas, or whether a Retry-After header is always present on 429 responses.