Skip to main content

Rate Limits

This guide explains the rate limits and quotas for WhatsAble APIs.

Overview

Rate limits are applied to protect our API infrastructure and ensure fair usage. Each API solution has different rate limits based on your plan.

Rate Limit Headers

All API responses include rate limit headers:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1616544000

WhatsAble API Limits

Free Plan

  • 100 messages per day
  • 10 requests per minute

Pro Plan

  • 1,000 messages per day
  • 30 requests per minute

Enterprise Plan

  • Custom limits
  • Contact sales for details

Notifier by WhatsAble Limits

Basic Plan

  • 500 messages per day
  • 20 requests per minute

Business Plan

  • 5,000 messages per day
  • 50 requests per minute

Enterprise Plan

  • Custom limits
  • Contact sales for details

Notifier System Limits

Standard Plan

  • 1,000 messages per day
  • 30 requests per minute

Professional Plan

  • 10,000 messages per day
  • 100 requests per minute

Enterprise Plan

  • Custom limits
  • Contact sales for details

Handling Rate Limits

When you hit a rate limit, you’ll receive a 429 Too Many Requests response:
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded. Try again in 60 seconds."
  }
}

Best Practices

  1. Implement Exponential Backoff
async function sendWithRetry(url, data, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      const response = await fetch(url, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Authorization': 'Bearer YOUR_TOKEN'
        },
        body: JSON.stringify(data)
      });

      if (response.status === 429) {
        const retryAfter = response.headers.get('Retry-After') || 60;
        await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
        continue;
      }

      return await response.json();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await new Promise(resolve => setTimeout(resolve, Math.pow(2, i) * 1000));
    }
  }
}
  1. Monitor Usage
    • Track remaining quota
    • Set up alerts for low quota
    • Monitor rate limit headers
  2. Optimize Requests
    • Batch messages when possible
    • Cache responses
    • Use webhooks for status updates

Upgrading Limits

To increase your rate limits:
  1. Log in to your dashboard
  2. Go to Billing & Plans
  3. Select a higher tier plan
  4. Contact support for custom limits