Email Address Validator — Bulk MX, Disposable, Role, Score avatar

Email Address Validator — Bulk MX, Disposable, Role, Score

Pricing

from $0.90 / 1,000 email validateds

Go to Apify Store
Email Address Validator — Bulk MX, Disposable, Role, Score

Email Address Validator — Bulk MX, Disposable, Role, Score

Fast, cheap email list validator. RFC 5322 syntax, DNS MX lookup, disposable detection (3000+ domains), role & free-provider tagging, did-you-mean typo suggestions, 0–100 deliverability score. No external API key. ~$0.90 per 1,000 emails. MCP-ready.

Pricing

from $0.90 / 1,000 email validateds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

Email Address Validator — Bulk MX, Disposable, Role & Score

Fast, cheap email list validator. RFC 5322 syntax check, DNS MX lookup, disposable detection (3000+ domains), role/free-provider tagging, did-you-mean typo suggestions, and a 0–100 deliverability score per address. No external API key required. No third-party paid service in the loop.

At ~$0.90 per 1,000 emails — roughly $1/1K — this is among the cheapest deep-validation actors on Apify, and the only one that does not pass through paid third-party SMTP-verification API costs.

What you get per email

FieldWhat it tells you
statusvalid / invalid / risky / unknown
score0–100 deliverability score
primaryReasonSingle most important reason (e.g., mx_found, mx_not_found, disposable_domain)
isValidSyntaxPasses RFC 5322
hasMxRecordDomain has live MX records
isFreeProvidergmail.com / yahoo.com / outlook.com / icloud.com / 80+
isRoleBasedinfo@, sales@, admin@, postmaster@, …
isDisposablemailinator, 10minutemail, temp-mail, … (3000+ domains, kept current)
suggestedEmailjane@gmial.comjane@gmail.com
mxRecords[]Resolved exchanges with priorities
domain, localPart, normalizedEmailParsed components
validatedAtISO 8601 timestamp

What this catches without SMTP

The four classes of bad emails that wreck deliverability — caught with no SMTP probe:

  1. Bad syntaxnot-an-email, joe@, @gmail.com, double dots, length violations.
  2. Dead / non-existent domainsjane@thisdomaindoesnotexist.io (no MX).
  3. Typos on big providersgmial.com, yaho.com, hotmaill.com (suggested fix returned).
  4. Disposable / throwaway — mailinator, 10minutemail, guerrillamail (3000+ domains).

Real-world bounce rates: cleaning a list with these four checks alone typically removes 20–50% of bounces from purchased / scraped lists. SMTP probes catch maybe 5–15% on top — but only when port 25 is reachable, which it isn't from cloud datacenters.

When to use

  • Before cold outreach — drop dead domains, typos, and disposables before they hurt sender reputation
  • Signup form validation — block disposable accounts, suggest typos to real users
  • CRM cleanup — score legacy lists for re-engagement vs suppression
  • Lead-gen workflows — pair with the actors below to validate scraped emails
  • AI agents — Claude / GPT calls this as a tool before sending email

Pricing

EventPrice
Actor start$0.00005
Email validated$0.0009 (≈ $0.90 per 1,000)

Among the cheapest validation actors on Apify, with no external API costs to inflate the rate.

Input

{
"emails": ["jane@example.com", "info@acme.io", "fake@thisdomaindoesnotexist.io"],
"checkSmtp": false,
"checkCatchAll": false,
"concurrency": 10,
"timeoutMs": 8000
}
FieldTypeDefaultDescription
emailsstring[]— (required)One or many addresses to validate
checkSmtpbooleanfalseLive SMTP probe. Usually returns unknown from cloud datacenters (AWS port 25 block). Leave off unless self-hosting.
checkCatchAllbooleanfalseCatch-all detection. Requires checkSmtp=true.
concurrencyint (1–50)10Parallel validations
timeoutMsint (1000–30000)8000Per-SMTP-connection timeout

Sample output

{
"email": "jane@gmial.com",
"normalizedEmail": "jane@gmial.com",
"status": "invalid",
"score": 5,
"primaryReason": "mx_not_found",
"reasons": ["syntax_valid", "typo_suggestion", "mx_not_found"],
"isValidSyntax": true,
"hasMxRecord": false,
"smtpCheck": "skipped",
"isFreeProvider": false,
"isRoleBased": false,
"isDisposable": false,
"suggestedEmail": "jane@gmail.com",
"domain": "gmial.com",
"localPart": "jane",
"validatedAt": "2026-05-03T20:00:00.000Z"
}

