Skip to main content
By default, Pixelcut API is rate limited (commonly 5 requests/second per account). If you exceed the limit, you’ll receive a 429 with error_code: rate_limit_exceeded.
  • Retry only on retryable responses (typically 429 and transient 5xx)
  • Use exponential backoff with jitter
  • Add a max retry count and a max backoff cap

Example backoff logic

delay_ms = min(max_delay, base_delay * 2^attempt) + random(0, jitter)

Example (Node)

const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

async function withRetries(requestFn, { maxRetries = 5 } = {}) {
  let attempt = 0;
  while (true) {
    const resp = await requestFn();
    if (resp.status !== 429 && resp.status < 500) return resp;

    if (attempt >= maxRetries) return resp;

    const base = 250 * 2 ** attempt;
    const jitter = Math.floor(Math.random() * 250);
    await sleep(Math.min(5_000, base + jitter));
    attempt += 1;
  }
}

Batch / high-throughput processing