Bulk Email Validator & MX/SPF/DMARC Deliverability Verifier
Pricing
from $1.05 / 1,000 results
Bulk Email Validator & MX/SPF/DMARC Deliverability Verifier
Verify bulk email lists at scale. Validates RFC 5322 syntax, live DNS MX records via Google DoH, SPF and DMARC authentication, disposable/temporary inboxes, role accounts (info@, admin@), mail gateway fingerprinting (Google Workspace, M365, Proofpoint), and 0-100 deliverability risk scoring.
Pricing
from $1.05 / 1,000 results
Rating
0.0
(0)
Developer
George Barnes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Bulk Email Validator & MX/SPF/DMARC Deliverability Verifier ($1.50 / 1K)
Validate high-volume email lists for syntax, disposable inboxes, role accounts, live DNS MX records via Google DoH, SPF & DMARC authentication, mail gateway fingerprinting (Google Workspace, Microsoft 365, Proofpoint, etc.), and composite deliverability risk scoring (0–100).
Never send cold outbound campaigns or automated emails to dead inboxes, temporary spamtraps, or unauthenticated domains. Protect your sender reputation, maximize inbox placement, and avoid blacklists—at a fraction of the cost of legacy SaaS verification tools.
Why Choose This Validator? (Comparison)
| Feature | This Actor | Legacy Verification SaaS (NeverBounce / ZeroBounce) | Basic Regex / Scrapers |
|---|---|---|---|
| Pricing per 1,000 Emails | $1.50 / 1K ($0.0015/email) | $8.00 – $15.00 / 1K ($0.008–$0.015) | Free or cheap but incomplete |
| Required API Keys | None (Zero API keys needed) | Mandatory API key & credit lock-in | None |
| Required Proxies | None (Zero residential proxy cost) | None | None |
| Live DNS MX Resolution | ✅ Google & Cloudflare DoH (fast, unblocked) | ✅ Proprietary | ❌ Often missing or blocked |
| SPF & DMARC Security Audit | ✅ Full TXT parse & policy extraction (p=reject) | ⚠️ Partial / Enterprise add-on | ❌ No |
| Mail Gateway Fingerprinting | ✅ Google Workspace, M365, Proofpoint, Mimecast, etc. | ⚠️ Limited | ❌ No |
| Disposable Inbox Scrubbing | ✅ 300+ known temporary domains | ✅ Yes | ⚠️ Outdated static lists |
| Departmental Role Detection | ✅ Flags info@, support@, admin@, etc. | ✅ Yes | ⚠️ Incomplete rules |
| Deliverability Score (0–100) | ✅ Transparent composite scoring | ⚠️ Black-box score | ❌ No |
| Clay.com, n8n, Make & Python Ready | ✅ Native Apify REST & SDK integration | ⚠️ Custom API wrappers | ❌ Manual scripts |
Transparent Pricing ($1.50 per 1,000 Emails)
Pay only for the emails you actually validate ($0.0015 per email via Apify Pay-Per-Event), with no recurring monthly subscriptions or expiring credits:
| Workflow | Emails Validated | Total Cost |
|---|---|---|
| Quick Test Run (verify list quality) | 25 emails | $0.0375 (~4 cents) |
| Daily Outbound Campaign Scrub | 500 emails/day | $0.75 / day (~$22/month) |
| Bulk Lead List Verification | 1,000 emails | $1.50 |
| High-Volume Enrichment | 10,000 emails | $15.00 |
| Enterprise Database Cleanse | 100,000 emails | $150.00 |
High-Intent B2B Playbooks (Copy-Paste Inputs)
1. Cold Email Outbound Campaign Scrubbing (Zero-Bounce Guarantee)
Filter out invalid syntax, disposable spamtraps, and domains with missing MX records before uploading lead lists to Instantly, Smartlead, or Lemlist:
{"emails": ["alex.turner@stripe.com","sarah.connor@acme-industrial.com","test_lead_8899@mailinator.com","support@shopify.com","invalid-user-format"],"checkMx": true,"checkSpfDmarc": true,"checkDisposable": true,"checkRoleAccount": true,"dohProvider": "google","maxItems": 1000}
2. High-Deliverability Security & Gateway Audit (Identify Google & M365 Inboxes)
Fingerprint destination mail servers to tailor email delivery timing and warm-up settings based on whether leads use Google Workspace, Microsoft 365, or strict enterprise gateways like Proofpoint / Mimecast:
{"emails": ["founder@apify.com","security@github.com","procurement@lockheedmartin.com","cfo@walmart.com"],"checkMx": true,"checkSpfDmarc": true,"checkDisposable": true,"checkRoleAccount": false,"dohProvider": "google"}
3. Rapid Disposable & Role-Account Pre-Filter (Low-Latency Pass)
Validate user registration inputs or form submissions instantly without waiting on full SPF/DMARC TXT resolution:
{"emails": ["user1@temp-mail.org","sales@targetcompany.com","real_customer@gmail.com"],"checkMx": true,"checkSpfDmarc": false,"checkDisposable": true,"checkRoleAccount": true}
Sample Output Record
Every validated email produces a comprehensive JSON record containing all overview transformation fields:
{"email": "support@apify.com","domain": "apify.com","user": "support","is_syntax_valid": true,"is_disposable": false,"is_role_account": true,"has_mx_records": true,"mx_hosts": ["aspmx.l.google.com","alt1.aspmx.l.google.com","alt2.aspmx.l.google.com","aspmx2.googlemail.com","aspmx3.googlemail.com"],"primary_mx": "aspmx.l.google.com","has_spf": true,"spf_record": "v=spf1 a mx include:_spf.google.com include:mailgun.org include:amazonses.com include:19497222.spf05.hubspotemail.net -all","has_dmarc": true,"dmarc_record": "v=DMARC1; p=reject; sp=reject; pct=100; rua=mailto:dmarc-reports@apify.com; ri=604800","dmarc_policy": "reject","provider": "Google Workspace","deliverability_score": 85,"risk_score": 15,"risk_level": "LOW","deliverability_status": "DELIVERABLE","risk_reasons": ["ROLE_ACCOUNT"],"validated_at": "2026-11-04T00:20:18Z"}
Output Fields Explanation
| Field Name | Type | Description |
|---|---|---|
email | string | Normalized input email address. |
domain | string | Extracted domain hostname. |
user | string | Local mailbox part (before @). |
is_syntax_valid | boolean | True if string conforms to RFC 5322 specification. |
is_disposable | boolean | True if domain matches known temporary/disposable email services. |
is_role_account | boolean | True if mailbox is a shared or departmental address (admin@, info@, etc.). |
has_mx_records | boolean | True if domain has live mail exchange (MX) DNS records. |
mx_hosts | array | List of MX hostnames ordered by server priority. |
primary_mx | string | Lowest priority number MX hostname. |
has_spf | boolean | True if a valid SPF TXT record was resolved. |
spf_record | string | Raw SPF DNS TXT record. |
has_dmarc | boolean | True if a valid _dmarc.<domain> TXT record was resolved. |
dmarc_record | string | Raw DMARC DNS TXT record. |
dmarc_policy | string | Extracted policy: reject, quarantine, none, or missing. |
provider | string | Fingerprinted mail provider (Google Workspace, Microsoft 365, Proofpoint, etc.). |
deliverability_score | number | Composite deliverability score (0–100), where 100 represents optimal deliverability. |
risk_score | number | Inverse bounce/reputation risk score (0–100), where 0 is safest. |
risk_level | string | LOW, MEDIUM, HIGH, or CRITICAL. |
deliverability_status | string | DELIVERABLE, RISKY, or UNDELIVERABLE. |
risk_reasons | array | Specific risk triggers (DISPOSABLE_DOMAIN, NO_MX_RECORDS, MISSING_SPF, etc.). |
validated_at | string | ISO 8601 UTC timestamp of validation run. |
Integration Snippets
Python (Apify Client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"emails": ["support@apify.com","contact@google.com","test@mailinator.com"],"checkMx": True,"checkSpfDmarc": True,"checkDisposable": True,"checkRoleAccount": True,"dohProvider": "google"}run = client.actor("your-username/bulk-email-mx-smtp-validator").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['email']} -> {item['deliverability_status']} ({item['deliverability_score']}/100) [{item['provider']}]")
Direct REST API (Synchronous Run for Clay / n8n / Make)
curl -X POST "https://api.apify.com/v2/acts/your-username~bulk-email-mx-smtp-validator/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"emails": ["sales@openai.com", "billing@anthropic.com"],"checkMx": true,"checkSpfDmarc": true}'
Standalone CLI Execution (No Apify Token Required)
# Clone repositorycd bulk-email-mx-smtp-validator# Run standalone verificationpython3 src/main.py# Results saved to storage/datasets/default/results.jsoncat storage/datasets/default/results.json