Rate Limits

To ensure fair usage and system stability, the Streamoji API implements rate limiting on all endpoints.

Requests per minute100
Requests per hour5,000
Max Output Size15MB

When rate limits are exceeded, the API returns a 429 Too Many Requests status code with a Retry-After header indicating when you can retry.

Handling Rate Limits

async function handleRateLimit(response: Response) {
  if (response.status === 429) {
    const retryAfter = response.headers.get('Retry-After');
    const waitTime = retryAfter ? parseInt(retryAfter) * 1000 : 60000;
    
    console.log(`Rate limited. Waiting ${waitTime}ms before retry...`);
    await new Promise(resolve => setTimeout(resolve, waitTime));
    return true; // Indicates retry should happen
  }
  return false;
}