Starter
For your first email program.
$192 billed yearly.
20,000 emails / month
Choose Starter- 5 brands · 3 seats
- 5 custom sending domains
- 500 email verifications/month
- $1.50 / 1,000 extra emails
A hard bounce is permanent and should never be retried. A soft bounce is temporary and can be retried, up to a limit. An AI agent that sends email retries whatever failed, so the platform has to stop it retrying hard bounces.
A hard bounce is a permanent delivery failure, like a non-existent address, while a soft bounce is a temporary one, like a full mailbox, and the two demand different handling.
An AI agent that sends email, whether a coding assistant wiring sends into an app or an assistant working over MCP, runs unattended and retries whatever failed. Retrying a hard bounce is the one retry that damages sender reputation, so the platform has to classify each bounce and keep dead addresses out of the next send.
| Hard bounce | Soft bounce | |
|---|---|---|
| What it is | A permanent delivery failure | A temporary delivery failure |
| Typical causes | Address does not exist, invalid domain, outright rejection | Mailbox full, server down or busy |
| SMTP reply class | 5xx, such as 550 | 4xx, such as 421 or 452 |
| Retry | Never | Yes, up to a limit |
| What Nitrosend does | Adds the address to the account suppression list for good | Counts it, and suppresses the email channel after three |
A hard bounce is a permanent delivery failure: the address doesn't exist, the domain is invalid, or the server flatly rejected the mail. A hard-bounced address should be removed and never mailed again, because repeatedly hitting dead addresses is exactly what damages your reputation, and it pushes the bounce rate toward the 5% level where Amazon SES places an account under review.
A soft bounce is a temporary delivery failure: the mailbox is full, or the server is momentarily down or busy. Soft bounces can be retried, but not forever. Nitrosend suppresses the contact's email channel after three soft bounces.
The SMTP reply code says which one happened. A code in the 5xx class, such as 550, is a permanent failure and marks a hard bounce. A code in the 4xx class, such as 421 or 452, is a temporary failure and marks a soft bounce, which the receiving server expects the sender to try again later. Addresses that are wrong before they are ever mailed can be caught earlier with an email check API.
A person reading a bounce report sees hard and soft bounces as two different things. An agent sees a failed send, and its default is to treat a failure as an error to retry. It may also rebuild a list from whatever file it finds, and it cannot tell a full mailbox from a dead address unless the platform tells it which one it got.
So the classification has to live in the platform, not in the agent's judgment. Delivery events such as delivered, bounced and complained come back through webhooks, so code an agent writes can read the outcome of each send instead of guessing. A hard-bounced address on the suppression list is excluded from all future sends, whatever the agent asks for. So an agent that sends email from an LLM does not have to classify bounces itself, and nobody has to watch every bounce to keep dead addresses out.
Handling them the same way is a mistake in both directions: retrying hard bounces burns reputation, and removing soft bounces too aggressively loses reachable contacts. Good list management branches on the two. It all feeds your overall bounce rate.
Amazon SES places an account under review at a 5% bounce rate and may pause its sending at 10%, according to its enforcement FAQ, which recommends staying below 2%. The bounce rate calculator shows where a send sits, and the guide to email bounce rate covers the formula.
Nitrosend processes delivery failures automatically, by three rules:
The suppression list covers every send from the account, whether it comes through the email API, from code an agent wrote, or from the MCP tools, so the permanent versus temporary distinction is handled rather than left to the sender to reconcile.
The prompt: "Yesterday's newsletter had a lot of bounces. Clean the list and make sure we don't mail those again."
Before. Left unguided, an agent reads the bounces as failed sends, retries every bounced address in one batch, then deletes the soft bounces along with the hard ones. The dead addresses get hit a second time, and customers whose mailboxes were only full drop off the list.
After. With the Nitrosend MCP tools, the agent cleans up first, then gets the next newsletter ready without the dead addresses:
nitro_get_insights pulls the email analytics for the newsletter, with trends, benchmarks and recommendations, so the agent sees how far the bounce rate moved. The hard bounces need no action: they are already on the account suppression list and excluded from future sends.nitro_manage_audience checks the subscriptions of the contacts in question, leaves the soft-bounced contacts on the list (Nitrosend suppresses their email channel after three soft bounces, so the agent deletes nobody), and runs explicit prepaid email validation on addresses in doubt, such as ones that came from an old import.nitro_compose_campaign creates the next newsletter as a broadcast draft. It never delivers it.nitro_review_delivery runs a read-only review of the draft, with validation, spam analysis, preflight and previews. It never approves or sends.nitro_send_test_message sends one real test of the campaign to the test recipients set with nitro_configure_account. It never sends to an audience.nitro_control_delivery is where a person approves the campaign, after reading the test.nitro_get_insights, once the newsletter has sent, shows whether the bounce rate came back down.The difference in one line: the agent stops retrying bounces, the suppression list decides who is mailed, and a person approves the next send.
nitro_import_contacts. See the guide to a bounce rate spike after a list import for the cleanup.nitro_send_message, the addresses that did deliver get the email twice. Reuse the idempotency_key only for an exact retry of the one send that failed.The classification only matters if something acts on it: hard bounces suppressed for good, soft bounces counted and the email channel suppressed after three. Nitrosend applies those rules automatically to every send from the account, so neither a person reading a report nor an agent retrying a send has to.
A hard bounce is a permanent failure, such as a non-existent address, and the server answers with a 5xx code like 550. It should never be retried. A soft bounce is a temporary failure, such as a full mailbox, answered with a 4xx code like 421 or 452. It can be retried, and Nitrosend suppresses the email channel after three.
Not after one. A soft bounce is temporary, so a full mailbox or a busy server often clears and the next send delivers. An address that keeps soft-bouncing is different: Nitrosend counts soft bounces and suppresses the contact's email channel after three, so nobody has to remove those contacts by hand.
A reply code in the 5xx class, such as 550, is a permanent failure and marks a hard bounce. A code in the 4xx class, such as 421 or 452, is a temporary failure and marks a soft bounce, which the receiving server expects to be tried again later.
Not a hard bounce. An agent's default is to retry a failed send, and retrying a dead address pushes the bounce rate toward the 5% level where Amazon SES places an account under review. Let the platform classify the bounce and keep suppressed addresses out of future sends, and reuse an idempotency_key only for an exact retry of one send.
Three. Nitrosend counts soft bounces and suppresses the contact's email channel after three. Hard bounces go on the account suppression list automatically and are excluded from all future sends. Unsubscribed contacts sit on the same list, tagged differently, so a dead address and a person who unsubscribed are both kept out of the next send.
Every plan includes full stack emailing: Flows, Newsletter Campaigns and Transactional Email, plus our NitroWheel LLM and all agent integrations (Claude, ChatGPT, Codex, Cursor and others). Pay for what you send, not who you store.
Every paid plan includes 3 agent inboxes and no Nitrosend footer.
For your first email program.
$192 billed yearly.
20,000 emails / month
Choose StarterFor a growing audience.
$480 billed yearly.
60,000 emails / month
Choose ProFor teams and agencies.
$1,440 billed yearly.
200,000 emails / month
Choose GrowthFor high-volume sending.
$2,880 billed yearly.
500,000 emails / month
Choose ScaleSending 500,000+ emails a month? Get a custom plan designed for you, with volume email pricing and capacity that fits your business.
5,000 emails to start, then 500 emails every month. No expiry on your starter emails.
Daily allowances depend on your plan and sender standing. Strong list, domain and delivery evidence can raise standing, including on day one. Trusted receives the full plan allowance; available email credits, safety checks and delivery pacing still apply.
Free forever. No credit card required. See full comparison →