๐Ÿ“ง Email Verifier - Honest Confidence Score, Not a Fake Yes/No avatar

๐Ÿ“ง Email Verifier - Honest Confidence Score, Not a Fake Yes/No

Pricing

Pay per event

Go to Apify Store
๐Ÿ“ง Email Verifier - Honest Confidence Score, Not a Fake Yes/No

๐Ÿ“ง 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

mohamed alaya

Maintained by Community

Actor 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 +tag stripping, the googlemail.com alias, generic +tag handling for any provider (via the shared normalizeEmail engine).
  • Typo detection โ€” edit distance against ~70 popular providers, so user@gmial.com gets suggested gmail.com and user@hotmial.com gets hotmail.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 unknown rather than a guessed valid.
  • Nothing here, ever, confirms a mailbox actually exists.