Get a free API key on RapidAPI →
Anyone can get a working inbox in two seconds from Mailinator, 10 Minute Mail, Temp-Mail or thousands of similar services. People use them to grab free trials repeatedly, bypass "verify your email" gates, and sign up for things they never intend to return to. The cost lands on you: verification emails sent to inboxes that expire in minutes, inflated signup metrics, fraud rings creating accounts in bulk, and a mailing list full of addresses that hard-bounce and damage your sender reputation.
Maintaining your own blocklist doesn't work for long. New disposable domains appear daily, and popular services rotate domains specifically to evade static lists. You need a list that someone else keeps current — which is exactly what this API wraps, along with syntax validation, live DNS checks, and alias normalization.
/check at signupBefore you create the account, make one request:
GET /check?email=test@mailinator.com
The response tells you everything about the address in one pass: whether the syntax is valid, whether the domain appears in the 160,000+ disposable-domain list, whether an MX lookup confirms the domain can actually receive mail, whether it's free webmail (Gmail, Outlook, Yahoo), whether it's a role account (admin@, support@, info@), and the canonical form of the address with Gmail dots and +tags stripped.
If you only need a yes/no answer and want the smallest possible response, /is-disposable returns just the disposable verdict. Use /normalize when you already trust the address and only want the canonical form for deduplication.
Don't treat every flag as a hard block — they mean different things:
gamil.com.This is the step most signup flows skip. Gmail delivers john+trial1@gmail.com, j.o.h.n@gmail.com and john@gmail.com to the same inbox, so one person can pass email verification for unlimited "unique" accounts. Store the canonical email the API returns alongside the address the user typed, and put a uniqueness constraint on the canonical value. The user keeps their preferred formatting; your database knows it's one inbox.
+tags yourself for every domain. Subaddressing rules vary by provider; some domains treat + as a literal character. Let /normalize apply provider-specific rules./stats endpoint tells you how large and fresh the domain list is.Does this send an email to the address? No. Validation is done via syntax rules, the domain list, and DNS MX lookups — the mailbox owner never sees anything.
Will it block Gmail or Outlook users? No. Free webmail is flagged separately from disposable domains, so you decide how to treat each.
What about brand-new disposable domains? The domain list is continuously maintained, and the MX check catches domains that were registered yesterday and can't actually receive mail.
Where should the check live? Server-side, in the same request handler that creates the account. Client-side checks can be bypassed by anyone with curl.
Calling disposable-email-detector-email-validator.p.rapidapi.com — replace YOUR_RAPIDAPI_KEY with your key.
curl --request GET \
--url 'https://disposable-email-detector-email-validator.p.rapidapi.com/check?email=test%40mailinator.com' \
--header 'X-RapidAPI-Key: YOUR_RAPIDAPI_KEY' \
--header 'X-RapidAPI-Host: disposable-email-detector-email-validator.p.rapidapi.com'
import requests
url = "https://disposable-email-detector-email-validator.p.rapidapi.com/check"
querystring = {"email": "test@mailinator.com"}
headers = {
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
"X-RapidAPI-Host": "disposable-email-detector-email-validator.p.rapidapi.com",
}
response = requests.get(url, headers=headers, params=querystring)
print(response.json())
const url = 'https://disposable-email-detector-email-validator.p.rapidapi.com/check?email=test%40mailinator.com';
const options = {
method: 'GET',
headers: {
'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY',
'X-RapidAPI-Host': 'disposable-email-detector-email-validator.p.rapidapi.com',
},
};
const response = await fetch(url, options);
console.log(await response.json());
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://disposable-email-detector-email-validator.p.rapidapi.com/check',
params: {email: 'test@mailinator.com'},
headers: {
'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY',
'X-RapidAPI-Host': 'disposable-email-detector-email-validator.p.rapidapi.com',
},
};
const { data } = await axios.request(options);
console.log(data);
Powered by the Disposable Email Detector & Email Validator API on RapidAPI.