Details on the rate limits applied to API requests based on subscription plans.
Understanding Rate Limits
To ensure fair usage and protect your account, WasenderAPI applies rate limits based on your plan and account protection settings.
Rate Limit Headers
Every API response includes the following headers to help you track your usage:
X-RateLimit-Limit
: The maximum number of requests allowed in the current window.X-RateLimit-Remaining
: The number of requests left before hitting the limit.X-RateLimit-Reset
: The Unix timestamp (in seconds) when your limit resets.
Message Sending Rate Limits
Plan | Requests per Minute | Notes |
---|---|---|
Trial | 1 | 1 message per minute |
Basic / Pro / Enterprise | Unlimited | Unless Account Protection is enabled |
Account Protection Limits
If you enable Account Protection, a global limit of 1 message every 5 seconds is applied to the message sending endpoint to help prevent bans from WhatsApp.
Specific Endpoint Rate Limits
Certain actions, such as checking if a phone number exists on WhatsApp, can be flagged as suspicious or spam-like behavior by WhatsApp if performed too frequently. Excessive use of these endpoints can put your account at risk of being banned.
To protect your account, we have implemented specific rate limits on these endpoints. These limits also help ensure the stability and performance of our own infrastructure by preventing our systems from being overloaded, which avoids triggering our internal rate limits and provides a reliable service for all our users.
Endpoint / Action | Rate Limit |
---|---|
Get group participants or metadata | 10 requests per minute |
Get contact picture | 60 requests per minute |
Check if a number is on WhatsApp | 60 requests per minute |
⚠️ Repeated abuse of rate limits may lead to temporary API suspension or account review.
Parameters
Name | Type | Required | Description |
---|---|---|---|
X-RateLimit-Limit | integer | No | The maximum number of requests allowed per time window. |
X-RateLimit-Remaining | integer | No | The number of requests remaining in the current time window. |
X-RateLimit-Reset | integer | No | The time in seconds until the rate limit resets. |
Content-Type | string | No | Usually `application/json`. |
Response Examples
{
"message": "You are on a free trial. You can only send 1 message every 1 minute.",
"retry_after": 60
}