Email Verifier - $1/1k, Bulk, Typo Fix + Gmail/Outlook Provider
Pricing
from $2.00 / 1,000 verification runs
Email Verifier - $1/1k, Bulk, Typo Fix + Gmail/Outlook Provider
Verify emails in bulk for $1 per 1,000: syntax, domain, MX, disposable, role, catch-all, typo fix, plus the mailbox provider (Google, Microsoft, other) for cold-email inbox matching.
Pricing
from $2.00 / 1,000 verification runs
Rating
0.0
(0)
Developer
mohamed alaya
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Email Verifier - Bulk Email Validation with Score, Typo Fix & Optional SMTP Check
Clean an email list before you send. Paste or upload thousands of addresses and get back, for each one,
a 0-100 score, a deliverability verdict (deliverable, risky, undeliverable, unknown) and the
reason in plain words - plus the flags a cold-email or CRM workflow needs: disposable, role account, free
provider, typo suggestion, mail provider.
5,000 addresses take about 10 seconds, because DNS answers are cached per domain.
What is checked
| Check | What it catches |
|---|---|
| Syntax (RFC 5321/5322) | missing @, double dots, illegal characters, bad domain labels, over-long parts, international domains. Cleans Name <a@b.com> and mailto: wrappers first. |
| Domain / MX | domain does not exist, no mail server, and domains that publish a null MX (they accept no email at all). Falls back to the A record exactly as mail servers do. |
| Typo fix | known typos (gmial.com, hotmial.com), wrong endings (gmail.con, .cmo) and near-misses of popular providers, with a ready-to-use suggestedEmail. |
| Disposable | 400+ throwaway-mail providers (Mailinator, Guerrilla Mail, YOPmail ...), including subdomains. Add your own. |
| Role accounts | info@, sales@, support@, noreply@ ... (80+ local parts, add your own). |
| Free vs corporate | Gmail, Outlook, Yahoo and other free webmail flagged. |
| Mail provider | who hosts the domain's email: Google Workspace, Microsoft 365, Zoho, Proofpoint, Mimecast ... |
| Placeholders | test@, asdf@, none@, noemail@. |
| Optional SMTP probe | asks the recipient's mail server whether it accepts the address and whether it accepts everything (catch-all). See limits below. |
Quick start
{"emails": ["jane.doe@gmail.com", "sales@acme-corp.com", "user@gmial.com", "founder@stripe.com"]}
Or paste a column straight from a spreadsheet:
{ "emailsText": "ceo@shopify.com\nbob@gmail.con\nteam@mailinator.com" }
Also accepted: objects ({"email": "a@b.com", "name": "Ann"}; the original object comes back in input)
and sourceDatasetIds to verify the output of another Actor. An empty input {} runs a 7-address sample.
Output (one row per address)
{"input": "user@gmial.com","email": "user@gmial.com","normalizedEmail": "user@gmial.com","domain": "gmial.com","verdict": "risky","deliverability": "risky","score": 46,"reason": "likely typo, did you mean user@gmail.com?","typoCheck": { "checked": true, "suspected": true, "suggestion": "gmail.com", "suggestedEmail": "user@gmail.com", "distance": 1 },"disposable": false,"role": false,"freeProvider": false,"domainType": "corporate","dns": { "checked": true, "status": "mx", "hasMx": true, "mxRecords": ["..."] },"mailProvider": null,"smtp": { "checked": false, "status": "not-run" },"catchAll": { "status": "unknown", "reason": "..." },"mailboxVerified": false,"signals": [ { "signal": "typo:suspected", "weight": -25, "detail": "..." } ]}
signals lists every piece of evidence and how much it moved the score, so a verdict is never a black box.
Verdicts
- deliverable / valid: syntax OK, domain can receive mail, no red flags (score ~85-95). With the SMTP probe
and a server that rejects random addresses, an accepted address scores up to 98 and
mailboxVerifiedistrue. - risky: disposable, role account, probable typo, placeholder-looking, or a catch-all domain.
- undeliverable / invalid: bad syntax, non-existent domain, no mail route, null MX, or the server rejected the mailbox.
- unknown: DNS could not be checked (resolver failure) - never treated as "bad".
SMTP probe: what it is, and the honest limits
Switch on smtpCheck and, for corporate domains, the Actor connects to the domain's mail server on port 25,
says EHLO, MAIL FROM:<>, RCPT TO:<the address> and then RCPT TO:<a random address> to see whether the
server accepts everything. It then quits. It never sends a message (no DATA command).
Per domain it uses one connection at a time with a pause, and the overall concurrency is small.
- Outbound port 25 is blocked on most cloud hosts. If connections fail, the Actor turns the probe off for the rest of
the run and every row says so (
smtp.status: "disabled", plussmtpDisabledReasonin the summary). Nothing is billed differently and no mailbox is falsely marked verified. - Free webmail (Gmail, Outlook, Yahoo ...) is never probed, and neither are domains behind a mail-security gateway (Proofpoint, Mimecast, Barracuda ...): those answer "yes" for every address or throttle probes.
- Microsoft 365 and others often refuse connections from IPs they do not trust; that shows up as
smtp.status: "blocked"and the row falls back to the normal domain-level verdict. - Catch-all domains (the server accepts every address) are marked
riskybecause an accepted RCPT proves nothing there. - Greylisting (temporary 4xx) is reported as
temporary, not as invalid.
Without the probe, no mailbox is ever confirmed: mailboxVerified is false and the score reflects domain-level and pattern evidence only.
Billing
Pay per event: one verification-run fee per run and an email-verified fee per row delivered. Duplicates, rows hidden
by onlyFlagged, and runs that fail on bad input are not charged. The run stops cleanly if you hit your maximum charge limit.
FAQ
How accurate is it? For syntax, domain existence, disposable, role and typo detection it is deterministic and
accurate. Whether a specific mailbox exists cannot be known without an SMTP check, which the platform usually cannot do.
Treat a valid verdict as "safe to try", not as a guarantee.
Does it send emails? No.
How many can I verify? Up to 200,000 per run. Split larger lists.
Is my list stored? Only in your run's dataset and key-value store, under your account.