Skip to content

Rate Limits & Quotas

SendAPI applies rate limits and monthly quotas to keep the platform stable and fair for all users.

Rate Limits

Rate limits are enforced per API key using a sliding-window token bucket algorithm.

PlanRequests per minuteRequests per hour
Starter601,000
Growth60010,000
Business6,000100,000

Rate Limit Headers

Every API response includes these headers:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets

429 Response

When you exceed the rate limit, the API returns 429 Too Many Requests:

json
{
  "success": false,
  "error": {
    "type": "rate_limit_exceeded",
    "message": "Too many requests. Please retry after 12 seconds.",
    "code": 4029,
    "retry_after": 12
  }
}

Best practice: Implement exponential backoff when receiving 429. Start at 1s, double each retry, cap at 60s.


Monthly Quotas

Quotas reset on the first day of each billing period.

FeatureStarterGrowthBusiness
WhatsApp messages1,00050,000Unlimited
WhatsApp sessions1525
SMS messagesPay-as-you-goPay-as-you-goPay-as-you-go
Monthly emails5,00050,000500,000
OTP verifications50010,000Unlimited

Quota Exceeded Response

json
{
  "success": false,
  "error": {
    "type": "quota_exceeded",
    "message": "Monthly WhatsApp message quota exceeded. Upgrade your plan to continue.",
    "code": 4028,
    "upgrade_url": "https://sendapi.co/billing"
  }
}

Per-Endpoint Limits

Some endpoints have additional per-session rate limits independent of your plan:

EndpointLimit
WhatsApp messages per session30/min, 1,000/day
OTP send per phone5/hour, 20/day
Webhook test triggers10/hour

Released under the MIT License.