Bulk Email Validator — Syntax, MX, Disposable Check & Score
Pricing
from $1.04 / 1,000 email validateds
Bulk Email Validator — Syntax, MX, Disposable Check & Score
Verify email addresses in bulk before you send: RFC syntax check, MX and mail-infrastructure lookup, 120k+ disposable-domain list, role-based and free-provider flags, plus a 0-100 quality score per address. Clean the list and cut bounce rates on your next campaign.
Pricing
from $1.04 / 1,000 email validateds
Rating
0.0
(0)
Developer
daehwan kim
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Bulk Email Validator — Syntax, MX, Disposable & Quality Score
Clean your email list before it costs you. Validate up to 500 addresses per run and get a clear decision for each — RFC syntax, mail infrastructure (MX), 120,000+ disposable-domain detection, role-based & free-provider flags, and a 0–100 quality score.
Bad and throwaway addresses bounce and hurt your sender reputation. This Actor filters them out fast.
Free plan vs paid plan
| Free Apify plan | Paid Apify plan | |
|---|---|---|
| Full result rows | First 25 addresses | Every address (up to 500 per run) |
| The rest of your list | Checked the same way, shown as counts only: good / risky / bad, invalid syntax, no mail server, disposable, role-based | Full row per address with score, status, reason, MX hosts and flags |
Final free-plan-preview row | Exact counts of what is locked and what the paid run would cost | Not needed |
Paid plans also get store discounts: BRONZE -20%, SILVER -35%, GOLD and above -48%. The free-plan limit ends the run as SUCCEEDED with a status message; it is a plan limit, not an error.
What's checked per email
| Check | Description | Output field |
|---|---|---|
| Syntax | RFC-compliant format validation | syntaxValid |
| MX / infrastructure | Domain has mail servers (MX, with A-record fallback) via public DNS | hasMx, mxRecords |
| Disposable | 120,000+ known temporary/throwaway domains | isDisposable |
| Role-based | Flags info@, support@, admin@, sales@, etc. | isRoleBased |
| Free provider | Flags Gmail, Yahoo, Outlook, Naver, etc. | isFreeProvider |
| +tag | Detects sub-addressing like user+promo@gmail.com | hasTag |
| Quality score | 0–100 score and a good / risky / bad decision | score, status |
Example output
One row per address:
{"email": "info@example.com","domain": "example.com","status": "risky","technicalStatus": "mailbox_unverified","score": 60,"reason": "role_based_address","syntaxValid": true,"hasMx": true,"mxRecords": ["mx1.example.com"],"isDisposable": false,"isRoleBased": true,"isFreeProvider": false,"hasTag": false,"scannedAt": "2026-08-21T00:00:00.000Z","disclaimer": "This tool validates email addresses using RFC syntax rules, public DNS (MX/A) checks, and known disposable-domain, role and free-provider lists. …"}
Result fields
status | Meaning |
|---|---|
good | Syntax and mail infrastructure are fine (score 70+) |
risky | Deliverable-looking but lower quality, e.g. a role address (score below 70) |
bad | Fails syntax, has no mail infrastructure, or is a disposable domain |
unknown | DNS did not answer for the domain (timeout or resolver error, after one retry), so the address could not be checked. Not billed — re-run it later |
technicalStatus | Meaning |
|---|---|
invalid | Syntax invalid, or the domain has no MX/A record |
disposable | Domain is on the disposable/throwaway list |
mailbox_unverified | Syntax and infrastructure pass; mailbox existence is not verified (see Limits) |
unknown | DNS did not answer, so infrastructure could not be checked |
reason | Meaning | Score |
|---|---|---|
ok | All checks pass | 80 |
role_based_address | Role address such as info@, support@ | 60 |
disposable_email | Disposable / throwaway domain | 20 |
no_mail_infrastructure | The domain's DNS answered: the domain does not exist (NXDOMAIN), or it has no MX and no A record | 10 |
dns-timeout | DNS did not answer (timeout, SERVFAIL or another resolver error) even after one retry; dnsError holds the code, hasMx and score are null, charged is false | — |
invalid_syntax | Not a valid email address | 0 |
Every row also carries syntaxValid, hasMx, mxRecords, isDisposable, isRoleBased, isFreeProvider, hasTag, scannedAt and disclaimer. unknown rows also carry dnsError, charged: false and chargeNote.
Input
| Field | Type | Description |
|---|---|---|
emails | array | Up to 500 addresses to validate |
verifyMx | boolean | Check MX / mail infrastructure (default true) |
skipDisposableCheck | boolean | Skip disposable detection (default false) |
{ "emails": ["alice@gmail.com", "info@example.com", "fake@mailinator.com"] }
Addresses beyond the first 500 in a run are not processed.
Pricing
Pay Per Event — email-validated, $0.002 per address row written (FREE-tier price; BRONZE $0.0016, SILVER $0.0013, GOLD and above $0.00104). No subscription.
Every address row with a verdict is charged — good, risky and bad alike, because the verdict is the answer you asked for. A domain that does not exist or has no mail records is a bad verdict and is charged. Not charged: unknown rows (DNS did not answer even after one retry, so there is no verdict), and notice rows (free-plan-preview, charge-limit-reached, billing-unavailable, no-input). An empty input ends with a no-input notice and no charge.
If your run's maximum charge is reached, the run stops before the next row and ends SUCCEEDED with a charge-limit-reached row; every row already delivered was paid for.
If Apify restarts or migrates a run, the rows it already returned are neither returned nor charged again; a row handed over just before the restart but not yet charged is charged once after it. If a call to the Apify charging API fails, the run stops before the next row (billing-unavailable) rather than risk charging a row twice.
- 100 emails = $0.20
- 500 emails (one full run) = $1.00
- 1,000 emails = $2.00
How it compares to other email validators on Apify
The table lists what each Actor states on its own Apify Store listing, read on 3 September 2026. Prices are the Free-plan figures shown there and can change; check each listing before you rely on them.
| This Actor | michael.g/email-verifier-validator | s-r/apifyosintemail | |
|---|---|---|---|
| What it checks | RFC syntax, MX / A-record infrastructure, 120,000+ disposable domains, role-based and free-provider flags, 0–100 quality score | Deliverability decision with detailed verification data (listing) | Format validation, account detection across 18+ platforms, breach history, A–F risk grade (listing) |
| Mailbox existence | Not verified — no SMTP probing, stated openly above | Per listing | Per listing |
| Input | emails array, up to 500 per run | emails array | emails array |
| Price per result | $0.002 on the Free plan, down to $0.00104 on GOLD and above | $0.10 on the Free plan, $0.001 on higher plans | $0.005 + a per-run start fee |
Pick this Actor for a fast, low-cost first pass that removes malformed, dead-domain and disposable addresses before sending. Pick an OSINT-style checker when you need account or breach context per address.
Use cases
- Pre-campaign list QA — drop invalid and disposable addresses before a send
- B2B lead qualification — flag role-based and free-provider contacts
- Signup validation — block fake/disposable addresses at registration
- CRM cleanup — keep records actionable
Limits — what this does not do
It validates format and infrastructure quality signals using RFC syntax rules, public DNS (MX/A), and curated disposable/role/free lists. It does not connect to mail servers, so it does not confirm that a specific mailbox exists. (Live SMTP mailbox probing is blocked on virtually all cloud platforms, so any actor claiming it is typically relaying a paid third-party API.) For honest, no-surprise list hygiene, this is exactly the layer you run first.
Disclaimer
For informational purposes only; not legal advice. Results are technical signals and may include false positives. Mailbox existence is not verified. The operator is not responsible for commercial decisions made from these results.
Leave a review
A short review on the Reviews tab, good or bad, helps other people find this Actor and tells us what to build next. Found a bug or need a feature? Open an issue on the Issues tab and we'll look into it.