Email Validation & Disposable Domain Detector avatar

Email Validation & Disposable Domain Detector

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Email Validation & Disposable Domain Detector

Email Validation & Disposable Domain Detector

Stop fake users and trial fraud! This ultra-fast API validates syntax, performs live MX record lookups, and flags disposable domains (like TempMail). Boost deliverability and protect signup forms from spam bots instantly. Try it free for blazing-fast verification!

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Riad Hossain

Riad Hossain

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Fast, production-grade email validation with real-time MX record lookups, RFC 5322 syntax checks, and disposable / temporary email domain detection.

Version Python Latency


๐ŸŽฏ What it does

This Actor validates email addresses using three layers of checks, returning a structured JSON result for each email:

LayerWhat it checksMethod
SyntaxRFC 5322 complianceRegex + length rules
DNS / MXDomain can receive emailAsync DNS lookup against Cloudflare 1.1.1.1, Google 8.8.8.8, Quad9 9.9.9.9
DisposableDomain is a temporary / throwaway providerCurated 636-domain blacklist + heuristic detection
TypoDomain is a misspelling of a major providerLevenshtein distance โ‰ค 2 against 20+ top providers

โœจ Features

  • โœ… RFC 5322 syntax validation โ€” catches malformed emails (not-an-email, user@@example.com, etc.)
  • โœ… Real MX record lookup โ€” async DNS, returns primary MX host, IP address, and priority
  • โœ… 636-domain curated disposable blacklist โ€” Mailinator, TempMail, GuerrillaMail, 10MinuteMail, YOPmail, and 631 more
  • โœ… Heuristic detection โ€” catches disposable domains not in the blacklist via:
    • High-abuse TLDs (.tk, .gq, .cf, .ml)
    • Keyword matching (temp, trash, throwaway, disposable, 10minutemail, ...)
    • MX-pattern recognition (custom domains pointing at disposable infrastructure)
    • High-entropy random subdomain detection (Shannon entropy)
  • โœ… Typo detection โ€” catches user@hootmail.com and suggests user@hotmail.com
  • โœ… Cache โ€” results cached for 24h (Redis primary, in-memory fallback)
  • โœ… Async & parallel โ€” validates 1,000 emails per run with bounded concurrency
  • โœ… Low latency โ€” p95 < 350ms (cache miss), < 5ms (cache hit)

๐Ÿ“ฅ Input

The Actor accepts a JSON object with the following fields:

FieldTypeRequiredDefaultDescription
emailsarray of stringsโœ…โ€”List of email addresses to validate (max 1,000 per run)
check_mxbooleanโŒtrueSet to false to skip MX lookups (syntax + disposable only, much faster)
detect_disposablebooleanโŒtrueSet to false to skip disposable detection

Example input

{
"emails": [
"alice@gmail.com",
"spam@mailinator.com",
"user@hootmail.com",
"not-an-email",
"bob@nonexistent-xyz-domain-12345.com"
],
"check_mx": true,
"detect_disposable": true
}

๐Ÿ“ค Output

Each validated email is pushed to the default dataset as a separate item:

{
"email": "someone@mailinator.com",
"valid": false,
"disposable": true,
"reason": "Blacklist",
"domain": "mailinator.com",
"syntax_valid": true,
"mx_host": "mail.mailinator.com",
"mx_ip": "23.239.11.30",
"mx_info": "Using MX pointer mail.mailinator.com from DNS with priority: 10",
"domain_typo_detected": false,
"suggested_correction": null,
"execution_time_ms": 142,
"cache_hit": false
}

Field reference

FieldTypeDescription
emailstringThe email address that was checked
validbooleantrue if syntactically valid AND has MX/A records AND not disposable AND no typo
disposablebooleantrue if domain is a known or heuristic disposable provider
reasonstring|null"Blacklist", "MX Pattern", "Heuristic", or null
domainstring|nullLowercased domain part of the email
syntax_validbooleantrue if RFC 5322 syntax is valid
mx_hoststring|nullPrimary MX hostname
mx_ipstring|nullIPv4 of primary MX host
mx_infostring|nullHuman-readable MX resolution summary
domain_typo_detectedbooleantrue if domain is a typo of a major provider
suggested_correctionstring|nullCorrected email when typo detected
execution_time_msintegerServer-side processing time in ms
cache_hitbooleantrue if served from cache

๐Ÿ’ก Use cases

1. Signup form validation

Block disposable emails at signup to prevent abuse and ensure deliverable onboarding emails.

2. Lead list cleanup

Run a CSV of leads through this Actor before a marketing campaign. Filter out:

  • Invalid syntax (will bounce)
  • No MX records (will bounce)
  • Disposable (will never convert)
  • Typos (correct them and salvage the lead)

3. Fraud detection

Flag accounts signing up with temp-mail providers for manual review.

4. Email list hygiene

Periodically re-validate your subscriber list to remove addresses whose domains have lost MX records.

๐Ÿ”ง How it works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Input (emails[]) โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚
โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ OrchestratorAgent โ”‚
โ”‚ (cache lookup โ†’ fan-out) โ”‚
โ””โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”˜
โ”‚ โ”‚
โ–ผ โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ValidationEngine โ”‚ โ”‚ DisposableIntel โ”‚
โ”‚ - RFC 5322 syntax โ”‚ โ”‚ - Blacklist match โ”‚
โ”‚ - Async DNS MX โ”‚ โ”‚ - MX pattern โ”‚
โ”‚ - Typo detection โ”‚ โ”‚ - Heuristics โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Push to dataset โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“Š Performance

Pathp50p95Notes
Cache hit0โ€“5 ms< 10 msIn-memory or Redis GET
Cache miss (valid email)50โ€“150 ms< 250 msParallel DNS + blacklist
Cache miss (disposable)20โ€“100 ms< 200 msBlacklist short-circuits
1,000 emails (bulk)โ€”~30 secBounded concurrency (20)

๐Ÿงช Tested

  • 107 unit + integration + live DNS tests pass
  • 96 real-world emails tested (Gmail, Yahoo, Outlook, iCloud, Proton, international providers, disposable providers, typos, invalid syntax)
  • 50 concurrent requests: p95 = 170ms
  • Zero correctness issues in extended testing

๐Ÿ“š Same logic as the RapidAPI version

This Actor shares its core engine with the Email Validation & Disposable Domain Detector API on RapidAPI. If you need a real-time HTTP API (vs. batch Apify runs), use the RapidAPI version. If you need to process thousands of emails in batch, use this Actor.

๐Ÿ“ License

MIT