Detect disposable, temporary, and fake email addresses in real-time. Block spam signups and protect your platform with our fast, accurate, and lightweight API.
Protect your platform from spam signups, fake accounts, and temporary email abuse with real-time detection
Identify 410,000+ disposable and temporary email providers instantly in real-time.
Prevent fake accounts and spam registrations by blocking temp mail addresses at signup.
Ultra-fast API response times with direct results — no queue system or delays.
Our disposable domain database is continuously updated to catch new temp mail providers.
Easy integration with any platform. Supports both GET and POST requests with JSON responses.
Industry-leading accuracy for spam and fraud prevention with minimal false positives.
Validate large email lists efficiently with high rate limits and generous monthly quotas.
Lightweight API with clean JSON responses, comprehensive docs, and multi-language examples.
Start free and scale as you grow. No hidden fees.
Everything you need to integrate the Disposable Email Validator API
All API requests require authentication using your API key. The API key must be sent via the X-API-Key header with every request.
X-API-Key: your_api_key_here
The API accepts both GET and POST requests. For POST requests, you can send the email in JSON body or as form data.
| Parameter | Type | Description |
|---|---|---|
| X-API-KeyHeader | String | Your API key (required in request headers) |
| emailRequired | String | Email address or domain to check (e.g., [email protected] or tempmail.com) |
curl -X POST https://api.corenexis.com/disposable-email-validator/v1 \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
const response = await fetch('https://api.corenexis.com/disposable-email-validator/v1', {
method: 'POST',
headers: {
'X-API-Key': 'your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: '[email protected]'
})
});
const data = await response.json();
if (data.success) {
console.log('Disposable:', data.data.disposable);
console.log('Domain:', data.data.domain);
if (data.data.disposable) {
console.log('⚠️ This is a disposable email!');
} else {
console.log('✅ This is a legitimate email.');
}
}
import requests
url = "https://api.corenexis.com/disposable-email-validator/v1"
headers = {
"X-API-Key": "your_api_key",
"Content-Type": "application/json"
}
data = {"email": "[email protected]"}
response = requests.post(url, headers=headers, json=data)
result = response.json()
if result["success"]:
print(f"Disposable: {result['data']['disposable']}")
print(f"Domain: {result['data']['domain']}")
if result["data"]["disposable"]:
print("⚠️ This is a disposable email!")
else:
print("✅ This is a legitimate email.")
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://api.corenexis.com/disposable-email-validator/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"X-API-Key: your_api_key",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode([
"email" => "[email protected]"
])
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
if ($data["success"]) {
echo "Disposable: " . ($data["data"]["disposable"] ? "Yes" : "No") . "\n";
echo "Domain: " . $data["data"]["domain"] . "\n";
if ($data["data"]["disposable"]) {
echo "⚠️ This is a disposable email!\n";
} else {
echo "✅ This is a legitimate email.\n";
}
}
curl "https://api.corenexis.com/disposable-email-validator/[email protected]" \
-H "X-API-Key: your_api_key"
const email = encodeURIComponent('[email protected]');
const response = await fetch(`https://api.corenexis.com/disposable-email-validator/v1?email=${email}`, {
method: 'GET',
headers: {
'X-API-Key': 'your_api_key'
}
});
const data = await response.json();
console.log('Disposable:', data.data.disposable);
# Send email as form data instead of JSON
curl -X POST https://api.corenexis.com/disposable-email-validator/v1 \
-H "X-API-Key: your_api_key" \
-d "[email protected]"
const formData = new FormData();
formData.append('email', '[email protected]');
const response = await fetch('https://api.corenexis.com/disposable-email-validator/v1', {
method: 'POST',
headers: {
'X-API-Key': 'your_api_key'
},
body: formData
});
const data = await response.json();
console.log('Disposable:', data.data.disposable);
# You can also pass just the domain instead of a full email
curl "https://api.corenexis.com/disposable-email-validator/v1?email=tempmail.com" \
-H "X-API-Key: your_api_key"
{
"success": true,
"plan": "starter",
"data": {
"email": "[email protected]",
"disposable": true,
"domain": "tempmail.com"
},
"usage": {
"remaining": 9850,
"rate_limit": 120,
"monthly_limit": 10000
}
}
{
"success": true,
"plan": "starter",
"data": {
"email": "[email protected]",
"disposable": false,
"domain": "gmail.com"
},
"usage": {
"remaining": 9849,
"rate_limit": 120,
"monthly_limit": 10000
}
}
| Field | Type | Description |
|---|---|---|
| success | Boolean | Whether the API request was successful |
| plan | String | Your current subscription plan type |
| data.email | String | The email address or domain that was checked |
| data.disposable | Boolean | true if the domain is a known disposable/temporary email provider, false otherwise |
| data.domain | String | The extracted domain that was checked against the disposable database |
| usage.remaining | Integer | Remaining validations for this billing period |
| usage.rate_limit | Integer | Maximum requests allowed per minute |
| usage.monthly_limit | Integer | Maximum validations allowed per month |
data.disposable field in your signup flow. If true, block or flag the registration. That's all you need!
| HTTP | Code | Description |
|---|---|---|
| 400 | Bad Request | Missing email parameter in request |
| 401 | INVALID_KEY | API key is invalid, expired, or not found |
| 401 | Missing API Key | X-API-Key header is not present in the request |
| 402 | NO_SUBSCRIPTION | Disposable Email Validator API is not enabled for your account. Subscribe to a plan first. |
| 402 | SUBSCRIPTION_EXPIRED | Your subscription has expired. Please renew to continue. |
| 402 | SUBSCRIPTION_CANCELLED | Your subscription has been cancelled and the access period has ended. |
| 403 | KEY_DISABLED | Your API key has been disabled. Generate a new key from the dashboard. |
| 403 | ACCOUNT_SUSPENDED | Your account has been suspended. Contact support for assistance. |
| 403 | EMAIL_NOT_VERIFIED | Verify your email address before using the API. |
| 405 | Method Not Allowed | Only GET and POST methods are accepted |
| 429 | RATE_LIMIT_EXCEEDED | Too many requests per minute. Wait and try again. |
| 429 | QUOTA_EXCEEDED | Monthly validation quota has been reached. Upgrade your plan for more. |
| 500 | Server Error | Internal server error. Try again later. |
| 502 | Bad Gateway | Authentication service returned invalid response. |
| 503 | Service Unavailable | Authentication service unavailable. Please try again. |
// 401 — Invalid API Key
{
"success": false,
"code": "INVALID_KEY",
"message": "The provided API key is invalid or has been revoked."
}
// 400 — Missing Email Parameter
{
"success": false,
"error": "Email is required."
}
// 429 — Rate Limit Exceeded
{
"success": false,
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests. Please wait before making another request."
}
// 429 — Monthly Quota Exceeded
{
"success": false,
"code": "QUOTA_EXCEEDED",
"message": "Monthly validation quota exceeded. Upgrade your plan for more."
}
// 402 — No Subscription
{
"success": false,
"code": "NO_SUBSCRIPTION",
"message": "Disposable Email Validator API is not enabled for your account. Subscribe to a plan first."
}
Create your free account and start detecting disposable emails in minutes. No credit card required.