Bulk Email Verifier & Validator (No SMTP) avatar

Bulk Email Verifier & Validator (No SMTP)

Pricing

from $0.90 / 1,000 email verifieds

Go to Apify Store
Bulk Email Verifier & Validator (No SMTP)

Bulk Email Verifier & Validator (No SMTP)

Bulk email verifier and validator for lists of up to 10,000 addresses. Checks format, domain, mail server (MX), disposable domains, role addresses and typos like gmial.com. Each address gets a clear verdict: ok, risky, invalid or unknown. No mail server is contacted, no address is guessed.

Pricing

from $0.90 / 1,000 email verifieds

Rating

0.0

(0)

Developer

UHQxx

UHQxx

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Security

Limited permissions

Share

What is Email Verifier?

Email Verifier checks a list of email addresses in seconds and tells you which ones are worth keeping. For each address it checks the format, whether the domain exists, whether it declares a mail server (MX record), whether it is a disposable email domain, whether it is a function address such as info@ and whether it is a likely typo of Gmail, Outlook or Orange.

Each address gets a clear verdict (ok, risky, invalid or unknown) with a plain-English reason, ready to export as JSON, CSV or Excel. You can verify up to 10,000 addresses per run.

What makes it different: it never contacts a mail server, never guesses or rebuilds addresses, and writes no email address in its logs. Only the domain part (after the @) is looked up.

What can this email validator do?

  • Check the format of each address (including international domain names).
  • Check that the domain exists and can receive email (MX records, with the standard fallback and the "null MX" rule).
  • Flag disposable (throw-away) email domains.
  • Flag function addresses (info@, contact@, support@...) and free providers (Gmail, Outlook...).
  • Suggest a fix for likely typos (jane@gmial.com becomes jane@gmail.com).
  • Remove duplicates and skip the addresses in your exclusion list.
  • Never mark an address invalid just because a lookup failed: those get unknown, and are not charged.

Who is it for?

  • Marketers and sales teams cleaning a list before an email campaign or a CRM import.
  • Developers who want a simple domain-level check inside a sign-up or import workflow, through the Apify API.
  • Anyone who prefers a checker that does not probe mail servers.

3 ways to use it

  1. Clean a list before sending. Remove addresses with a wrong format or a domain that cannot receive email, and review the risky ones by hand.
  2. Fix typos at import. An address such as jane@gmial.com is flagged with a suggestion (jane@gmail.com).
  3. Spot disposable sign-ups. Flag addresses that use throw-away email domains.

Example output

Real output from the Actor (fictional addresses, test domains):

[
{
"email": "jane.doe@gmail.com",
"verdict": "ok",
"reason": "Valid format and the domain accepts email",
"syntaxValid": true,
"domain": "gmail.com",
"domainAcceptsMail": true,
"isDisposable": false,
"isRoleBased": false,
"isFreeProvider": true,
"typoSuggestion": null
},
{
"email": "jane@gmial.com",
"verdict": "risky",
"reason": "Possible typo in the domain. No mail server (MX record) declared, only a web address: delivery is uncertain",
"syntaxValid": true,
"domain": "gmial.com",
"domainAcceptsMail": null,
"isDisposable": null,
"isRoleBased": false,
"isFreeProvider": false,
"typoSuggestion": "jane@gmail.com"
},
{
"email": "bob@example.com",
"verdict": "invalid",
"reason": "Domain declares that it does not accept email",
"syntaxValid": true,
"domain": "example.com",
"domainAcceptsMail": false,
"isDisposable": null,
"isRoleBased": false,
"isFreeProvider": false,
"typoSuggestion": null
},
{
"email": "not-an-email",
"verdict": "invalid",
"reason": "Missing @",
"syntaxValid": false,
"domain": null,
"domainAcceptsMail": null,
"isDisposable": null,
"isRoleBased": null,
"isFreeProvider": null,
"typoSuggestion": null
}
]

How to use it

  1. Open the Actor on Apify and paste your addresses in Email addresses (one per line; commas, semicolons and spaces also work). Duplicates are checked once.
  2. Optional: fill the Exclusion list with addresses or domains that must not be processed (see the GDPR section).
  3. Click Start, then open the Results table or export it as JSON, CSV or Excel. A short run summary (totals only) is saved in the SUMMARY record of the key-value store.

You can also run it from your own tools through the Apify API.

Input

FieldMeaningDefault
emailsAddresses to check (required).none
excludedEmailsAddresses (jane@example.com) or domains (example.com or @example.com) that must NOT be processed. They are skipped, not saved and not counted.empty
maxEmailsSafety limit per run, from 1 to 10,000. Addresses beyond it are not checked (a warning is logged).1,000
dnsTimeoutSecondsTime to wait for each domain lookup in the first pass, from 1 to 30. Domains that are slow to answer get one more, more patient attempt (up to 30 seconds).10

Output columns

ColumnMeaning
emailThe address, trimmed and in lower case.
verdictok, risky, invalid or unknown (see below).
reasonWhy, in plain English.
syntaxValidThe address has a valid format.
domainThe part after the @.
domainAcceptsMailtrue if the domain declares a mail server, false if it does not exist or cannot receive email, null if undetermined.
isDisposableThe domain belongs to a disposable-email service (null if not evaluated).
isRoleBasedFunction address such as info@ or contact@ (no named person).
isFreeProviderConsumer mailbox provider such as Gmail or Outlook.
typoSuggestionCorrected address if the domain looks like a typo of a popular one.

