Email Verifier: Bulk MX & SMTP Validation, Clean Lists avatar

Email Verifier: Bulk MX & SMTP Validation, Clean Lists

Pricing

from $0.60 / 1,000 emails

Go to Apify Store
Email Verifier: Bulk MX & SMTP Validation, Clean Lists

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

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

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:

FieldDescription
πŸ“§ emailThe address checked (lowercased, trimmed)
🌐 domainDomain portion of the email
✏️ isValidSyntaxPasses RFC-style syntax validation
πŸ“‘ mxFoundDomain has at least one DNS MX record
πŸ“¬ smtpAcceptsMail 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
πŸ—‘οΈ isDisposableKnown disposable or throwaway mailbox provider
πŸ‘₯ isRoleBasedGeneric role mailbox (info, sales, admin, support...)
πŸ•³οΈ isCatchAllServer appears to accept all addresses on the domain
βœ… statusOverall verdict: valid / invalid / risky / unknown
πŸ’¬ reasonShort human-readable explanation of the status
πŸ•’ checkedAtISO 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

  1. Paste your addresses into emails (one per line). Bulk lists are processed in order.
  2. Leave checkMx on to confirm each domain can receive mail (disabling it also disables the SMTP check).
  3. Leave checkSmtp on for the non-sending RCPT TO mailbox test, or turn it off for a faster MX-only pass.
  4. Keep detectDisposable and detectRoleBased on to clean outreach lists.
  5. 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:

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.