Bulk Email Verifier: Syntax, Domain, MX & Role Checks
Pricing
from $10.00 / 1,000 email address checkeds
Bulk Email Verifier: Syntax, Domain, MX & Role Checks
Clean an email list before you import it. Checks syntax, whether the domain exists and accepts mail (MX), disposable providers and role addresses, and says plainly what it could not determine.
Pricing
from $10.00 / 1,000 email address checkeds
Rating
0.0
(0)
Developer
Pavel Tashev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Share
What does Bulk Email Verifier do?
Clean an email list before you import it. Paste your addresses and get back, for each one, whether it is
well formed, whether the domain exists and accepts mail, whether it is a throwaway address, and whether it is a
role mailbox like info@ rather than a person — with a stable reason code for every verdict.
It runs on the Apify platform, so you get an API, scheduling, and integrations with Make, Zapier and n8n.
What it checks, and what it deliberately does not claim
| Check | What it tells you |
|---|---|
| Syntax | The address is shaped like something a mail system will route — not merely RFC-legal |
| Domain exists | The domain resolves at all |
| MX records | The domain actually accepts mail, and which servers handle it |
| Disposable provider | Throwaway mailboxes (mailinator, guerrillamail, yopmail and similar) |
| Role address | info@, sales@, noreply@ and friends — real, but they behave differently in bulk |
| Free provider | Consumer mailboxes, useful to know on a B2B list |
| SPF and DMARC | Whether the domain publishes a sender policy, and how strict DMARC is |
| Domain age | How long ago the domain was registered (RDAP) — a week-old domain on a mailing list is a pattern |
Every address also gets a 0–100 score. Every deduction maps to a reason code that is also in the row, so the number can be explained rather than trusted: a role address costs 25, a disposable domain 70, a missing SPF record 10. No opaque model, no score you cannot audit.
SPF, DMARC and domain age are checked once per domain, not once per address — a list of 5,000 addresses across 300 domains costs 300 lookups.
It does not perform an SMTP handshake, so it never claims a specific mailbox exists. Apify blocks outbound
port 25, which makes that check impossible from here — and rather than quietly imply otherwise, every result
carries mailboxChecked: false and deliverable is defined as "the domain accepts mail and the address is
well formed." Catch-all detection needs the same handshake and is likewise not offered.
If you need mailbox-level confirmation, this Actor is the wrong tool and says so. For the far more common job — removing the typos, dead domains, throwaways and role accounts that make up most of the junk in a real list — it is exactly the right one.
Three ways to give it the list
- Paste addresses into Email addresses for a quick check.
- Point it at a file — Read addresses from a file takes links to CSV, JSON or plain text. Every address-shaped value is used, so a CSV export with headers and quoting works with no reformatting. One consequence worth knowing: run it over a raw email message and it will also pick up Message-ID headers, which are address-shaped by design. Supply a list or a CSV for clean results.
- Check domains instead — Domains to check answers "can this domain receive mail at all?" with MX, SPF, DMARC and age, before you have a single address for it.
The per-domain summary
VERIFICATION_REPORT groups every result by domain, worst first, because a list with 400 addresses at one
dead domain is one problem and not four hundred. Each domain shows how many addresses it holds, the spread of
statuses, its average score, and only the reasons that are genuinely about the domain — a role address is a
fact about one mailbox, so it never appears against the domain everybody else shares.
Status values
- deliverable — the domain accepts mail and the address is well formed.
- risky — it can receive mail, but you may not want it: disposable domain, role address, or a domain that accepts mail only through the RFC's implicit-MX rule.
- invalid — it cannot receive mail: bad syntax, or the domain does not exist and has no MX.
- unknown — DNS did not answer. Try again rather than deleting the address; this is never charged.
- duplicate — already in your list. Reported once, charged once.
Your list stays yours
The addresses are your data and you remain the controller of them. We act only as a processor: results go to your run's dataset, nothing is retained by us beyond it, no address is looked up anywhere except its own domain's DNS, and nothing is ever enriched, appended or combined into any list of ours.
How much does it cost?
Charged per address actually checked. Duplicates, syntax rejections and DNS failures are never charged — a result we could not produce is not a result you should pay for. Domains are looked up once per run and cached, so a list of 5,000 addresses across 300 domains costs 300 lookups, not 5,000.
Tips
- Send the whole list in one run: the domain cache is per run, so splitting it costs more.
- Treat risky as a decision, not a rejection.
info@addresses are often exactly who you meant to write to. - Re-run unknown rows later. They mean our DNS query failed, not that the address is bad.
FAQ
Why no mailbox verification? Outbound port 25 is blocked on the Apify platform. Claiming a mailbox exists without the handshake would be a guess, and this Actor does not guess.
Is the disposable-domain list complete? No, and no such list is. There are thousands of these domains and
they change weekly. This catches the common ones; disposable-domain being absent is not proof of the opposite.