Email Address Validator - Bulk MX, Disposable & Role Detection
Pricing
from $2.99 / 1,000 results
Email Address Validator - Bulk MX, Disposable & Role Detection
📧 Email Address Validator - Bulk MX, Disposable & Role Detection checks deliverability fast! ✅ Verify syntax, MX records, spot disposable & role-based emails. Perfect for cleaning lists, reducing bounce, and boosting outreach conversions. 🚀
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
SimpleAPI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
📧 Email Address Validator — Bulk MX, Disposable & Role Detection
A blazing-fast, production-grade email validation actor that scores any list of email addresses and tells you which ones are worth keeping. Built for marketers, sales teams, fraud-prevention engineers, and anyone who needs to clean a contact list before it costs real money.
⚡ Why choose this Actor?
- 🚀 Built for bulk — async DNS lookups, in-memory de-duplication and caching, configurable concurrency up to 50.
- 🧠 4 independent checks — syntax, MX records, disposable domains, role-based addresses — each weighted into a single risk score.
- 🚫 5,400+ disposable domains tracked out of the box (Mailinator, 10MinuteMail, Guerrilla Mail and friends).
- 👥 Role-based detection with fuzzy matching — catches
info+sales@,support.team@,noreply2@, etc. - 🌍 Smart proxy fallback — starts direct, escalates to datacenter, then sticks with residential if a network keeps blocking.
- 💾 Live saving — every result is pushed to the dataset as soon as it's validated. A crash never wipes finished work.
- 📊 Six dataset views — Overview, Syntax, Mail Server, Disposable, Role-Based, and Full Details for quick filtering.
✨ Key features
- ✅ Bulk input (paste hundreds of addresses)
- ✅ Live, friendly progress logs with per-email decisions
- ✅ Output filtering (
accept,review,reject,all) - ✅ Configurable timeout, concurrency, and fail-fast behavior
- ✅ Per-section dataset views for easy slicing in the Apify Console
- ✅ Summary blob saved to the key-value store (
OUTPUT) - ✅ Works with the standard Apify proxy or zero-proxy direct DNS
📥 Input
{"emails": ["raisulislam998@gmail.com","info@example.com","user@mailinator.com"],"checkMX": true,"checkDisposable": true,"checkRoleBased": true,"failFast": true,"timeout": 5000,"concurrency": 25,"outputFilter": "all","proxyConfiguration": { "useApifyProxy": false }}
| Field | Type | Default | What it does |
|---|---|---|---|
emails | array | — | Email addresses to validate. Required. |
checkMX | boolean | true | Verify the domain has a working mail server. |
checkDisposable | boolean | true | Flag throw-away email providers. |
checkRoleBased | boolean | true | Flag generic mailboxes (info@, support@, …). |
failFast | boolean | true | Skip MX lookup when earlier checks already fail. |
timeout | integer | 5000 | DNS lookup timeout in milliseconds. |
concurrency | integer | 25 | Number of parallel validations (1–50). |
outputFilter | string | all | Restrict dataset to accept / review / reject. |
proxyConfiguration | object | direct | Optional Apify proxy config used only when direct DNS is blocked. |
📤 Output (dataset row)
{"email": "raisulislam998@gmail.com","valid": true,"score": 1.0,"risk": "LOW","recommendation": "ACCEPT","processingTimeMs": 76.87,"domain": "gmail.com","localPart": "raisulislam998","normalizedEmail": "raisulislam998@gmail.com","syntaxValid": true,"syntaxMessage": "Valid email syntax","mxValid": true,"mxMessage": "5 MX records found","mxRecords": ["alt1.gmail-smtp-in.l.google.com","alt2.gmail-smtp-in.l.google.com","alt3.gmail-smtp-in.l.google.com","alt4.gmail-smtp-in.l.google.com","gmail-smtp-in.l.google.com"],"disposableValid": true,"disposableMessage": "Not a disposable email","roleBasedValid": true,"roleBasedMessage": "Not a role-based email","validation": {"syntax": true,"domain": true,"mailServer": true,"disposable": true,"roleBased": true},"fullDetails": {"syntax": { "valid": true, "message": "Valid email syntax", "normalized": "raisulislam998@gmail.com", "local": "raisulislam998", "domain": "gmail.com" },"domain": { "valid": true, "message": "Domain is not reserved" },"mxRecords": { "valid": true, "message": "5 MX records found", "records": ["…"] },"disposable": { "valid": true, "message": "Not a disposable email" },"roleBased": { "valid": true, "message": "Not a role-based email" }}}
The same fields appear in the dataset views (Overview, Syntax, Mail Server, Disposable, Role-Based, Full Details), so you can slice the results without writing transformations.
Risk scoring
| Score | Risk | Recommendation |
|---|---|---|
| ≥ 0.80 | 🟢 LOW | ✅ ACCEPT |
| 0.50 – 0.79 | 🟡 MEDIUM | ⚠️ REVIEW |
| < 0.50 | 🔴 HIGH | ❌ REJECT |
🚀 How to use the Actor
- Open Apify Console → Actors.
- Find Email Address Validator and click it.
- Paste your addresses into the 📧 Email Addresses field.
- Tweak the toggles and concurrency to match your batch size.
- Click ▶️ Start and watch the progress log paint your results in real time.
- Open the Storage → Dataset tab — pick a view (Overview, Mail Server, …) and export as JSON / CSV / Excel.
- The full summary blob (counts, timing, proxy mix) is stored as
OUTPUTin the key-value store.
💡 Best use cases
- Cleaning newsletter / CRM / outbound lists before sending campaigns
- Real-time signup validation (server side, behind your own API)
- Lead quality scoring in sales pipelines
- Fraud / abuse triage — auto-rejecting disposable-only signups
- Pre-flight checks before any costly downstream enrichment
❓ Frequently asked questions
Does this verify the inbox actually exists? No — verifying delivery requires sending real SMTP traffic, which is rate-limited and detectable. This actor checks everything you can confirm without contacting the destination, which catches the vast majority of bad addresses.
Why is info@example.com flagged?
info@ is a role-based mailbox and example.com is a reserved test domain — that combination is rejected by design.
What about Gmail aliases like john+sale@gmail.com?
Syntax is valid, the local part doesn't match a role prefix, and Gmail has working MX records — so the address scores fine.
Can I run this on millions of addresses?
Yes. The default 25-way concurrency comfortably hits a few thousand validations per minute. Increase memory and concurrency for higher throughput; the actor caches DNS results per domain so duplicates are essentially free.
What happens if my network gets blocked? The actor escalates: direct → datacenter proxy → residential proxy (sticky, 3 retries). Each escalation is logged so you can see exactly when the switch happened.
🆘 Support and feedback
Found a bug or want a new feature? Open a run with the failing input and share the run ID. Issue reports and feature requests are welcome via the Apify Console messaging.
⚠️ Legal & ethical notes
- Validate only addresses you have a lawful basis to process (consent, contract, legitimate interest).
- Respect applicable laws (GDPR, CAN-SPAM, CASL, …).
- This actor does not contact the mail server during validation — it relies purely on DNS and pattern checks.