๐ง Email Verifier - Honest Confidence Score, Not a Fake Yes/No
Pricing
Pay per event
๐ง Email Verifier - Honest Confidence Score, Not a Fake Yes/No
โก Multi-stage email check: syntax, typo detection (gmial.com -> gmail.com), disposable/role flags, free-vs-corporate class, live MX/DNS lookups. โ Returns a 0-100 confidence score plus its signals โ and admits mailbox existence can't be proven from a blocked-port-25 cloud host.
Pricing
Pay per event
Rating
0.0
(0)
Developer
mohamed alaya
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
Email Verifier
A confidence score, not a lie dressed up as a checkmark.
What this actor CAN prove
- Syntax โ RFC-ish local/domain validation: length limits (64/253/254), illegal
characters, quoted local parts (
"john doe"@example.com), internationalised domains (cafรฉ.fr->xn--caf-dma.fr, via Node's own IDNA implementation). - Normalisation โ Gmail dot-insensitivity and
+tagstripping, thegooglemail.comalias, generic+taghandling for any provider (via the sharednormalizeEmailengine). - Typo detection โ edit distance against ~70 popular providers, so
user@gmial.comgets suggestedgmail.comanduser@hotmial.comgetshotmail.com. - Disposable/temporary domains โ matched against a bundled, offline list of 400+ known throwaway-email providers (mailinator, guerrillamail, yopmail, 10minutemail and their many mirror domains), including subdomains.
- Role/generic accounts โ
info@,sales@,admin@,support@,noreply@and ~75 other non-personal local parts. - Free vs. corporate domain โ a heuristic against a bundled list of well-known free webmail providers, not a directory lookup.
- DNS deliverability โ a live MX lookup over DNS-over-HTTPS (Cloudflare's resolver), falling back to an A record per the RFC 5321 implicit-MX rule. No MX and no A means the domain cannot receive mail at all โ the single strongest "invalid" signal this actor has.
What this actor CANNOT prove โ and says so
Mailbox existence. The only way to know whether jane.doe@acme.com is a real,
active inbox is an SMTP RCPT TO handshake on port 25. Apify, like almost every cloud
host, blocks outbound port 25 to fight spam abuse. So this actor never attempts it,
and every single result carries mailboxVerified: false with a mailboxVerifiedReason
explaining exactly why. Any tool that answers "valid โ
" without that caveat is either
guessing or lying about what it checked โ the honesty is the whole point of this actor.
Catch-all domains. Telling "accepts everything" apart from "accepts this one address"
also needs an SMTP probe. Stage 8 reports catchAll.status: "unknown" with the reason,
rather than fabricating a guess.
How the confidence score works
Each stage adds or subtracts evidence-weighted points from a neutral baseline (syntax
validity, typo suspicion, disposable/role/domain-type, MX reachability, plus small fixed
penalties for the two things that can never be resolved: catch-all and mailbox
existence). The result is clamped 0-100 and capped below 100 โ a perfect score is
never awarded, because two things are always unverifiable. The verdict
(valid / risky / invalid / unknown) and the full signals array โ every
contributing factor with its weight and a human-readable reason โ are both returned, so
nothing about the score is a black box.
Input
{"emails": ["jane.doe@gmail.com", "sales@acme-corp.com", "user@gmial.com", "x@mailinator.com"],"checkDns": true,"checkTypos": true,"maxItems": 0}
Also accepts sourceDatasetIds, objects with an email field (configurable via
emailField), customDisposableDomains, customRoleLocalParts, onlyFlagged (skip
valid rows in the dataset), and DNS concurrency/dnsTimeoutMs.
Output (per address)
email, normalizedEmail, domain, syntax, typoCheck, disposable, role,
domainType, dns, catchAll, mailboxVerified, mailboxVerifiedReason, verdict,
confidence, signals.
Honest limitations
- Disposable and popular-provider lists are curated snapshots, not a live feed โ brand new burner domains won't be caught until the list is refreshed.
- Free-vs-corporate is a list lookup, not a WHOIS/registry classification.
- DNS checks depend on Cloudflare's DoH resolver being reachable from the run; if it
isn't, the verdict becomes
unknownrather than a guessedvalid. - Nothing here, ever, confirms a mailbox actually exists.