Email Verifier (Syntax, MX, Disposable, Role) avatar

Email Verifier (Syntax, MX, Disposable, Role)

Pricing

$1.00 / 1,000 email checkeds

Go to Apify Store
Email Verifier (Syntax, MX, Disposable, Role)

Email Verifier (Syntax, MX, Disposable, Role)

Check email lists without sending mail: syntax, domain MX records, null MX, disposable domains, role accounts, free providers and common typos, with a pass/risky/fail verdict and reason codes. Does not connect to mail servers and does not confirm that a mailbox exists.

Pricing

$1.00 / 1,000 email checkeds

Rating

0.0

(0)

Developer

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

30 minutes ago

Last modified

Security

Limited permissions

Share

Email list in, one row per address out: is it well-formed, can its domain receive mail (MX records), is it a disposable domain, a role account (info@, sales@ …), a free provider, or a likely typo (gmial.com). Each row gets a pass / risky / fail verdict with reason codes.

Read this first: what this Actor does NOT do

  • It does not connect to any mail server (no SMTP, no RCPT TO probing) and sends no email.
  • It therefore cannot tell whether a specific mailbox exists, is full, or will accept a message, and it cannot detect catch-all (accept-all) domains. Every row has "mailboxVerified": false to make that explicit.
  • pass means: the address is well-formed, its domain publishes MX records, and it is not on the disposable list or a role account. A pass address can still bounce.

If you need mailbox-level confirmation, use a dedicated SMTP verification service. Use this Actor to cheaply clean a list first: drop fail rows, review risky rows, then send what is left to a paid mailbox checker or your ESP.

Inputemails[] (1–10,000 per run)
Output per emailverdict, reasons[], syntaxValid, syntaxError, normalizedEmail, domain, dnsStatus, hasMx, mxHosts[], mxProvider, disposable, role, freeProvider, didYouMean, mailboxVerified (always false)
Pricing$0.001 per email checked ($1 / 1,000). Rows whose DNS lookup failed (unknown) are not billed.
AccessDNS over HTTPS (Cloudflare, Google fallback). No mail server is contacted.
Call itREST skilled_glee~email-verifier · MCP https://mcp.apify.com/?tools=skilled_glee/email-verifier

Pipeline role (n8n / agents): Lead gen → Verify: find → Contact Details Extractor → Email Verifier → CRM. Full catalog: EchoEmpire Machine Foundry llms.txt.

Input

{
"emails": ["support@apify.com", "jane.doe@gmail.com", "someone@gmial.com", "test@mailinator.com", "bad-address@", "user@no-such-domain-ee-test-1234.com", "info@example.com"]
}

Output

Rows from a real run (2026-10-29; the last two rows are abridged):

{"email": "jane.doe@gmail.com", "normalizedEmail": "jane.doe@gmail.com", "domain": "gmail.com", "syntaxValid": true, "syntaxError": null, "dnsStatus": "mx_found", "hasMx": true, "mxHosts": ["gmail-smtp-in.l.google.com", "alt1.gmail-smtp-in.l.google.com"], "mxProvider": "google", "disposable": false, "role": false, "freeProvider": true, "didYouMean": null, "verdict": "pass", "reasons": [], "mailboxVerified": false}
{"email": "info@example.com", "domain": "example.com", "dnsStatus": "null_mx", "hasMx": false, "role": true, "verdict": "fail", "reasons": ["null_mx", "role_account"], "mailboxVerified": false}
{"email": "test@mailinator.com", "dnsStatus": "mx_found", "disposable": true, "verdict": "risky", "reasons": ["disposable_domain"], "mailboxVerified": false}

Verdicts

verdictMeaning
passWell-formed, domain has MX records, not disposable, not a role account, no typo hint. Not a mailbox confirmation.
riskyDomain can receive mail, but: role_account, disposable_domain, possible_typo, or no_mx_a_record_only (no MX, mail would go to the domain's A record).
failsyntax_*, domain_not_found (NXDOMAIN), null_mx (domain says it accepts no mail, RFC 7505), or no_mail_route (no MX, A or AAAA).
unknownDNS lookup failed after retries (dns_error). Not billed.

dnsStatus

mx_found · a_record_fallback · null_mx · domain_not_found · no_mail_route · dns_error · null (syntax failed, no lookup).

Other fields: mxProvider is a label from the MX host names (google, microsoft, zoho, proton, mimecast, proofpoint, … or other). role matches the local part (before any +tag) against common role names. disposable uses the CC0 disposable-email-domains list (bundled, ~10k domains, subdomains included). didYouMean covers common misspellings of big free providers.

SUMMARY in the default key-value store has verdict counts, emails charged and whether a spending limit stopped the run.

Pricing (pay per event)

EventWhenPrice
email-checkedOnce per unique email with a pass, risky or fail verdict saved to the dataset$0.001

No start fee. Duplicates are checked and billed once; unknown rows are free. Example: 5,000 unique emails = $5.00.

Limits

  • 10,000 emails per run; DNS answers are cached per domain within a run.
  • Disposable and role lists are heuristics: new throwaway domains appear daily, and some companies use role-like addresses for real people.
  • Results reflect DNS at run time.