Bulk Email Syntax & MX Validator avatar

Bulk Email Syntax & MX Validator

Pricing

$3.00 / 1,000 email data-quality results

Go to Apify Store
Bulk Email Syntax & MX Validator

Bulk Email Syntax & MX Validator

Audit email syntax, DNS MX, and disposable checks. No API key / no login. Open Input → leave defaults → Start (1 email ≈ USD 0.003/row): https://console.apify.com/actors/KaUXeSdCTK18EJBo1/input

Pricing

$3.00 / 1,000 email data-quality results

Rating

0.0

(0)

Developer

naoki anzai

naoki anzai

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

0

Monthly active users

5 days ago

Last modified

Share

📩 Email Deliverability Checker

What you get: one row per email you submit with an RFC syntax check, the domain's live MX records, a disposable-domain flag and a 0–100 deliverability score — no message is ever sent.

Sample output from a real run (2026-10-18, default input, 3 rows):

emailsyntaxOkmxValidisDisposablescoreisValid
test@gmail.comtruetruefalse100true
user@mailinator.comtruetruetrue80false
bad@@invalidfalsenullnull0false

That run was 3 result rows × $0.003 = $0.009 (there is no separate start fee).

Run on Apify

Paid first run ≈ USD 0.003/row (1 email). Keep reports, exports, and movement options off for the first run. Open Console Input (deep link above) and run this JSON.

{
"emails": [
"test@gmail.com"
],
"checkMx": true,
"checkDisposable": true,
"dryRun": false
}

Paste email and Start.

Audit user-supplied email data by checking syntax, DNS MX records, and known disposable-domain patterns. The actor never sends a message and does not discover, enrich, or acquire addresses.

The validation process goes beyond basic regex checks. It evaluates strict RFC syntax compliance, executes live DNS queries to confirm active MX records, and detects temporary or disposable email providers commonly used for spam or trial abuse. The final output provides a clean 0–100 deliverability score for each submitted email, alongside specific flags for syntax errors and domain health issues.

Data engineers can use the results for consented database maintenance, migration validation, and internal data-quality checks. A positive result is a technical signal only and does not prove mailbox ownership, consent, or permission to send messages.

Lead Enrichment Pack — 3-step workflow

StepActorJob
1CSV Cleaner & Deduplication ToolPrepare a consented, user-supplied data table
2Email Deliverability Checker ← you are hereValidate emails: syntax, MX records, disposable detection, deliverability score
3Phone Number ValidatorNormalize and validate phone numbers with type detection (mobile / landline / VoIP)

Store Quickstart

Pick the template that fits your workflow:

  • Quickstart (5 Demo Emails) — run with a mixed set of valid, invalid, and disposable addresses to see the score in action
  • Database migration audit — validate syntax and domain signals in an authorized export before import
  • Sales Outreach Pre-Flight — validate a prospect list before launching a cold email sequence
  • CRM Hygiene Audit — bulk-validate up to 1,000 addresses from an existing CRM export

Use with Apify MCP

Exact actor: taroyamada/email-deliverability-checker

Sample input JSON:

{
"emails": [
"test@gmail.com"
],
"checkMx": true,
"checkDisposable": true
}

Key Features

  • 📧 Syntax validation — RFC-compliant email format check
  • 🌐 DNS MX lookup — Verify domain has working mail exchangers
  • 🗑️ Disposable detection — Block tempmail, guerrillamail, mailinator, 10minutemail
  • 🎯 Deliverability score — 0-100 composite score per email
  • ⚡ Bulk processing — Up to 1,000 emails per run
  • 🔒 No sending required — Privacy-safe, nothing hits the inbox

Use Cases

WhoWhy
Email marketersClean lists before bulk sends to protect sender reputation
Data operationsAudit consented records before a database migration
Growth teamsVerify signups to reduce fake/disposable accounts
SaaS platformsPre-validate emails at signup to block junk
CRM managersPeriodic list hygiene to remove invalid emails

Input

FieldTypeDefaultDescription
emailsstring[](required)Emails to validate (max 1000)
checkMxbooleantrueDNS MX lookup
checkDisposablebooleantrueDisposable domain check

Input Example

