Email Verifier: Bulk MX & SMTP Validation, Clean Lists
Pricing
from $0.60 / 1,000 emails
Email Verifier: Bulk MX & SMTP Validation, Clean Lists
Verify emails in bulk: syntax, DNS MX, SMTP mailbox check, disposable & role-based detection, plus a catch-all heuristic. Returns valid / invalid / risky / unknown per address. No API key. Works in Claude, ChatGPT & any MCP agent.
Pricing
from $0.60 / 1,000 emails
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
π§ Email Verifier & Validator: Bulk MX + SMTP Check (No API Key)
Overview
Email Verifier & Validator is clean, fast bulk email verification. Paste a list of addresses and get back a per-email verdict (valid, invalid, risky, or unknown), backed by real syntax parsing, DNS MX lookups, a non-sending SMTP mailbox check, plus disposable, role-based, and catch-all detection.
No API key, no sign-up, no third-party verification service. It is the reusable enrichment primitive for cleaning outreach lists, deduping sign-ups, and scoring leads before you send.
Reliability posture: a charge only ever happens after a verification result has actually been written to the dataset. Failed pushes and empty input are never charged.
β No login required | β No API key | β Pay only for verified emails | β MCP-ready for AI agents
Features
Non-sending SMTP check. Stops at RCPT TO and issues QUIT. No message body is ever transmitted.
Full status verdicts. valid, invalid, risky, unknown, each with a human-readable reason.
Disposable and role detection. Flag throwaway providers and generic mailboxes like info@ or sales@.
Catch-all probing. Detects domains that accept every address so you never rely on false positives.
Pure network. Only DNS and a direct SMTP socket. No proxy, no browser, no external API.
How it works
Paid verification services (ZeroBounce, NeverBounce, Hunter Verify) charge per credit and route your list through their servers. Email Verifier & Validator uses only DNS and a direct SMTP socket. No proxy, no browser, no external API. Your list never leaves the Apify run.
For each address, the actor parses syntax, looks up DNS MX records for the domain, opens a direct SMTP connection to the top MX host, and issues HELO, MAIL FROM, and RCPT TO. It then quits before any DATA stage, so nothing is delivered. Catch-all is detected by also probing a random, non-existent mailbox on the same domain.
π§Ύ Input configuration
{"emails": ["test@stripe.com", "ceo@notion.so", "info@example.com"],"checkMx": true,"checkSmtp": true,"detectDisposable": true,"detectRoleBased": true}
π€ Output format
Captured from a live run against support@apify.com:
{"email": "support@apify.com","domain": "apify.com","isValidSyntax": true,"mxFound": true,"isDisposable": false,"isRoleBased": true,"isCatchAll": false,"status": "risky","reason": "Role-based address (not a person)","checkedAt": "2026-07-15T04:15:37.745Z"}
Every record contains these fields:
| Field | Description |
|---|---|
π§ email | The address checked (lowercased, trimmed) |
π domain | Domain portion of the email |
βοΈ isValidSyntax | Passes RFC-style syntax validation |
π‘ mxFound | Domain has at least one DNS MX record |
π¬ smtpAccepts | Mail server accepted RCPT TO. Only present when the check returns a definitive true/false; omitted from the record entirely when SMTP is skipped, blocked, or inconclusive |
ποΈ isDisposable | Known disposable or throwaway mailbox provider |
π₯ isRoleBased | Generic role mailbox (info, sales, admin, support...) |
π³οΈ isCatchAll | Server appears to accept all addresses on the domain |
β
status | Overall verdict: valid / invalid / risky / unknown |
π¬ reason | Short human-readable explanation of the status |
π checkedAt | ISO timestamp of the check |
How to read status: valid means syntax ok, MX found, SMTP accepted a non-catch-all mailbox. invalid means bad syntax, no MX, or a definitive server rejection. risky means deliverable but low quality (disposable, role-based, or catch-all). unknown means MX exists but the mailbox could not be confirmed (SMTP skipped, blocked, or greylisted). Many large providers (Gmail, Outlook) deliberately land here.
πΌ Common use cases
Clean an outreach or cold-email list Verify before sending to protect sender reputation and cut bounces. Strip disposables and role-based addresses in one pass.
Real-time signup validation Reject disposable addresses at the form before they land in your CRM. Feed the API into a signup webhook for zero-friction cleaning.
CRM hygiene Score and dedupe leads. Drop role-based and invalid contacts. Refresh every quarter to catch mailboxes that went dead.
Newsletter pre-flight Strip dead mailboxes ahead of a broadcast send. Audit a purchased list to measure how much of it is actually deliverable.
π Getting started
- Paste your addresses into
emails(one per line). Bulk lists are processed in order. - Leave
checkMxon to confirm each domain can receive mail (disabling it also disables the SMTP check). - Leave
checkSmtpon for the non-sendingRCPT TOmailbox test, or turn it off for a faster MX-only pass. - Keep
detectDisposableanddetectRoleBasedon to clean outreach lists. - Click Start, then export the per-address verdicts as JSON, CSV, or Excel, or pull via API or MCP.
FAQ
Does this send any email?
No. The SMTP check stops at RCPT TO and issues QUIT. There is no DATA stage, so no message body is ever transmitted and nothing is delivered.
Why is smtpAccepts null for some addresses?
Port 25 is frequently firewalled, and providers such as Gmail and Outlook intentionally cloak mailbox existence or greylist unfamiliar connections. When the handshake is inconclusive we return null and a status of unknown rather than guessing.
What does catch-all mean?
Some domains accept mail for every possible address. We detect this by also probing a random, nonexistent mailbox; if the server accepts it, we mark isCatchAll: true and downgrade the verdict to risky, because acceptance no longer proves the real mailbox exists.
Do I need a proxy or API key? No. The actor uses only DNS and a direct SMTP socket. No proxy, no browser, no external API.
How is it priced?
Pay per event: one email-verified event per email actually delivered, at $0.001 per email ($1 per 1,000). There is no free tier.
Can I use it inside an AI agent? Yes. It is exposed as an MCP tool. See below.
Use in Claude, ChatGPT & any MCP agent
https://mcp.apify.com/?tools=themineworks/email-verifier-validator
Or call it programmatically with the Apify client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/email-verifier-validator').call({emails: ['test@stripe.com', 'ceo@notion.so', 'info@example.com'],checkMx: true,checkSmtp: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const r of items) {if (r._type === 'summary') continue;console.log(`${r.email}: ${r.status} (${r.reason})`);}
π οΈ Complete your outbound pipeline
This actor is the final hygiene step in a full outbound stack:
- Google Maps Leads Scraper: pull businesses and emails from a Google Maps search.
- Website Contact Scraper: extract emails, phones, and socials from a domain list.
- B2B Leads Finder: find named decision-makers (email, LinkedIn, phone) at target companies.
Typical flow: maps-leads finds the businesses, website-contact-finder and b2b-leads-finder add the people, email-verifier-validator confirms deliverability before you send.
Found a bug or have a feature request? Open an issue on the actor's Apify Console page or reach out through the Apify profile.