Skip to main content
Threat Detection

Disposable Email Detection Database

Block signups from 148,484 known disposable, temporary, and throwaway email domains. Download the database and query it locally - no API calls, no latency, complete privacy. Use it alongside your existing email verification service for a more complete picture.

148K+
Domains Tracked
Monthly
Database Updates
~99%
Domain match rate

How disposable email detection works

Disposable email services let anyone create a temporary inbox in seconds. These addresses are used once and discarded - making them the weapon of choice for trial abusers, fake account creators, and spammers.

1

Domain Discovery

We continuously monitor the internet for new disposable email services. New providers appear regularly - from large operations like Guerrilla Mail and Mailinator to small, obscure services that serve niche fraud rings.

2

MX Record & Infrastructure Analysis

Each domain is analyzed at the DNS level. We check MX records, SMTP responses, and mail infrastructure to classify domains as disposable, catch-all, or alias services. Domains without valid MX records that still accept mail are flagged.

3

Alias Pattern Detection

Some services use sub-addressing (user+tag@domain) or wildcard domains to generate infinite aliases from a single domain. We detect these patterns and flag the parent domain so you don't need to track individual aliases.

4

Monthly Refresh Cycle

New disposable email services appear weekly. Our database is refreshed monthly with newly discovered domains, updated risk scores, and removal of domains that have shut down.

Types of disposable email services we detect

Throwaway Inbox Services

Mailinator, Guerrilla Mail, 10MinuteMail - services that provide instant disposable inboxes with no signup required.

Temporary Forwarding Services

Services that create a temporary email that forwards to a real address, then self-destructs after a set time period.

Catch-All Domains

Domains configured to accept mail for any username. Often used to generate unlimited unique addresses from a single domain.

Email Alias Services

Services like AnonAddy or SimpleLogin that generate aliases masking the user's real email. Often abused for multi-accounting.

What's included in the database

The Disposable Email database is delivered as CSV and JSON files. Each record maps a domain to its disposable classification and metadata.

Field Type Description
domain string The disposable email domain (e.g., mailinator.com, guerrillamail.com)
category enum Classification: disposable, temporary, alias_service, catch_all
is_active boolean Whether the domain is currently accepting new registrations
has_mx boolean Whether the domain has valid MX records
domain_age_days integer Age of the domain in days since registration
first_seen date Date the domain was first identified as disposable
risk_level enum Risk classification: low, medium, high
aliases_supported boolean Whether the domain supports email aliases (e.g., user+tag@domain)
148K+
Domains Covered
CSV & JSON
Data Formats
Monthly
Update Frequency

Use cases for disposable email detection

Disposable emails are the root cause of trial abuse, fake accounts, and polluted user databases. Blocking them at registration protects your revenue and data quality.

Free Trial Abuse Prevention

Stop users from creating unlimited trial accounts with throwaway emails. Each signup attempt is checked against the disposable domain list before the account is created.

Fake Account Cleanup

Audit your existing user base to find accounts registered with disposable emails. Clean up dead accounts and improve the quality of your user analytics.

Review & Feedback Integrity

Prevent fake reviews and feedback from accounts created with disposable emails. Ensure that ratings and testimonials come from real, verified users.

Promotional Code Abuse

Block users who sign up with disposable emails to repeatedly use single-use promo codes, coupon codes, or referral bonuses intended for genuine new customers.

Email Marketing List Quality

Keep your mailing list clean by filtering out disposable addresses at the point of subscription. Lower bounce rates, improve deliverability, and protect your sender reputation.

Compliance & KYC Verification

Enforce "real email" requirements during Know Your Customer onboarding. Financial services and regulated industries benefit from ensuring every user has a permanent email address.

Simple domain lookup in your code

Load the disposable email database into any data store. A simple domain lookup at registration time is all it takes to block throwaway emails.

PHP - MySQL Domain Lookup
prepare(
        "SELECT domain, category, risk_level
         FROM disposable_domains
         WHERE domain = :domain"
    );
    $stmt->execute(['domain' => $domain]);
    return $stmt->fetch(PDO::FETCH_ASSOC);
}

// Usage in your registration form handler
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);

if (!$email) {
    die('Invalid email address.');
}

$disposable = is_disposable_email($pdo, $email);

if ($disposable) {
    // Block the registration
    die('Please use a permanent email address. Disposable emails are not accepted.');
}

// Email is clean - proceed with registration
create_user($email, $_POST['password']);
Node.js - Redis Set Lookup
import { createClient } from 'redis';
import fs from 'fs';

// One-time: load the AntiProxies CSV into a Redis set
// This gives you O(1) lookups for every registration check

async function loadDisposableDomains(redisClient, csvPath) {
  const data = fs.readFileSync(csvPath, 'utf-8');
  const domains = data.split('\n').slice(1) // skip header
    .map(line => line.split(',')[0].trim().toLowerCase())
    .filter(Boolean);

  // Load all domains into a Redis set
  await redisClient.sAdd('disposable_domains', domains);
  console.log(`Loaded ${domains.length} disposable domains into Redis`);
}

// Check an email during registration
async function isDisposableEmail(redisClient, email) {
  const domain = email.split('@')[1]?.toLowerCase();
  if (!domain) return false;
  return await redisClient.sIsMember('disposable_domains', domain);
}

// Express.js middleware example
app.post('/register', async (req, res) => {
  const { email, password } = req.body;

  if (await isDisposableEmail(redis, email)) {
    return res.status(400).json({
      error: 'Please use a permanent email address.'
    });
  }

  // Proceed with registration...
});

Want to see what's in the database?

Download once, query as many times as you need. €99/year for all 22 databases, unlimited servers, and a full year of monthly updates. No usage limits, no per-query fees, no data leaving your servers.

30-day money-back guarantee
All databases included
Monthly updates