{
"emails": ["user@example.com", "fake@10minutemail.com"],
"checkMx": true,
"checkDisposable": true
}

Input Examples

Example: Single email check

{
"emails": [
"test@gmail.com"
]
}

Example: Bulk pre-send hygiene

{
"emails": [
"test@gmail.com",
"user@mailinator.com",
"bad@@invalid"
],
"checkMx": true,
"checkDisposable": true
}

Example: Syntax and disposable check only (no DNS lookup)

{
"emails": [
"test@gmail.com",
"user@mailinator.com"
],
"checkMx": false
}

Output

One dataset row per submitted email.

FieldTypeDescription
emailstringThe address you submitted
isValidbooleantrue when syntax is valid, the domain has MX records and it is not a disposable domain
syntaxOkbooleanRFC-style syntax check
mxValidboolean or nullWhether the domain has MX records (null when syntax already failed)
mxRecordsstring[]MX records as "priority host" strings
isDisposableboolean or nullKnown disposable / temporary mail domain
domainstring or nullDomain part of the address
scoreinteger0–100 deliverability score
checkedAttimestampWhen the check ran

Output Example

Row from the real run above:

{
"email": "test@gmail.com",
"isValid": true,
"syntaxOk": true,
"mxValid": true,
"mxRecords": [
"10 alt1.gmail-smtp-in.l.google.com",
"20 alt2.gmail-smtp-in.l.google.com",
"30 alt3.gmail-smtp-in.l.google.com",
"40 alt4.gmail-smtp-in.l.google.com",
"5 gmail-smtp-in.l.google.com"
],
"isDisposable": false,
"domain": "gmail.com",
"score": 100,
"checkedAt": "2026-10-18T11:43:00.055Z"
}

API Usage

Run this actor programmatically using the Apify API. Replace YOUR_API_TOKEN with your token from Apify Console → Settings → Integrations.

cURL

curl -X POST "https://api.apify.com/v2/acts/taroyamada~email-deliverability-checker/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "emails": ["user@example.com", "fake@10minutemail.com"], "checkMx": true, "checkDisposable": true }'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("taroyamada/email-deliverability-checker").call(run_input={
"emails": ["user@example.com", "fake@10minutemail.com"],
"checkMx": true,
"checkDisposable": true
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('taroyamada/email-deliverability-checker').call({
"emails": ["user@example.com", "fake@10minutemail.com"],
"checkMx": true,
"checkDisposable": true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Tips & Limitations

  • Run it on a consented list before an import or a send to drop syntax errors, dead domains and disposable addresses.
  • isValid=false with isDisposable=true usually means a throwaway sign-up.
  • The actor does not open an SMTP session, so it cannot tell whether a specific mailbox exists.
  • Combine with Phone Validator for full lead-data quality scoring.

FAQ

Does this catch typos like gmial.com?

It checks MX validity — gmial.com has no MX records, so it's flagged invalid. Use the score field for confidence.

What score should I trust?

90+ is safe for sending. 70-90 is risky. Below 70 should be discarded or double opt-in'd.

Does it check if the inbox exists?

No — that requires SMTP handshake which can mark your sender as abusive. Not safe for bulk checking.

How often is the disposable domain list updated?

The embedded list covers 3,000+ known disposable providers. Updated with releases.

Does this verify individual email addresses?

It checks each address's syntax, its domain's MX records and whether the domain is disposable. It does not contact the mail server, so it cannot confirm that the mailbox itself exists.

This actor is Step 2 of the Lead Enrichment Pack:

StepActorWhat it does
⬅ Step 1CSV Cleaner & Deduplication ToolNormalize an authorized CSV export before technical validation
➡ Step 3📞 Phone Number ValidatorE.164 normalization, type detection (mobile/landline/VoIP), 250+ countries

Related data-quality tools:

Cost

Pay Per Event (current Store prices):

  • Result row: $0.003 per row written to the default dataset (no separate start fee)

Example: 1,000 rows = 1,000 × $0.003 = $3.00

No subscription required — you only pay for what you use.

⭐ Was this helpful?

If this actor saved you time, please leave a ★ rating on Apify Store. It takes 10 seconds, helps other developers discover it, and keeps updates free.

Bug report or feature request? Open an issue on the Issues tab of this actor.