Rate Limits
API requests are rate-limited per organization using a sliding window algorithm.
API requests are rate-limited per organization using a sliding window algorithm.
| Requests | 100 |
| Window | 10 seconds |
| Algorithm | Sliding window |
| Scope | Per organization |
When the rate limit is exceeded, the API returns a 429 Too Many Requests
response with error code RATE_LIMITED. Back off and retry after a short delay.
Email send limits
In addition to the API rate limit, each volume has a monthly email send quota.
By default, reaching it stops sending: further requests return a 429 with code
MONTHLY_LIMIT_EXCEEDED until the quota resets at the start of the next month
(UTC).
Metered billing on overage
If you'd rather keep sending than stop, enable metered billing under Settings → Billing. It's off by default, so nobody is ever billed past their chosen volume without asking for it.
With it on, transactional sends (POST /emails and /emails/batch) continue
past your quota and the excess is billed on your next invoice:
| Included | Overage |
|---|---|
| 10,000 | €0.45 / 1,000 |
| 25,000 | €0.45 / 1,000 |
| 50,000 | €0.45 / 1,000 |
| 100,000 | €0.39 / 1,000 |
| 250,000 | €0.39 / 1,000 |
| 500,000 | €0.33 / 1,000 |
| 1,000,000 | €0.27 / 1,000 |
| 2,000,000 | €0.24 / 1,000 |
Each rate is 1.5x the marginal rate of the band your volume sits in, so overage always costs half as much again per email as committing to the volume would.
Two things it does not do:
- It isn't unlimited. Sending stops once the overage would have cost the same
as the next volume up, so going over never costs more than moving up would have
and a retry loop can't bill without bound. In practice that is between 0.66x and
1x your allowance in extra headroom. That ceiling returns
429with the sameMONTHLY_LIMIT_EXCEEDEDcode — the message tells you which limit you hit. - It doesn't cover broadcasts. List sends always stop at your monthly quota, whatever this setting says.
You'll get an email the first time you cross into overage in a given month, with the rate and the ceiling. Turning the setting off stops sending at the quota again, but usage already incurred is still billed.
Sustained overage always costs more than the next volume up — if you're regularly past your quota, moving up is the cheaper move.
Daily send ceiling
Your monthly volume is the limit that governs. The daily ceiling exists so that a brand-new account cannot send at full volume before it has any delivery record — a deliverability safeguard, not a plan term — and it is sized so that it cannot keep you from sending what you paid for: at every paid volume, the capacity available in your first 30 days is more than ten times the monthly quota, even if you never send a message during the first week.
The Free plan is a flat 100 emails/day alongside its 3,000/month, and it does not change with account age.
Paid accounts start at 1,000 recipients/day while routed to the new-account IP pool. That lifts as soon as you have a clean delivery record — roughly 500 delivered messages with low bounce and complaint rates, checked hourly — or after seven days, whichever comes first. Sending normally is what clears it; there is nothing to request.
Once clear of the new-account pool:
| Account age | Daily limit (paid plans) |
|---|---|
| First 24 hours | 2,000 |
| 1–3 days | 10,000 |
| 3–7 days | 50,000 |
| 7+ days (established) | Usage-based* |
*Established accounts are bounded by a finite, usage-based ceiling — the larger of your monthly limit spread over 30 days and a multiple of your recent busy-day volume, and never below your plan's contact cap, so whatever list size your plan allows can be mailed in a single day. It grows with genuine sending but is never unlimited.
The ceiling counts recipients (to + cc + bcc), the same unit as billing. Exceeding
it returns a 429 with code DAILY_LIMIT_EXCEEDED; it resets at midnight UTC.
If an account's recent bounce or complaint rate is elevated, its daily ceiling is automatically halved until the rate recovers.
Migrating from another provider and need full volume from day one? Email
support@eusend.dev before you cut over and we will lift it in advance.
List send review
Transactional sending is unaffected by this section — POST /emails works from
your first minute on a brand-new domain, up to the daily ceiling above.
Sending to a list is different. Until we've reviewed an account, it can reach 500 recipients across broadcasts and very large batch sends. Most first campaigns fit inside that and go out in full.
Past it, the first 500 are delivered and the rest waits for a manual review —
broadcasts move to held, and batch items beyond the allowance return 403 with
code LIST_SEND_HELD. You'll get an email when it clears, and held broadcasts
resume from exactly where they stopped.
The allowance is per account, not per send, and it's a one-time step: once reviewed, it's lifted for good. Accounts sending from a domain registered in the last 30 days keep it until reviewed.
We do this because every sender on eusend shares outbound IP reputation. A single
list of purchased addresses degrades delivery for everyone, and a 500-recipient
sample tells us how a list actually performs — real bounce and complaint rates —
rather than making you wait behind a queue while we guess. On a deadline? Email
support@eusend.dev and we'll clear it.