Email Validator: Syntax, Domain, MX, Disposable & Typo Check
Pricing
from $0.30 / 1,000 emails
Email Validator: Syntax, Domain, MX, Disposable & Typo Check
Validate email lists in bulk: syntax, typos (gmial.com), disposable and role addresses, free providers, domain and MX records, mail provider (Google, Microsoft, IONOS...). Fast pre-filter, no SMTP, pay per email.
Pricing
from $0.30 / 1,000 emails
Rating
0.0
(0)
Developer
Tim Tonat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does Email Validator do?
This Actor validates email lists in bulk without sending a single email. For every address you get a status (valid, invalid, risky, unknown), a reason, a score from 0 to 100 and the individual checks:
- Syntax check close to RFC 5321/5322, including international domains (
müller.de) andName <email>/mailto:input - Typo suggestions for common providers:
gmial.com→gmail.com,hotmial.de→hotmail.de,firma.con→firma.com - Domain and MX records: domain exists, has mail servers, or explicitly accepts no mail (null MX)
- Disposable / temporary email domains (about 10,000 known services, subdomains included)
- Role accounts (
info@,sales@,kontakt@, …) and no-reply addresses - Free providers (Gmail, Outlook, GMX, WEB.DE, …) to separate business from private addresses
- Mail provider detected from the MX records: Google Workspace, Microsoft 365, IONOS, Strato, Hornetsecurity, Proofpoint and more
You get one row per input row in the original order, so the result lines up with your spreadsheet. Duplicates are marked and not charged again.
Why use this email validator?
- Clean lists before a campaign: remove addresses whose domain doesn't exist or doesn't accept mail
- Pre-filter before paid SMTP verification: drop the obviously bad addresses here for a fraction of the price, then verify only the rest
- Fix typos in sign-up and CRM data with the suggested correction
- Block disposable addresses in lead lists and trial sign-ups
- Segment B2B leads by mail provider: Microsoft 365 vs. Google Workspace vs. local hosters
- Fast and cheap: no proxies, no browser, each domain is looked up only once per run
What it does not do
This Actor does not connect to the recipient's mail server (no SMTP "mailbox exists" check), because cloud platforms block outgoing port 25. So it can tell you that max@company.com has a valid domain with working mail servers, but not whether the mailbox max exists. Use it as the first, cheap stage of list cleaning.
Status and reasons
| Status | Reason | Meaning | Score |
|---|---|---|---|
valid | OK | Valid syntax, domain has mail servers | 100 |
valid | ROLE_ACCOUNT | Valid, but a shared role address like info@ | 80 |
risky | NO_MX_RECORD | Domain has no MX record, only an A record. Mail servers may still deliver, but often nobody reads it | 50 |
risky | POSSIBLE_TYPO | Domain is one keystroke away from a big provider, see suggestion | 20 |
risky | DISPOSABLE | Disposable / temporary email service | 10 |
risky | NO_REPLY_ADDRESS | noreply@, do-not-reply@, mailer-daemon@ … | 10 |
invalid | INVALID_SYNTAX | Not an email address | 0 |
invalid | DOMAIN_NOT_FOUND | The domain does not exist | 0 |
invalid | DOMAIN_ACCEPTS_NO_MAIL | The domain publishes a null MX record (RFC 7505) | 0 |
invalid | NO_MAIL_SERVER | The domain has neither MX nor A records | 0 |
unknown | DNS_ERROR | DNS did not answer (timeout, server failure). Try again later | – |
How to validate an email list
- Click Try for free.
- Paste your addresses into Email addresses, one per line (or upload them via the API).
- Click Start.
- Open the Overview table, or download everything as CSV, Excel or JSON. The Summary shows counts by status, reason and mail provider.
How much does it cost?
This Actor uses pay per event: a fixed price per unique validated address, and platform usage is included. The current price is shown in the Pricing tab. Free: duplicates, rows that are not an email address at all (like a CSV header), and addresses whose domain could not be checked because of a DNS error.
Input
{"emails": ["info@apify.com", "someone@gmial.com", "test@mailinator.com", "not-an-email"]}
Output
{"email": "someone@gmial.com","normalizedEmail": "someone@gmial.com","status": "risky","reason": "POSSIBLE_TYPO","score": 20,"suggestion": "someone@gmail.com","domain": "gmial.com","mailProvider": null,"mxRecords": [],"isValidSyntax": true,"isDisposable": true,"isRole": false,"isFreeProvider": false,"hasMx": false,"requiresSmtpUtf8": false,"isDuplicate": false,"error": null}
Related Actors
- Domain & Email DNS Checker: WHOIS/RDAP, MX, SPF, DMARC and DKIM for many domains
- Website Contact & Imprint Extractor: emails, phone numbers, social profiles and imprint data from websites
- Website Lead Enricher: company name, contacts, tech stack and DNS data from a list of domains
All Actors by Veedel Digital: apify.com/veedel_digital
FAQ
Where does the disposable domain list come from?
From the open-source project disposable-email-domains (CC0 public domain), bundled with the Actor.
Why is info@ "valid" and not "risky"?
In B2B, and especially for small companies, info@ is often the only published address and it is read. The isRole flag and the lower score let you filter role accounts if you don't want them.
Something does not work
Please open an issue in the Issues tab with an example address and the run ID. You can also start the Actor programmatically from the API tab.