Hoppa till innehållet
← All data tools

Bulk e-mail validator with MX check

Returns a valid, risky or invalid verdict for each e-mail address, with a syntax check, the domain's MX records, disposable domain and role account flags, a typo suggestion (gmial.com to gmail.com) and the reason in one sentence.

Open in Apify Store

Send a list of addresses, or point the tool at an Apify dataset from another actor, and get one row per address back. Duplicates are checked and charged once, and up to 100 000 unique addresses fit in one run.

The tool never connects to the mail servers and never sends anything. It looks up DNS records and compares the address with an open list of 9 203 disposable domains and a list of role names (info, sales, noreply, kontakt and others). That means it cannot confirm that a specific mailbox exists, but it also never puts your IP address at risk of being blocklisted for probing mail servers.

Sample from a real run

3 rows (selected fields) from run NmnE22LpE3oQ6ksCP on 6 October 2026, exactly as the tool returned them.

emailstatusreasonhasMxmxHostsisDisposableisRoleAccountsuggestion
info@apify.comriskyRole account that reaches a team, not one person.trueaspmx.l.google.com, alt1.aspmx.l.google.com, alt2.aspmx.l.google.com, aspmx2.googlemail.com, aspmx3.googlemail.comfalsetruenull
hello@example.cominvalidThe domain publishes a null MX record: it accepts no e-mail.false[ ]falsetruenull
noreply@github.comriskyRole account that reaches a team, not one person.truegithub-com.mail.protection.outlook.comfalsetruenull

Fields

Every row has these fields. Field names are stable between versions.

FieldWhat it holds
emailThe address exactly as you sent it
normalizedCleaned address: trimmed, without display name or mailto:, in lower case, with an international domain in its ASCII (punycode) form. null when the syntax is invalid
isValidSyntaxWhether the address follows the syntax of RFC 5321 and 5322 (dot-atom or quoted local part, UTF-8 local parts as in RFC 6531)
domainThe domain part, in ASCII form
hasMxtrue when the domain has MX records, false when it has none, null when the lookup failed or the syntax was invalid
mxHostsThe MX hosts, sorted by priority
isDisposableThe domain, or a parent domain, is on the open list of disposable e-mail domains
isRoleAccountThe local part is a role address such as info, admin, support, sales, noreply, kontakt or kundtjanst (English and Nordic names, +tags ignored)
suggestionThe address with the likely intended domain when the domain looks like a typo of a large mailbox provider, for example gmial.com to gmail.com
statusvalid, risky or invalid
reasonWhy, in one sentence

Input example

Paste it into the JSON tab of the actor in Apify Console, or send it to the Apify API.

{
  "emails": [
    "anna@example.com",
    "info@company.se",
    "firstname.lastname@gmial.com",
    "test@mailinator.com"
  ],
  "onlyNew": false
}

What people use it for

  • Cleaning a list before a send. Remove addresses whose domain accepts no mail, and decide what to do with role accounts and disposable domains before they hurt your sender reputation.
  • Checking sign-ups. Run new sign-ups through the tool with onlyNew set to true, so each address is checked and charged once.
  • After a lead scraper. Give the dataset ID from another actor in datasetId and the field name in emailField, and the addresses are checked in the same pipeline.

Price

1 USD per 1 000 addresses, plus Apify platform usage.

A run with empty input checks four example addresses, which costs 0.004 USD in results. Platform usage is small: a test run that checked 2 000 addresses across 315 domains took 4 seconds and used 0.0001 USD.

Run it on a schedule

Set onlyNew to true and add the actor to a schedule in Apify Console (for example the cron expression 0 7 * * * for 07:00 every day). The actor remembers what it has already delivered for the same input, in a named key-value store in your own Apify account (nightwave-state-email-validator), and each run returns and charges only what is new. The first run returns everything in the selection. A run with nothing new finishes with 0 rows and costs nothing beyond platform usage.

Source and license

The checks are the tool's own code: the syntax rules of RFC 5321, 5322 and 6531, DNS lookups of MX, A and AAAA records, and built-in lists of role names and mailbox providers. With onlyNew, only one-way SHA-256 hashes of checked addresses are stored, never the addresses.

The disposable domain list is from disposable-email-domains, published under CC0 1.0 Universal, which allows commercial use without asking permission. It was downloaded on 3 October 2026 and is bundled with the tool.

Try it

The tool runs on Apify. Apify handles your account, the runs and the payment, and you can try it with the input above before you schedule anything.

Open in Apify Store

Built and maintained by Nightwave AB. Questions or bugs: kontakt@nightwave.se