Sending limits
Anypost applies a monthly quota set by your plan and a daily limit that starts conservative and rises as you build a healthy sending history. On a paid plan you can keep sending past your monthly quota by buying prepaid overage credits; the daily limit is always a hard cap. Accepted mail then goes out at a metered delivery rate, which slows a large batch down but never rejects it.
The two limits
Monthly quota. The volume included with your plan, reset on the first of each month. You can see it on your dashboard, and upgrading your plan raises it. On a paid plan you can continue past the quota by spending prepaid overage credits. On the free plan the quota is a hard cap.
Daily limit. A per-team ceiling on how much you can send in a day, and a hard cap on every plan. Unlike the monthly quota, it is not fixed: a new account or a newly upgraded plan starts with a conservative daily limit, and Anypost raises it automatically as you send consistently to recipients who want your mail. It can also fall if your bounce or complaint rate climbs.
The daily limit is how Anypost protects shared delivery reputation while still letting a sender who has earned trust grow into real volume. It adapts on paid plans; the free plan has a fixed daily limit that does not grow.
Which one applies
Every send is checked against both:
- The daily limit is a hard cap on all plans. A send that would cross it is rejected.
- The monthly quota is a hard cap on the free plan. On paid plans it is the point where your prepaid overage credits start being spent, and it becomes a hard cap again once they run out or if you have not enabled overage.
So on a paid plan with overage credits available, the daily limit is what actually stops a send and the monthly quota only decides when credits start being drawn. Without credits, the monthly quota stops you too. On the free plan, whichever limit you reach first stops you.
Both reset on their own schedule: the daily limit at the start of each day, the monthly quota on the first of each month.
Overage
On a paid plan, overage credits let you keep sending after your monthly quota runs out. Credits are prepaid: you turn on overage and buy a balance up front.
You buy credits in dollar amounts, with a $5 minimum, and they convert to messages at your plan's per-1,000 rate at the time of purchase. On a plan that charges $0.20 per 1,000, a $5 top-up adds 25,000 credits. Credits roll over and do not expire. Each month your included quota is spent first, then your credit balance.
Turn on auto-reload to top up without thinking about it: set a balance to watch and an amount to buy, and Anypost charges your card and adds credits whenever the balance falls below that level. If a charge fails, auto-reload pauses and the team owner is emailed; it resumes once you add credits manually.
When your credits run out, sending past the monthly quota is rejected with 429
until you add more or the quota resets on the first of the month. Your daily
limit still applies while you are spending credits, so it bounds how much you can
run up in a single day. The free plan has no overage: it stops at the monthly
quota.
Manage overage and check your balance in your billing settings.
Growing your daily limit
On a paid plan, the daily limit tracks real sending behavior, so the way to raise it is to be the kind of sender receiving mail servers welcome:
- Send consistently. Steady, predictable volume builds trust faster than sporadic bursts.
- Keep bounce rates low. Mail to addresses that don't exist signals a dirty list. Anypost suppresses hard bounces automatically; don't work around it.
- Keep complaints low. Send only to recipients who asked to hear from you, and honor unsubscribes promptly.
- Authenticate your domains. A verified domain with proper DNS is a prerequisite for building any reputation at all.
There is no published formula, target number, or schedule for the daily limit, and that is deliberate: it reflects your actual sending behavior, not a value to engineer toward. Send well and it rises on its own.
When you hit a limit
A send that would exceed your daily limit is rejected with 429 before any
message is accepted, on every plan. Exceeding your monthly quota is rejected
the same way: on the free plan always, and on a paid plan once your
overage credits are gone or if you have not enabled overage. The
response names which limit you hit:
{
"error": "quota_exceeded",
"scope": "daily",
"used": 5000,
"limit": 5000,
"retry_after_seconds": 41820
}scopeismonthlyordaily, naming the limit you reached. Amonthlyrejection happens on the free plan, or on a paid plan once your overage credits run out.retry_after_seconds(and theRetry-Afterheader) is how long until that limit resets: the next day fordaily, the first of next month formonthly.
A 429 rejects the whole request and accepts nothing, so it is safe to retry
after the window. If you are sending in batches, a batch
that would cross a limit is rejected in full. Split it and send the remainder
after the reset, or spread large jobs across the day rather than firing them in
one burst.
These volume limits are separate from the per-second request rate limit, which
is a different 429 and resets in one second rather than hours. Branch on the
scope field: it is present only on the volume rejection above. See
Rate limits for the request-rate
429 and the RateLimit-* headers that let you pace against it.
How fast your mail leaves
The daily and monthly limits cap how much you can send. A third number caps how fast it goes out: Anypost meters your accepted mail onto the network at a delivery rate measured in messages per minute.
This is not a limit on your requests, and nothing is rejected by it. Mail beyond the rate waits in our queue and drains at the metered rate. No bounce, no error, no failed event. A large batch is accepted in full the moment you send it and then lands over time.
Read your rate from GET /v1/whoami, alongside your
daily and monthly limits:
{
"limits": {
"daily": 5000,
"monthly": 100000,
"delivery_rate_per_minute": 1000
}
}Use it to predict how long a job takes: at 1,000 per minute, a 250,000-message batch finishes in a little over four hours. If mail is landing slower than you expected, check this number before you assume something is broken.
You can submit mail as fast as the API accepts, which the RateLimit-* headers
tell you, and the queue will pace delivery for you.
You may still want to pace on your end, however. Your team has one delivery budget covering all of its mail, claimed in the order messages are queued, so a large batch queued now can push a transactional message sent a minute later behind it. If some of your mail is more time-sensitive than the rest, feed the bulk in over time or send it outside your busy hours.
Your rate can differ from the plan default, and it can change. Read it at runtime rather than hardcoding it.
Account review
Separately from these limits, an account can be paused for review if its sending pattern looks harmful to recipients or to shared reputation. A paused account can still sign in and see its dashboard, but new sends are rejected. If your team is paused, the dashboard shows why and how to reach support.
Where to go next
- Suppressions: how bounces and complaints are handled, and why working around them hurts your limit.
- Batch sending: send efficiently without tripping a limit mid-job.
- API conventions: the shared rules for status codes and retries.