API Rate Limits

Bleu.js API implements rate limiting to ensure fair usage and maintain service quality for all users.

Rate Limit Headers

Every API response includes rate limit information in the headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200

Plan-Based Limits

PlanRequests per MinuteRequests per HourRequests per Day
Trial10100500
COR-E601,00010,000
Enterprise30020,0001,000,000

Rate Limit Windows

  • Per-minute limits: Reset every minute on the minute
  • Per-hour limits: Reset every hour on the hour
  • Per-day limits: Reset at midnight UTC

Rate Limit Exceeded

When you exceed your rate limit, you'll receive a 429 Too Many Requests response:

HTTP/1.1 429 Too Many Requests
Retry-After: 60
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1640995260

Best Practices

  • Implement exponential backoff when you hit rate limits
  • Monitor your rate limit headers to avoid hitting limits
  • Use bulk operations when possible to reduce request count
  • Cache responses to minimize API calls
  • Consider upgrading your plan if you consistently hit limits

Example: Handling Rate Limits

// JavaScript example
async function makeApiRequest() {
  try {
    const response = await fetch('https://api.bleujs.org/v1/generate', {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ prompt: 'Hello' })
    });

    if (response.status === 429) {
      const retryAfter = response.headers.get('Retry-After');
      console.log(`Rate limited. Retry after ${retryAfter} seconds`);
      // Wait and retry
      setTimeout(makeApiRequest, retryAfter * 1000);
      return;
    }

    const data = await response.json();
    return data;
  } catch (error) {
    console.error('API request failed:', error);
  }
}

Monitoring Usage

Track your API usage and rate limits in your dashboard:

View API Usage Dashboard →