✅ Bulk Email Verifier - MX, Disposable & Role Check
Pricing
$2.00 / 1,000 email verifieds
✅ Bulk Email Verifier - MX, Disposable & Role Check
Verify a list of emails without an API key: RFC syntax, live DNS MX record + provider (Google/Microsoft…), disposable-domain and role-based detection, free-provider flag, and a 0-100 deliverability score. Clean your lead list and cut bounces before cold outreach.
Pricing
$2.00 / 1,000 email verifieds
Rating
0.0
(0)
Developer
Renzo Madueno
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
✅ Bulk Email Verifier — MX, Disposable & Role Check
Paste a list of emails, get back a clean one. This Actor takes any list of
email addresses and returns, for each one, whether it's well-formed, whether its
domain can actually receive mail (a live DNS MX lookup), who runs that mail
(Google Workspace, Microsoft 365, Zoho…), and whether it's a disposable,
role-based, or free consumer address. Every email gets a status
(valid / risky / invalid) and a 0–100 deliverability score so you can
sort, filter and clean in seconds.
No API key. No signup with a third-party verification service. Keyless DNS + heuristics that run reliably from the cloud.
The value chain: find → verify → send
A cold list is only as good as its deliverability. Sending to dead, fake, or throwaway addresses hurts your sender reputation — mailbox providers watch your bounce rate and spam-trap hits, and a dirty list gets your good mail sent to spam. The fix is a two-step pipeline:
- Find the emails. Use our sibling Actors:
- Website Contact Finder — crawl any domain and pull out emails, phones and social links.
- Company Enrichment — turn a domain into tech stack, contacts and MX provider.
- Verify before you send — this Actor. Drop the raw list in, keep the
validrows, review theriskyones, and discard theinvalidones. - Then email with your ESP / cold-outreach tool on a clean list.
The result: lower bounce rate, protected sender reputation, higher inbox placement, and you stop paying your email tool to send to addresses that were never going to land.
What each check means
| Field | What it tells you |
|---|---|
syntaxValid | Passes pragmatic RFC-ish validation (single @, legal local/domain parts, length limits). Catches typos like john@@stripe, .leading, trailing dots. |
hasMx | The domain has a live DNS MX record — i.e. a mail server is configured to receive its mail. Resolved with Node's native dns resolver. Falls back to an implicit A-record MX (RFC 5321 §5.1) and flags it as weaker. |
mxProvider | Who runs the mailbox, classified from the MX hostnames: Google Workspace, Microsoft 365, Zoho, Proofpoint, Mimecast, GoDaddy, Amazon SES, Yahoo, Yandex, Proton, transactional ESPs, and more. A real, useful deliverability & segmentation signal. |
isDisposable | The domain is a known throwaway / temp-mail service (Mailinator, Guerrilla Mail, 10MinuteMail, YOPmail, and ~100 more). These addresses vanish — never worth emailing. |
isRoleBased | The local part is a role/alias, not a person (info@, support@, sales@, admin@, noreply@…). Higher bounce and complaint risk on cold outreach; often catch-all. |
isFreeProvider | A free consumer mailbox (gmail.com, yahoo.com, outlook.com, icloud.com…). Deliverable, but usually not a business contact — matters when cleaning a B2B list. |
status | Roll-up: valid (good syntax + real MX + not disposable + not role/free), risky (deliverable but low-quality: role-based, free, or A-record-only), invalid (bad syntax, no MX, or disposable). |
score | 0–100 deliverability score combining every signal above. Sort your list by it. |
reason | Short machine-readable reason for the status (e.g. no-mx-record, disposable-domain, role-based, ok). |
checkedAt | ISO timestamp of the check. |
Honest note: this is MX + heuristics, not live SMTP
Some verifiers claim to "ping the mailbox" over SMTP (connect to the mail server
on port 25 and issue RCPT TO to see if the address exists). We deliberately
don't do that, and neither should you trust services that claim they do from the
cloud:
- Cloud providers (Apify included) block or throttle outbound port 25 to stop spam, so the check would fail or hang for most addresses.
- Even when it connects, results are unreliable: greylisting delays it, and catch-all domains accept every address, so a "yes" means nothing.
- Aggressive SMTP probing can get your IP blacklisted.
So we do the checks that are honest, fast and reliable from the cloud:
valid syntax + a real MX record + disposable/role/free heuristics. This catches
the overwhelming majority of bad addresses (typos, dead domains, throwaways)
without pretending to a mailbox-level certainty that no cloud tool can truthfully
deliver. risky is our honest label for "deliverable domain, but verify the
mailbox yourself before a high-stakes send."
Input
{"emails": ["john@stripe.com", "test@mailinator.com", "info@notion.so"],"maxConcurrency": 5}
| Field | Type | Default | Description |
|---|---|---|---|
emails | array of strings | — (required) | Emails to verify, one per line. |
maxConcurrency | integer | 5 | How many to verify in parallel (1–25). |
Output
One record per email:
{"email": "john@stripe.com","syntaxValid": true,"hasMx": true,"mxProvider": "Google Workspace","isDisposable": false,"isRoleBased": false,"isFreeProvider": false,"status": "valid","score": 100,"reason": "ok","checkedAt": "2026-07-02T00:00:00.000Z"}
{"email": "test@mailinator.com","syntaxValid": true,"hasMx": false,"mxProvider": null,"isDisposable": true,"isRoleBased": false,"isFreeProvider": false,"status": "invalid","score": 5,"reason": "disposable-domain","checkedAt": "2026-07-02T00:00:00.000Z"}
The dataset ships with a table view (email, status, score, MX, disposable, role-based, provider) and exports to CSV, JSON, Excel, and via API.
Use cases
- Clean a lead list before importing it into your CRM or ESP.
- Cut your bounce rate — drop
invalid, reviewrisky, keepvalid. - Protect sender reputation ahead of a cold-outreach campaign.
- Segment B2B vs consumer with
isFreeProvider, and person vs alias withisRoleBased. - Route by provider — e.g. tailor sending to Google Workspace vs Microsoft 365 domains.
- De-risk a purchased or scraped list by spotting disposable and dead domains.
FAQ
Does it connect to the mailbox / do a real SMTP check? No — see the honest note above. We do syntax + live MX + disposable/role/free heuristics, which is the reliable approach from the cloud.
Can it prove an address definitely exists? No cloud tool can (catch-all domains accept everything). We prove the domain can receive mail and flag everything that makes an address low-quality or fake.
What does risky mean — should I email those?
Deliverable domain, but a lower-quality target: a role alias (info@), a free
consumer inbox, or a domain with only an A record. Fine for some sends, worth a
second look before high-stakes outreach.
Do I need an API key or account anywhere? No. DNS is queried directly; the disposable/role/free lists are bundled.
How fast is it? Fast — checks run in parallel (default concurrency 5). Thousands of emails run in minutes.
Are results deduplicated? Yes, the input list is de-duplicated (case-insensitive) before verification.
Automate it
Run this Actor on a schedule or from your own code:
- Schedule it in the Apify Console to re-verify a list periodically.
- API / SDK: call it from Node or Python and read the dataset back.
- Integrations: pipe results to Google Sheets, Slack, Zapier, Make, or a webhook.
- Chain it: run Website Contact Finder → feed its emails straight into
this verifier → export the
validrows to your outreach tool.
Pricing is pay-per-result: you're charged per email verified, so a run costs exactly what you use.
Part of a lead-gen Actor family: Website Contact Finder and Company Enrichment to find and enrich; Bulk Email Verifier to clean before you send.