- 1,000 validations/month
- 60 requests/minute
- Disposable email detection
- Temp mail domain detection
Disposable Email Detector API
Detect disposable, temporary, and fake email addresses in real-time. Block spam signups and protect your platform with our fast, accurate, and lightweight API.
Block disposable & fake emails
Protect your platform from spam signups, fake accounts, and temporary email abuse with real-time detection
Disposable Detection
Identify 410,000+ disposable and temporary email providers instantly in real-time.
Block Fake Signups
Prevent fake accounts and spam registrations by blocking temp mail addresses at signup.
Lightning Fast
Ultra-fast API response times with direct results — no queue system or delays.
Regularly Updated
Our disposable domain database is continuously updated to catch new temp mail providers.
Simple REST API
Easy integration with any platform. Supports both GET and POST requests with JSON responses.
High Accuracy
Industry-leading accuracy for spam and fraud prevention with minimal false positives.
Bulk Validation
Validate large email lists efficiently with high rate limits and generous monthly quotas.
Developer Friendly
Lightweight API with clean JSON responses, comprehensive docs, and multi-language examples.
Simple, transparent pricing
Start free and scale as you grow. No hidden fees.
- 10,000 validations/month
- 120 requests/minute
- Disposable email detection
- Temp mail domain detection
- Bulk validation support
- Email support
- 50,000 validations/month
- 300 requests/minute
- Disposable email detection
- Temp mail domain detection
- Bulk validation support
- Accelerated processing
- Priority support
- 250,000 validations/month
- No rate limit
- Disposable email detection
- Temp mail domain blocking
- Bulk validation support
- Accelerated processing
- Dedicated support
- Unlimited validations
- Custom rate limits
- Disposable email detection
- Temp mail domain blocking
- Bulk validation support
- 24/7 priority support
API reference
Everything you need to integrate the Disposable Email Detector API.
Authentication
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 Get your API key. Sign up at dash.corenexis.com to get your API key instantly.
API endpoint
POSTGEThttps://api.corenexis.com/disposable-email-validator/v1
The API accepts both GET and POST requests. For POST requests, you can send the email in JSON body or as form data.
Request parameters
| Parameter | Type | Description |
|---|---|---|
X-API-Key Header |
String | Your API key (required in request headers) |
email Required |
String | Email address or domain to check (e.g., user@tempmail.com or tempmail.com) |
Flexible input. You can pass a full email address (user@domain.com) or just the domain (domain.com). The API will automatically extract the domain for checking.
Code examples
Basic check (POST)
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": "test@tempmail.com"}' 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: 'test@tempmail.com'
})
});
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": "test@tempmail.com"}
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" => "test@tempmail.com"
])
]);
$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";
}
} GET request
curl "https://api.corenexis.com/disposable-email-validator/v1?email=test@tempmail.com" \
-H "X-API-Key: your_api_key" const email = encodeURIComponent('test@tempmail.com');
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); Form data (POST)
# 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=test@tempmail.com" const formData = new FormData();
formData.append('email', 'test@tempmail.com');
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); Domain-only check
# 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" Response format
Success response — disposable email
{
"success": true,
"plan": "starter",
"data": {
"email": "user@tempmail.com",
"disposable": true,
"domain": "tempmail.com"
},
"usage": {
"remaining": 9850,
"rate_limit": 120,
"monthly_limit": 10000
}
} Success response — legitimate email
{
"success": true,
"plan": "starter",
"data": {
"email": "john@gmail.com",
"disposable": false,
"domain": "gmail.com"
},
"usage": {
"remaining": 9849,
"rate_limit": 120,
"monthly_limit": 10000
}
} Response fields
| 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 |
Integration tip. Simply check the data.disposable field in your signup flow. If true, block or flag the registration. That’s all you need!
Error codes
| 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. |
Error response examples
// 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."
} Rate limiting. Rate limits are applied per minute. If you receive a 429 error, wait 60 seconds before retrying. Consider upgrading your plan for higher limits.
Ready to block disposable emails?
Create your free account and start detecting disposable emails in minutes. No credit card required.