Email Verifier (Syntax, MX, Disposable, Role)
Pricing
$1.00 / 1,000 email checkeds
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
EchoEmpire Machine Foundry (EchoEmpire LLC)
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
30 minutes ago
Last modified
Categories
Security
Limited permissionsShare
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 TOprobing) 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": falseto make that explicit. passmeans: the address is well-formed, its domain publishes MX records, and it is not on the disposable list or a role account. Apassaddress 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.
| Input | emails[] (1–10,000 per run) |
| Output per email | verdict, 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. |
| Access | DNS over HTTPS (Cloudflare, Google fallback). No mail server is contacted. |
| Call it | REST 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
verdict | Meaning |
|---|---|
pass | Well-formed, domain has MX records, not disposable, not a role account, no typo hint. Not a mailbox confirmation. |
risky | Domain 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). |
fail | syntax_*, domain_not_found (NXDOMAIN), null_mx (domain says it accepts no mail, RFC 7505), or no_mail_route (no MX, A or AAAA). |
unknown | DNS 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)
| Event | When | Price |
|---|---|---|
email-checked | Once 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.