Reliability
Rate limits
Request limits per API key and IP address, OTP limits, X-RateLimit and Retry-After headers.
| Scope | Limit |
|---|---|
| Per API key, whole API | 120 requests / minute |
Per API key, POST /otp/send (separate counter) | 10 requests / minute |
| Per IP address, all keys together | 120 requests / minute |
| OTP per number and per account | Resend delay and hourly cap (see OTP) |
Over the limit#
The API answers 429 TOO_MANY_REQUESTS, with the Retry-After header (seconds) and details.retry_after_seconds.
429
{
"error": {
"code": "TOO_MANY_REQUESTS",
"message": "Trop de requêtes, réessayez plus tard.",
"details": {
"retry_after_seconds": 37
}
}
}Headers#
X-RateLimit-Limit: requests allowed per minute (successful responses).X-RateLimit-Remaining: requests left in the current minute.Retry-After: seconds to wait (429 responses).
Best practices#
- Prefer one bulk send (
recipients, up to 1000) over 1000 single calls. - Track statuses by webhook rather than polling
GET /sms/{id}in a loop. - The packages retry a
429on their own afterRetry-After(2 retries by default,maxRetries, wait capped at 10 s).