Home / Guides / Switch from ZeroBounce

Switch from ZeroBounce to Mail Exchange

There is nothing to migrate. Export your list, verify it here, import the result. This page maps ZeroBounce's statuses to ours and shows a safe way to test the switch first.

Updated 2026-10-18

TL;DR

  • Nothing to migrate. Export, verify, import. Your "send valid, skip the rest" rule carries over.
  • Price: ZeroBounce's pay-as-you-go packs cost about 2x ours (5K: $69 vs $29; 100K: $649 vs $299).
  • Test first: run the same 500 addresses through both and compare the results before you move any volume.

Why people switch

The main reason is the bill. On ZeroBounce's pricing page (checked 2026-10-17), 5,000 validations cost $69 and 100,000 cost $649. Mail Exchange charges $29 and $299 for the same volumes. See the full table in Mail Exchange vs ZeroBounce.

Terms are similar where it matters. ZeroBounce does not charge for unknown results and removing duplicates is free, and so do we. Our credits never expire. ZeroBounce is also the better fit if you want its extras (email finder, inbox tests, warmup) from one vendor. We only verify.

What carries over

Everything you do with the results. The workflow is the one in how to verify emails before cold outreach:

  1. Export the leads you want checked from your sending tool or lead source as CSV.
  2. Upload the file to Mail Exchange. Your columns are kept.
  3. Filter on the result and import the rows you want to send to.

No account data moves between vendors, and we have no migration tool. If you call ZeroBounce's API from a script, you would point that call at our API instead (keys on request; the response format differs, so you will change a few lines).

ZeroBounce statuses and ours

ZeroBounce statusMail Exchange stateNotes
validdeliverableZeroBounce's valid includes some addresses on accept-all domains (sub-status accept_all). We keep catch-alls out of deliverable.
invalidundeliverableReasons: rejected_email, invalid_domain, invalid_email.
catch-allrisky (low_deliverability)Also flagged accept_all: true in the API.
unknownunknownCredit refunded. Retry later.
do_not_mailrisky (low_quality or disposable)ZeroBounce uses it for role-based, disposable and some other high-risk addresses. We label role and disposable separately.
spamtrapno separate statusWe do not return a spam-trap verdict. See spam traps.
abuseno separate statusWe do not flag addresses known to complain.

ZeroBounce definitions from its status codes documentation, checked 2026-10-18. Where the table says "no separate status", treat those addresses as you would any risky result, or keep ZeroBounce for that check.

Use your existing credits first

Credit terms differ by plan, so look at your own ZeroBounce account for expiry before you decide. If your credits are still valid, spend them first. You only start paying us when you run out. Ours do not expire, so there is no deadline on this side. We do not offer to match or buy out leftover credits.

Test before you switch: the 500-address sample

  1. Pull a random 500 addresses from a list you have already verified at ZeroBounce (random, not the first 500 rows).
  2. Run the same file through Mail Exchange. The 3-day trial covers 25 of them, and the rest costs under $2 at our 5K price ($0.0058 each).
  3. Join the two result sets on the address. Count the rows where the two disagree.
  4. Look at the disagreements by type. Catch-all against valid is expected, since we separate them. Valid against undeliverable is the one to investigate.
  5. If you have send history, check which result predicted your actual bounces better.

500 addresses will not give you a precise accuracy figure, only a sanity check. Use it to see whether our labels fit how you send.

Related