Rate Limits
Sendiee applies rate limits to ensure fair usage and system stability. All v2.0 endpoints enforce two rolling rate limits per organisation, plus an equal per-key budget for each API key.
API Rate Limits
Rate limits scale with your plan. Two independent rolling windows apply simultaneously at the organisation level, and each API key additionally gets its own counters at the same caps — so one runaway integration cannot consume the entire budget of your other keys. The organisation limit is always authoritative: the combined traffic of all keys can never exceed it.
| Limit | Free | Growth | Pro | Business |
|---|---|---|---|---|
| Per second (api_rate_limit_per_sec) | 5 | 10 | 20 | 60 |
| Per day (api_rate_limit_per_day) | 100 | 1,000 | 20,000 | 50,000 |
Rate Limit Headers & Error Codes
429 Too Many Requests. Check the Retry-After header for how long to wait. The error code field will be RATE_LIMIT_EXCEEDED_PER_SECOND or RATE_LIMIT_EXCEEDED_PER_DAY so you can distinguish between the two limits.WhatsApp Cloud API Limits
In addition to Sendiee's rate limits, your WhatsApp messaging is subject to Meta's messaging tier limits. These are separate from Sendiee's API limits and are enforced at the WhatsApp Business Account level.
- New WhatsApp Business accounts start at Tier 1 (250 unique customers / 24h)
- Tiers increase automatically based on message quality and volume
- Template messages are subject to tier limits; freeform messages are only limited by the 24hr window
For detailed information, see Meta's messaging limits documentation.
Best Practices
- Retry with exponential backoff — when you receive a
429response, wait and retry with increasing delays (1s, 2s, 4s, etc.) - Distinguish limit types — a
RATE_LIMIT_EXCEEDED_PER_SECONDerror means you should slow your request rate; aRATE_LIMIT_EXCEEDED_PER_DAYerror means you have exhausted your daily quota and must wait until the next day - Batch contact imports — use CSV upload in the Sendiee dashboard instead of individual API calls for bulk contact creation
- Use scheduled messages for campaigns — instead of rapid-fire sends, schedule messages with staggered delivery times
- Cache contact data — avoid fetching the same contact repeatedly; cache responses on your end
- Monitor usage — track your API usage in the Sendiee dashboard to stay within your plan limits