Amarseba API
Developer documentation
সেন্টারসমূহ
Rate limits
Limits are counted per API key over a rolling minute. Every key of your account has its own budget, so one busy integration does not slow down another.
| Applies to | Limit |
|---|---|
| All API endpoints | 120 requests per minute per key |
POST /bulk-sms/send, POST /bulk-sms/send-many, POST /bulk-sms/groups/{group_id}/send | 30 requests per minute per key |
One send request can carry up to 10,000 recipients, so the send limit caps request count, not SMS volume.
On send endpoints, the X-RateLimit-* headers report the general 120 per minute budget; sends are additionally capped at 30 per minute per key. When the send cap trips, the 429's data.limit and Retry-After describe the send limit.
Headers
X-RateLimit-Limit: the general per-key limit of 120 requests per minute.X-RateLimit-Remaining: requests left in the current window.Retry-After: on a 429, the seconds to wait before retrying.
When you hit the limit
The API returns 429 rate_limited. data.limit is the limit you hit (the send limit when a send trips it) and data.retry_after is the number of seconds to wait.
{
"success": false,
"message": "Too many requests, retry after 12 seconds",
"data": { "limit": 30, "retry_after": 12 },
"errors": { "rate_limit": ["Too many requests, retry after 12 seconds"] },
"code": 429,
"error_code": "rate_limited",
"timestamp": "2026-09-26T10:00:00.000000Z"
}
Backing off
- Wait at least
retry_afterseconds, then retry with the sameIdempotency-Key. - For repeated 429s, back off exponentially with jitter (for example 1, 2, 4, 8 seconds plus a random fraction).
- Batch recipients into one broadcast or
send-manyrequest instead of sending one request per number. - Watch
X-RateLimit-Remainingand slow down before it reaches zero.