What the verdicts mean

  • ok: valid format, and the domain declares a mail server.
  • risky: worth a manual look: disposable domain, likely typo, or no mail server declared (only a web address).
  • invalid: wrong format, the domain does not exist, or the domain says it does not accept email.
  • unknown: the lookup could not be completed (timeout or DNS problem). It is never reported as invalid. Run those addresses again later.

FAQ

Does it check that a mailbox really exists?

No. It does not talk to the recipient's mail server (no SMTP test), so it cannot know whether jane@company.com exists. ok means the format is valid and the domain can receive email. This is the price of not probing mail servers, which also avoids getting your own IP address flagged.

Why not just test the mailbox with SMTP?

Many mail servers accept every address, block or throttle these tests, or flag the sender. A checker that never contacts mail servers is simpler, faster and more predictable. If you need mailbox-level checks, use a tool that does SMTP probing, and keep this one for the fast domain-level clean-up.

Is it safe for personal data?

The addresses you submit are personal data when they identify a person. The Actor sends only the domain part to DNS lookups, never the part before the @, calls no third-party API and writes no address in its logs. You remain responsible for your use: see the GDPR section below.

What does unknown mean, and am I charged for it?

It means the check could not be completed (for example a slow or broken DNS server). It is never reported as invalid, and it is never charged. Run those addresses again later.

How many addresses can I check in one run?

Up to 10,000 (the maxEmails setting, 1,000 by default). A list of 10,000 addresses on about 550 different domains took 43 seconds in our own test on the Apify platform. Speed depends mostly on the number of different domains.

Can I use it through the API or in my workflow?

Yes. Like any Apify Actor, it can be started through the Apify API, on a schedule, or from integrations such as Make, Zapier or n8n.

Honest limits

  • It cannot tell whether a mailbox exists. There is no SMTP test (no conversation with the recipient's mail server). ok means "format valid and the domain can receive email", not "this person's mailbox exists" or "delivery is guaranteed".
  • Addresses with non-ASCII characters before the @ (for example josé@...) are rejected as invalid.
  • The disposable-domain list comes from the open-source package mailchecker (MIT licence). No list is complete, and it also contains some look-alike domains (typos of big providers).
  • The lists of free providers, function addresses and popular domains (for typo suggestions) are short and hand-written. A typo is only suggested when the domain is one character away from a popular domain, so some typos are missed, and a real domain one character away from a popular one can be flagged as risky.
  • Speed depends on how many different domains your list contains: each domain is looked up once. A few domains answer very slowly, and a list with many unreachable domains takes longer (the extra patient attempts are capped at about 10 minutes per run). Addresses that still cannot be checked get the verdict unknown and are never charged.
  • Run time limit. If the run timeout you set is about to be reached, the Actor stops early instead of being cut off: the addresses already checked are kept, the others are not checked and not charged, and the status message says so (the SUMMARY record has the totals). Start a new run for the rest, or raise the run timeout.

Data and GDPR: please read

Data processed. The addresses you provide, which are personal data when they identify a person. The output contains the same address plus fields derived from it. Nothing else is collected: no names, phone numbers, profiles or sensitive data.

What leaves the Actor. Only the domain part of an address (after the @) is sent in DNS queries, to the DNS resolvers of the platform. The part before the @ is never sent anywhere. No third-party API is used. Logs contain totals only, never addresses.

What is kept. The Actor keeps nothing of its own. Your results and your run input (including any exclusion list) are stored by Apify with your run, according to Apify's own retention rules. You can delete them from the Console.

You are responsible for your use. You decide why and how the addresses are used, so you are responsible for compliance. In particular:

  • Have a valid legal basis. For individuals, prior consent. For professionals, the CNIL (the French data protection authority) accepts legitimate interest when the message relates to the person's profession, with a simple and free right to object.
  • Inform the people concerned and honour objections and other requests, within one month.
  • Make sure your list was obtained lawfully.
  • Do not use this Actor to guess or rebuild addresses. This is a separate processing that the CNIL strictly regulates.
  • Use the Exclusion list for people who objected, so they are never processed again.

This is general information, not legal advice. CNIL sources (in French): email prospecting, rebuilding professional addresses, recommendations for reusing data published online.

En bref (français)

Vérifiez une liste d'adresses e-mail : format, domaine existant, serveur de messagerie déclaré, domaine jetable, faute de frappe probable. Chaque adresse reçoit un verdict (ok, risky, invalid, unknown) avec la raison. L'Actor ne contacte aucun serveur de messagerie, ne devine aucune adresse et n'écrit aucune adresse dans ses logs. Limite principale : il ne peut pas savoir si la boîte existe réellement. Vous restez responsable de l'usage de vos listes (base légale, information des personnes, droit d'opposition, réponse sous un mois) : voir la section « Data and GDPR » et les liens CNIL ci-dessus. Une liste d'exclusion permet d'écarter les personnes qui se sont opposées.

Pricing

You pay per address checked. The price is shown in the Pricing tab of the Actor.

  • Charged: each address that was actually checked and got a verdict of ok, risky or invalid.
  • Never charged: addresses with the verdict unknown (the check could not be completed), duplicates, addresses in your exclusion list, and addresses beyond your maxEmails limit.
  • A small fixed fee per run start may also apply, as shown in the Pricing tab.
  • You can cap what a run can spend with the maximum cost setting of the run. The Actor stops cleanly when the cap is reached; results already saved are kept.