Bulk Email Validator — Syntax, MX, Disposable Check & Score avatar

Bulk Email Validator — Syntax, MX, Disposable Check & Score

Pricing

from $1.04 / 1,000 email validateds

Go to Apify Store
Bulk Email Validator — Syntax, MX, Disposable Check & Score

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

daehwan kim

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

10 days ago

Last modified

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 planPaid Apify plan
Full result rowsFirst 25 addressesEvery address (up to 500 per run)
The rest of your listChecked the same way, shown as counts only: good / risky / bad, invalid syntax, no mail server, disposable, role-basedFull row per address with score, status, reason, MX hosts and flags
Final free-plan-preview rowExact counts of what is locked and what the paid run would costNot 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

CheckDescriptionOutput field
SyntaxRFC-compliant format validationsyntaxValid
MX / infrastructureDomain has mail servers (MX, with A-record fallback) via public DNShasMx, mxRecords
Disposable120,000+ known temporary/throwaway domainsisDisposable
Role-basedFlags info@, support@, admin@, sales@, etc.isRoleBased
Free providerFlags Gmail, Yahoo, Outlook, Naver, etc.isFreeProvider
+tagDetects sub-addressing like user+promo@gmail.comhasTag
Quality score0–100 score and a good / risky / bad decisionscore, 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

statusMeaning
goodSyntax and mail infrastructure are fine (score 70+)
riskyDeliverable-looking but lower quality, e.g. a role address (score below 70)
badFails syntax, has no mail infrastructure, or is a disposable domain
unknownDNS 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
technicalStatusMeaning
invalidSyntax invalid, or the domain has no MX/A record
disposableDomain is on the disposable/throwaway list
mailbox_unverifiedSyntax and infrastructure pass; mailbox existence is not verified (see Limits)
unknownDNS did not answer, so infrastructure could not be checked
reasonMeaningScore
okAll checks pass80
role_based_addressRole address such as info@, support@60
disposable_emailDisposable / throwaway domain20
no_mail_infrastructureThe domain's DNS answered: the domain does not exist (NXDOMAIN), or it has no MX and no A record10
dns-timeoutDNS 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_syntaxNot a valid email address0

Every row also carries syntaxValid, hasMx, mxRecords, isDisposable, isRoleBased, isFreeProvider, hasTag, scannedAt and disclaimer. unknown rows also carry dnsError, charged: false and chargeNote.

Input

FieldTypeDescription
emailsarrayUp to 500 addresses to validate
verifyMxbooleanCheck MX / mail infrastructure (default true)
skipDisposableCheckbooleanSkip 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 Actormichael.g/email-verifier-validators-r/apifyosintemail
What it checksRFC syntax, MX / A-record infrastructure, 120,000+ disposable domains, role-based and free-provider flags, 0–100 quality scoreDeliverability decision with detailed verification data (listing)Format validation, account detection across 18+ platforms, breach history, A–F risk grade (listing)
Mailbox existenceNot verified — no SMTP probing, stated openly abovePer listingPer listing
Inputemails array, up to 500 per runemails arrayemails 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.