Email Verifier - $1/1k, Bulk, Typo Fix + Gmail/Outlook Provider avatar

Email Verifier - $1/1k, Bulk, Typo Fix + Gmail/Outlook Provider

Pricing

from $2.00 / 1,000 verification runs

Go to Apify Store
Email Verifier - $1/1k, Bulk, Typo Fix + Gmail/Outlook Provider

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

mohamed alaya

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

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

CheckWhat 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 / MXdomain 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 fixknown typos (gmial.com, hotmial.com), wrong endings (gmail.con, .cmo) and near-misses of popular providers, with a ready-to-use suggestedEmail.
Disposable400+ throwaway-mail providers (Mailinator, Guerrilla Mail, YOPmail ...), including subdomains. Add your own.
Role accountsinfo@, sales@, support@, noreply@ ... (80+ local parts, add your own).
Free vs corporateGmail, Outlook, Yahoo and other free webmail flagged.
Mail providerwho hosts the domain's email: Google Workspace, Microsoft 365, Zoho, Proofpoint, Mimecast ...
Placeholderstest@, asdf@, none@, noemail@.
Optional SMTP probeasks 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 mailboxVerified is true.
  • 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", plus smtpDisabledReason in 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 risky because 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.