All posts

Resend Bounce Rate Limit: The 4% Rule, the Pause, and How to Stay Under It

··4 min read

Resend asks every account to keep bounces under 4% and spam complaints under 0.08%. Above either, sending may be paused, and the Acceptable Use Policy says the account may be closed without warning. The suppression list stops repeat bounces to the same address, but every new bad address still counts once. For most products, those come from signups. Check the address when it's typed, before the first email goes out.

Resend's numbers

From Resend's account quotas and limits page and its Acceptable Use Policy, read 3 November 2026:

Rule Number What Resend says happens
Bounce rate Under 4% Quotas page: sending may be paused until it comes down. AUP: account may be shut down without warning
Spam complaint rate Under 0.08% Same
API rate limit 10 requests a second per team Requests over it get a 429; batch sends of up to 100 count as one request
Free plan 100 emails a day, 3,000 a month Daily quota resets at midnight UTC

The AUP also says Resend will try to work with you before any disruption, depending on how severe the problem is and how you cooperate. It doesn't publish a minimum volume or a time window for the rate. Resend shows bounce and spam rates on the Metrics page and sends bounce and complaint events by webhook.

What the suppression list does

Resend's suppression list article says an address is added after a hard bounce or a spam complaint. Typical causes are a typo, an address that doesn't exist, a server that permanently refuses delivery, or a recipient who marked a message as spam. Later sends to it are marked suppressed and not delivered.

You can remove an address from the Emails dashboard. If the cause isn't fixed, it goes back on the list the next time you send. The list is a safety net for repeats. It does nothing about the first send to a new bad address, and that's the bounce that counts.

Where the bounces come from

For apps sending through Resend, bounces usually come from:

  • Typos at signup. gmial.com, hotmial.com, a missing letter.
  • Fake and throwaway addresses. Free trial abuse, disposable inboxes that expire.
  • Bots. Form spam that triggers a welcome or verification email to an address that doesn't exist.
  • Old imports. A list moved over from another ESP without being checked.

Each one sends a welcome, a verification link, or a receipt to an address that bounces. A burst of bot signups can push a small account past 4% in a day.

Stop them at signup

  1. Check the address before you call Resend. Call a verification API from your signup handler, and only send the welcome email if the result is valid. Our Next.js signup verification and Supabase Auth posts show where the call goes.
  2. Suggest a fix for typos. If the domain looks like a misspelt Gmail or Outlook, ask the user to confirm before saving.
  3. Block disposable domains on forms where they're abuse. Our block disposable emails at signup post covers when that's worth it.
  4. Add a bot check on public forms. Honeypot fields catch a lot of simple bots without a CAPTCHA.
  5. Handle the result honestly. A catch-all domain or a timeout comes back risky, not invalid. Let those users sign up and confirm by link rather than blocking them.

The SimpleVerifier API returns valid, risky or invalid with a reason. Treat timeouts as "allow and confirm by link" so a slow mail server never blocks a real user.

Before importing a list

If you're moving an existing audience into Resend for broadcasts:

  1. Remove unsubscribes and old bounces from the previous ESP first.
  2. Check the rest at /verify. Valid, risky and invalid download separately.
  3. Import the valid file. Send to risky addresses in a smaller batch, or leave them out.

Our verify the list before switching ESP post covers the full move.

If you're already over

  1. Pause the flow that's causing it. Usually that's a signup or invite flow, or a broadcast to an old list.
  2. Check the Metrics page and your bounce webhooks to find which flow and which domains.
  3. Add the signup check above before turning the flow back on.
  4. Contact Resend support. Its pages don't describe an appeal process, so ask.

What Resend doesn't allow

Resend's AUP prohibits cold outreach, purchased lists and scraped contact data, and requires recipients to have explicitly opted in. A clean list doesn't change that. If you need to send cold email, use a tool and domain set up for it. Our cold email domain setup post covers that.

Where SimpleVerifier fits

SimpleVerifier checks addresses at signup through the API, or in bulk before an import. The first 100 checks are free with a Google sign-in on the verify page. Pro is $39 a month with the first 100,000 checks a month at full speed, then slower, never cut off, and includes 10,000 API calls a month; on monthly billing, calls past that are billed per 1,000. See pricing and the API docs.

Common questions

What bounce rate does Resend allow?

Resend's account quotas page says all accounts must maintain a bounce rate under 4% and a spam rate under 0.08%. Its Acceptable Use Policy repeats both numbers.

What happens if my Resend bounce rate goes over 4%?

The quotas page says sending may be paused temporarily until the bounce rate is reduced. The Acceptable Use Policy says an account above the thresholds may be shut down without warning, though it also says Resend will try to work with you before any disruption, depending on severity and cooperation.

Does Resend's suppression list protect my bounce rate?

It stops repeat sends. Resend adds an address after a hard bounce or spam complaint, and later sends to it are marked suppressed instead of delivered. The first send to a bad address still bounces, so new bad addresses still raise the rate.

Can I use Resend for cold email if I verify the list first?

No. Resend's Acceptable Use Policy prohibits cold outreach, purchased lists and scraped contact data, and requires that recipients explicitly opted in. Verification doesn't change that.

Check your list before you send

Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.