T
trueuser
Disposable listDocsDashboard
Guide

How to block disposable
email signups.

Disposable and temp-mail addresses are the cheapest way for someone to abuse a free trial, skip verification, or pad a botnet of fake accounts. Here are the three ways to stop them at signup — from a static file to a single API call — and when to reach for each.

Three approaches

Pick the one that matches how much you want to maintain.

01

Ship a static blocklist file

Bundle an open-source list of disposable domains and reject any signup whose domain is in the set. Simplest to start, no network call.

+ Zero dependencies, works offline, fully in your control.
You own a 5,442+ line file that goes stale the moment a new temp-mail provider launches — and new ones launch constantly.
02

Add a regex / heuristic check

Match on tell-tale patterns (mailinator, 10minute, tempmail, guerrilla…) or validate MX records at signup. Cheap to add to a form handler.

+ Catches obvious throwaways without a data file.
High false-negative rate — most disposable domains don't match an obvious pattern, and MX checks miss reusable public inboxes.
03

Call a verification API

POST the address to an endpoint that maintains the list (plus deliverability, role-account, and batch-cluster signals) and returns a verdict in real time.

+ Always current, one line of code, and you get more than just the disposable signal.
An external call in your signup path — so pick one that responds in well under 100ms.
The one-call version

Reject disposable signups in one fetch.

POST the address to /api/v1/verify when the user submits your signup form. The response carries a verdict and the underlying signals — disposable, role-account, batch-cluster — so you can block, hold for review, or accept.

// inside your signup handler
const res = await fetch('https://api.trueuser.dev/api/v1/verify', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.TRUEUSER_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ email }),
});
const { verdict, signals } = await res.json();
 
if (signals.disposable || verdict === 'block') {
return reject('Please use a permanent email address.');
}
FAQ

What is a disposable email address?

A disposable email (temp mail, throwaway, or temporary email) comes from a service that generates short-lived, often public inboxes on demand. People use them to skip verification, abuse free trials, or sign up without revealing a real address.

Why should I block disposable email signups?

Disposable signups inflate vanity metrics, multiply onboarding and email costs, and damage sender reputation through bounces — while almost never converting into real, retained users.

Is a static blocklist enough?

It helps, but new disposable domains appear daily, so a file you maintain by hand goes stale fast. A maintained list — via an API or an auto-updated source — keeps coverage current without manual upkeep.

How fast does blocking need to be?

It runs inside your signup request, so aim for under 100ms. TrueUser returns a verdict in that range so the check is invisible to the user.

Want to see which providers we track? Browse the disposable email checker →