Scoring rubric

ScoreBucketAction
70+unknown (MX present, no red flags) → effectively safeSend
55–70risky — role address, free providerReview / segment
25risky — typo suggested but invalid as-isReplace with suggestedEmail
15risky — disposableSuppress
0–10invalid — bad syntax or no MXSuppress

Use with other Apify actors

This validator is the last mile for any email-producing scraper. Common pairings:

Source actorWhat it producesWhy validate after
linkedin-profile-email-scraperLinkedIn profiles + work emailsCatch typos and dead domains
b2b-lead-finder-enrichmentGoogle Maps + emailsDrop dead-domain emails before outreach
google-maps-leads-scraperLocal business emailsHeavy on info@/contact@ — flag the role addresses
bulk-website-contact-extractorSite-scraped contactsFilter disposable + typo'd domains
contact-details-scraperEmails, phones, socialsFinal hygiene step before CRM ingestion
universal-lead-finderAny niche+city leadsScore before pushing to outreach tools

How it works

Input email
1. RFC 5322 syntax + length checks → invalid? STOP
2. Parse local + domain
3. Heuristics in parallel:
- disposable-email-domains (3000+)
- role-local list
- free-provider list (80+ domains)
- Levenshtein typo suggestions
4. DNS MX record lookup → no MX? STOP (invalid)
5. SMTP probe (opt-in only)
6. Score 0100 + status bucket + reason codes
Dataset

Frequently asked

Why is checkSmtp off by default? Apify runs on AWS, which blocks outbound port 25 by default — same as every major cloud (GCP, Azure, Hetzner cloud). SMTP probes from Apify almost always return unknown, so we don't waste your time and run cost. The non-SMTP signals already catch the majority of bad addresses.

Will turning checkSmtp on do anything? On Apify infrastructure: usually no. The connections will refuse and you'll see smtpCheck: "unknown". If you fork this actor and run it on your own VPS with port 25 unblocked, the SMTP code path works fully (HELO → MAIL FROM → RCPT TO → catch-all probe).

What domains are on the disposable list? The maintained open-source disposable-email-domains registry — ~3000 domains including mailinator, 10minutemail, temp-mail, guerrillamail, sharklasers, throwaway, etc. Updated with package upgrades.

How accurate is this without SMTP? For typical purchased / scraped B2B lists, removing addresses with score < 50 tends to drop the bounce rate to under 5% from a typical 20–40%. It will not catch "valid syntax + valid MX + non-existent mailbox" — that's the SMTP class only.

Can I use this from Make / Zapier / n8n / Pipedream? Yes — call the actor via Apify's REST API or use the Apify integrations directly.

MCP support? Yes. The actor exposes a clean tool description for Claude / GPT / Cursor agents via Apify MCP.

API usage

Apify REST API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~email-address-validator/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "emails": ["jane@example.com"] }'

JavaScript (Apify Client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('khadinakbar/email-address-validator').call({
emails: ['jane@example.com', 'info@acme.io'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('khadinakbar/email-address-validator').call(run_input={
'emails': ['jane@example.com', 'info@acme.io'],
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

Limitations & honesty

  • No live SMTP from Apify. As noted, AWS blocks outbound port 25. The actor codes for it but you will get unknown SMTP results from Apify. Most users do not need SMTP — the four offline checks (syntax, MX, disposable, typo) already catch the bulk of bad addresses.
  • Catch-all detection only works when SMTP works. Same constraint.
  • No paid API in the loop. Cheaper, faster, no key juggling, no third-party rate limit. Trade-off: you don't get SMTP confirmations the way ZeroBounce / NeverBounce / MillionVerifier do via their private channels.
  • Datacenter IP DNS. DNS resolution from Apify is fast and reliable. MX results are authoritative.

This actor performs DNS lookups and (optionally) SMTP RCPT TO probes — the same protocol-level checks every email server runs to deliver mail. It does not send mail, harvest addresses, or scrape any site. Use it for legitimate list hygiene, signup validation, and CRM cleanup. You are responsible for compliance with your local data-protection laws (GDPR, CAN-SPAM, CASL, etc.) when using validated addresses for outreach.

Author

Built and maintained by Khadin Akbar — 48+ production actors for lead gen, social media, ecommerce, and SEO.


🤖 Designed for AI agents (Claude, GPT, Cursor, n8n) and humans alike.