Quota and sending limits
What counts against your monthly quota and daily sending limit, what does not, and the bounce and complaint rates you need to stay under.
Overview
Every plan includes a monthly allocation of emails and a daily sending limit. This page states exactly what consumes each of them, what does not, and the delivery quality we expect from senders on the platform.
Your current usage and your plan's limit are shown on the Billing page in the dashboard.
What counts as one email
One email is one address on one message.
A single API call that names three addresses consumes three emails from your
monthly allocation, not one. This applies to every recipient field — to, cc
and bcc are counted the same way.
{
"from": "you@example.com",
"to": ["alice@example.com", "bob@example.com"],
"cc": ["carol@example.com"],
"subject": "Hello"
}The request above is one API call and three emails against your quota.
This is the same unit that Resend uses, so a migrated application consumes quota at the same rate here as it did there.
Received email counts too
Postflare can receive mail as well as send it. Inbound email counts against the same monthly allocation as outbound email, one email per message received.
What consumes an email, and what does not
The line is did we do work for this address, not was it delivered. We charge for the work we performed on your behalf, and we do not charge you for our own failures.
| Outcome | Counts against your quota |
|---|---|
| Handed to the delivery network — whatever happens next | Yes |
| Refused because the address is on your suppression list | Yes |
| Bounced, or reported as spam, after we handed it over | Yes |
| Received (inbound) | Yes |
| You cancelled the email before it was sent | No |
| The email is scheduled and has not been sent yet | No |
| We failed to compose or dispatch it — our fault, not yours | No |
Two of these are worth spelling out.
A suppressed address counts. Checking every address against your suppression list before sending is part of the service — it is what stops you re-mailing an address that has already bounced or complained, and it protects your sending reputation. That check is performed whether or not the message goes out.
A cancelled email does not count. If you cancel a scheduled email before it is sent, nothing was done for those addresses and nothing is charged. A scheduled email that has not been sent yet has not consumed anything either — it is counted in the period in which it is actually sent.
Broadcasts
A broadcast sent to a segment consumes one email per address it is sent to or refused for, after unsubscribed contacts and topic preferences have been applied. The table above applies to every address: an address on your suppression list is checked and refused, and it counts.
- An address filtered out because the contact unsubscribed, or because they are not subscribed to the broadcast's topic, consumes nothing.
- A scheduled broadcast consumes nothing until it is sent, and one you cancel while it is still scheduled consumes nothing at all — no email was created for any address.
- A broadcast you cancel while it is being delivered stops the remaining addresses, and those consume nothing. Addresses already handed to the delivery network, or already refused by your suppression list, stay counted: mail already sent cannot be recalled.
So the number charged to your quota is the number of addresses the broadcast was handed to the delivery network for, plus the addresses your suppression list refused — which may be smaller than the size of the segment.
When a broadcast stops partway
A broadcast that starts delivering and cannot finish ends in the status
expansion_incomplete. Some addresses have been sent to; the rest of the
segment receives nothing.
- The emails already created are delivered normally and count against your quota like any others. The addresses that were never reached consume nothing.
- Reaching your quota is one cause, but not the only one. Content that cannot be read, repeated failures while processing the broadcast, or an outage on our side end in the same status.
expansion_incompleteis final. The broadcast cannot be cancelled or sent again; to reach the rest of the segment, create a new broadcast.
When you reach your limit
- At 80% of your monthly allocation, we email your organization's owner.
- At 100%, sending is paused. New send requests are rejected with an error until your allocation resets at the start of your next billing period.
- A broadcast sent immediately is checked against your remaining quota when you
send it; a scheduled broadcast is not checked when you schedule it. Either
way, quota is checked again as the broadcast is delivered. A broadcast that
runs out partway — because other sending used the quota in the meantime, or
because it was scheduled and the quota was gone by the time it fired — is not
rejected: it stops where the quota ran out and ends in
expansion_incomplete. See When a broadcast stops partway. - Upgrading your plan raises the allocation immediately.
Your allocation resets at the start of each billing period. Unused emails do not carry over.
Daily sending limit
The monthly allocation is not the only limit. Every organization also has a daily sending limit, tracked separately and reset at 00:00 UTC each day:
| Plan and account age | Daily limit |
|---|---|
| Free plan | 100/day, always — account age and a verified domain do not raise it |
| Paid plan, first 7 days, without a verified domain | 100/day |
| Paid plan, first 7 days, with a verified domain | 1,000/day |
| Paid plan, 7–30 days old | 1,000/day |
| Paid plan, more than 30 days old | No daily limit — the monthly allocation still applies |
The daily limit is counted in messages rather than in recipient addresses: a
POST /emails request is one message however many to, cc and bcc
addresses it names, a POST /emails/batch request is charged one message per
email in the batch, and a broadcast is charged one message per address it
creates an email for.
Sends that would exceed the daily limit are refused with HTTP 429 and the
error name daily_quota_exceeded until the counter resets at 00:00 UTC.
Bounce and complaint rates
Delivery quality is shared. A sender with a poor reputation affects deliverability for everyone on the platform, so we monitor it and we expect senders to stay under these rates:
| Metric | Stay under |
|---|---|
| Bounce rate | 4% |
| Complaint (spam report) rate | 0.08% |
These are the rates at which we act. Crossing one of them does not automatically suspend your account — it automatically pauses your organization's sending and alerts our operations team. A person then reviews what happened and decides whether to resume sending or to suspend the account. A sustained pattern above these rates, or a clear violation of the Acceptable Use Policy, can still lead to your account being rate limited, suspended or terminated.
The most common causes of a high bounce rate are sending to addresses that were never confirmed, and sending to a list that has not been mailed in a long time. Postflare's suppression list handles the rest: once an address has hard bounced or complained, we stop sending to it automatically.