Bulk Email Verifier: MX, Disposable & Typo Checker avatar

Bulk Email Verifier: MX, Disposable & Typo Checker

Pricing

from $1.40 / 1,000 emails

Go to Apify Store
Bulk Email Verifier: MX, Disposable & Typo Checker

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

Michael Yousrie

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

FieldExampleNotes
deliverabilityvalidvalid, risky, invalid or unknown
reasonmx_record_presentWhy that verdict, in one machine-readable token
isAcceptabletrueOne boolean: worth sending to or not
hasMxRecordtrueWhether the domain can receive mail at all
mxProviderGoogle WorkspaceWho runs their mail, from the MX records
mxHosts["aspmx.l.google.com"]The records themselves
isDisposablefalseChecked against 8,201 bundled throwaway domains
isRoleAccounttrueinfo@, sales@, noreply@ and around 60 more
isFreeProviderfalseGmail, Outlook, Yahoo and 70 others
suggestedEmailjane@gmail.comThe correction, when the domain looks mistyped
didYouMeantrueWhether a correction was found
hasValidSyntaxtrueRFC-shaped, before any lookup

Export as JSON, JSONL, CSV or Excel, or pull it from the API.


The four verdicts

VerdictWhat it meansWhat to do
validThe domain has MX records and is not a throwawaySend
riskyDeliverable, but a free mailbox, a disposable domain, or a domain with no MX and only an A recordSend with care, or segment it
invalidMalformed, or the domain cannot receive mail at allRemove
unknownDNS did not answer in timeRe-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


Notes

Only DNS is queried. No mail is sent, no mailbox is probed, and no address is stored or shared.