Bulk Email Verifier: MX, Disposable & Typo Checker
Pricing
from $1.40 / 1,000 emails
Bulk Email Verifier: MX, Disposable & Typo Checker
Verify a list of email addresses against DNS. Checks syntax, MX records, disposable and role accounts, detects the mail provider, and suggests a correction for mistyped domains like gmial.com. No SMTP probing, no bounces on your reputation.
Pricing
from $1.40 / 1,000 emails
Rating
0.0
(0)
Developer
Michael Yousrie
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Bulk Email Verifier: MX, Disposable and Typo Checker
Paste a list of email addresses. Get back a verdict for each one, plus the reason behind it.
Built for the job everyone actually has: a list of addresses of unknown quality, and a sending tool that will punish you for the bad ones. This tells you which rows will bounce, which are throwaway inboxes, which are shared role accounts, and which are one character away from being correct.
$2 per 1,000 addresses. No SMTP probing, so nothing here can damage your sending reputation.
What you get for every address
| Field | Example | Notes |
|---|---|---|
deliverability | valid | valid, risky, invalid or unknown |
reason | mx_record_present | Why that verdict, in one machine-readable token |
isAcceptable | true | One boolean: worth sending to or not |
hasMxRecord | true | Whether the domain can receive mail at all |
mxProvider | Google Workspace | Who runs their mail, from the MX records |
mxHosts | ["aspmx.l.google.com"] | The records themselves |
isDisposable | false | Checked against 8,201 bundled throwaway domains |
isRoleAccount | true | info@, sales@, noreply@ and around 60 more |
isFreeProvider | false | Gmail, Outlook, Yahoo and 70 others |
suggestedEmail | jane@gmail.com | The correction, when the domain looks mistyped |
didYouMean | true | Whether a correction was found |
hasValidSyntax | true | RFC-shaped, before any lookup |
Export as JSON, JSONL, CSV or Excel, or pull it from the API.
The four verdicts
| Verdict | What it means | What to do |
|---|---|---|
valid | The domain has MX records and is not a throwaway | Send |
risky | Deliverable, but a free mailbox, a disposable domain, or a domain with no MX and only an A record | Send with care, or segment it |
invalid | Malformed, or the domain cannot receive mail at all | Remove |
unknown | DNS did not answer in time | Re-run those rows. Never treated as valid |
isAcceptable collapses that into one boolean for filtering, and it answers the stricter question: is this worth sending to. It is false for invalid, false for unknown, false for disposable inboxes nobody reads, and false for any address carrying a typo suggestion, because a typo-squat domain like gmial.com really does have MX records. That is precisely what makes it a trap rather than a bounce.
Catching the typo, not just the bounce
jane@gmial.com fails an MX check on most tools and gets reported as invalid. True, and useless: there is a real person one character away.
This checks the domain against the large mailbox providers and suggests a correction when it is a single edit or a swapped pair of letters away. Around 40 of the most common misspellings are named outright.
It stays quiet otherwise. Aggressively "correcting" a small company domain into Gmail is a much worse failure than saying nothing, so gmbh.de, mail.co.uk and email.agency are all left exactly as they are.
What this does not do, and why
There is no SMTP handshake. Every "99% accurate" verifier works by opening a connection to the recipient's mail server and asking whether a mailbox exists. Done from shared infrastructure at any volume, that gets the source IPs onto blocklists, is rate limited into uselessness, and is treated by the receiving side as address harvesting.
So this tool proves what DNS can prove: the address is well formed, the domain exists, the domain can receive mail, and the domain is not a known throwaway. It does not prove that one specific mailbox exists behind a working domain.
That distinction matters, because in practice most of a bad list is dead domains, typos and throwaways, and all three are caught here. If you need mailbox-level confirmation on top, run this first to remove the obvious failures cheaply, then send the survivors to a paid SMTP verifier at ten times the price.
unknown is a real outcome and is never quietly upgraded to valid.
Common uses
Cleaning a list before an email campaign. Filter on isAcceptable and your bounce rate drops before you ever hit send, which protects the domain reputation that decides whether the rest of your mail reaches the inbox.
Validating signups. Run new addresses through and use suggestedEmail to ask "did you mean jane@gmail.com?" instead of silently losing the account.
Segmenting an outreach list. isRoleAccount separates info@ shared inboxes from named people, and isFreeProvider separates consumers from businesses. Those two usually want different messages.
Firmographic enrichment. mxProvider tells you whether a company runs Google Workspace, Microsoft 365, Zoho or something self-hosted. For anyone selling into an email or security stack, that is a qualifying signal on its own.
De-risking a purchased list. isDisposable plus invalid gives you a fast quality score on a list somebody sold you, before you load it anywhere.
Pricing
$0.002 per address, so $2 per 1,000. One charge per address that produced a verdict.
Duplicates are removed before anything is charged, so the same address in your file three times costs you once. Blank and malformed rows are dropped at parse time.
For comparison, SMTP-based verifiers run around $8 per 1,000 at low volume. They do a different, deeper check. This one is for the pass that removes the obvious failures cheaply.
Speed
Around 20 addresses at a time by default, and DNS answers are cached per domain for the whole run. A list of 10,000 addresses across 2,000 domains costs 2,000 lookups, not 10,000, so large files finish far faster than the row count suggests.
Output example
{"email": "jane@gmial.com","localPart": "jane","domain": "gmial.com","deliverability": "invalid","reason": "domain_cannot_receive_mail","isAcceptable": false,"hasValidSyntax": true,"hasMxRecord": false,"mxHosts": [],"mxProvider": null,"isDisposable": false,"isRoleAccount": false,"isFreeProvider": false,"suggestedEmail": "jane@gmail.com","didYouMean": true}
Frequently asked questions
How do I check if an email address is valid without sending an email? Run it through here. DNS confirms the domain exists and can receive mail, and the syntax and disposable checks catch the rest. Nothing is sent to the address.
Will this stop my emails bouncing? It removes the causes of most hard bounces: dead domains, malformed addresses and typo'd domains. It cannot tell you that a particular mailbox at a live domain was deleted last week, because nothing except sending can, short of an SMTP probe.
Does it detect disposable and temporary email addresses? Yes, against a bundled list of 8,201 throwaway domains including Mailinator, Guerrilla Mail and 10 Minute Mail.
Can it tell me if an address is a role account like info@ or sales@?
Yes, isRoleAccount, matched against about 60 shared-inbox prefixes in several languages.
What does unknown mean?
DNS did not answer for that domain in time. It is not a verdict of good or bad. Re-run those rows.
How is this different from ZeroBounce or NeverBounce? They perform an SMTP handshake and charge roughly $8 per 1,000 for it. This is a DNS-only pass at $2 per 1,000 that removes the obvious failures. Many people use both: this one first, theirs on what survives.
Can I verify one address at a time through the API? Yes. The Actor takes one address as happily as a hundred thousand, and the API returns the verdict as JSON.
Works well with
- Website Lead Extractor: turn company websites into a lead list of emails, phones and postal addresses, then verify them here
- LLM-Ready Web Extractor: any URL to clean Markdown or JSON
- SEO Audit and Site Health Checker: on-page SEO issues and a health score per page
Notes
Only DNS is queried. No mail is sent, no mailbox is probed, and no address is stored or shared.