ZeroBounce
A weekend of work, and real gaps remain.
Email list verification: upload a list and it marks each address valid, invalid, catch-all, disposable or a spam trap, so a campaign does not burn a sending reputation.
Build the list verification I actually need instead of ZeroBounce — and know which check you cannot do yourself. **Spam traps.** An address that exists only to catch senders who did not get permission, hitting one is what puts a domain on a blocklist, and the lists of them are private by necessity. No amount of code finds them. That is the honest gap. Everything else is a DNS lookup and a careful conversation. STACK - Node 20+ with Fastify - SQLite through better-sqlite3 for results and cache - **A machine that is not your sending server**, on an address that is not your sending address - Caddy in front, on a private network WHY THE SEPARATE MACHINE MATTERS - Verification means connecting to a lot of mail servers and asking about a lot of addresses. That pattern is indistinguishable from a directory-harvest attack, which is what it technically is - Do it from your sending address and you can find that address blocked by exactly the providers you need to reach. Do it from a machine you do not care about THE CHECKS, IN ORDER OF COST - **Syntax**, properly: the local part rules are stranger than most implementations assume, and a regular expression that rejects a valid address is worse than one that accepts a bad one - **Domain**: does it resolve, and does it have MX records. A domain with no MX cannot receive mail and that is a definitive answer for free - **Disposable**: match the domain against a maintained list of throwaway providers. The lists are open and good - **Role accounts**: info@, sales@, support@ — not invalid, but a different thing, and a marketing list full of them is a complaint rate waiting to happen - **SMTP**: connect, say hello, declare a sender, ask about the recipient, and **stop before sending anything**. Never send a message to verify one - **Catch-all**: ask about an address that certainly does not exist. If the server accepts it, it accepts everything, and every verification for that domain means nothing. A large share of company domains are like this, and reporting them as valid is the most common way this category flatters itself BEING HONEST ABOUT THE RESULT - Four outcomes, not two: valid, invalid, unknown, and accepts-everything. **Unknown is a real answer** — a greylisting server, a timeout, a provider that refuses to say — and forcing it into valid or invalid is where the harm is - The large providers deliberately do not answer this question truthfully any more. Say so beside the result rather than pretending the check is definitive - Cache by address with an expiry. An address verified last year is not verified BEING POLITE, WHICH IS ALSO SELF-INTEREST - One connection per domain at a time, spaced out, with a proper hello and a real reverse DNS name - Honour a temporary failure as temporary and back off - Never verify an entire list in one burst AND THE THING THAT MATTERS MORE THAN ANY OF IT - Verification treats a symptom. A list that needs verifying is usually a list that was bought, scraped or left to rot — and the fix is not verification, it is not acquiring addresses that way - **Suppress hard bounces immediately, complaints permanently, and anybody who has not opened anything in a very long time.** That hygiene keeps a reputation intact without verifying anything, and it is free WHAT MATTERS MOST Catch-all detection and reporting unknown as unknown. Those two are the difference between a verification result you can act on and a number that makes a bad list look clean.
What you lose
- A list of known spam traps, which is the one check you genuinely cannot perform yourself
- Infrastructure to verify from, so the testing traffic does not come from your own sending address
- Catch-all and role-account detection refined across billions of addresses
- Being wrong on their reputation instead of yours
If you would rather not build
- A disposable-domain list, which is open and maintained
- Not buying lists, which removes the need entirely
The escape hatch
open source · no votes, no paid placement
check-if-email-exists
$0Verification with catch-all, disposable and role detection, self-hostable.
reacherhq/check-if-email-existsfree · open source
disposable-email-domains
$0A maintained list of throwaway mail providers.
disposable-email-domains/disposable-email-domainsfree · open source
Why this verdict
our own opinion · changed only by a person
49/100
Verdict kinda at 49: every check except spam traps is buildable, and the entry names that gap first. The sharper point is that a list needing verification usually has a sourcing problem rather than a data problem.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about ZeroBounce
answered from the record above
Is ZeroBounce free?
No — the plan we track is $18 a month. Credits from around $18 for 2,000 verifications, or a monthly subscription at a similar rate.
Can you replace ZeroBounce by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 49 out of 100, build time a weekend. Read what you lose before you decide.
How much does ZeroBounce cost?
$18 a month on Pay as you go — $216 a year. Recorded 14 Aug 2026.
What do you lose by replacing ZeroBounce?
A list of known spam traps, which is the one check you genuinely cannot perform yourself; Infrastructure to verify from, so the testing traffic does not come from your own sending address; Catch-all and role-account detection refined across billions of addresses; Being wrong on their reputation instead of yours. If any of those carry weight for you, keep paying.
Is there an open-source alternative to ZeroBounce?
Yes: check-if-email-exists, disposable-email-domains. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

