WorkEmailChecker API provides instant email validation and classification services. It can detect personal emails, corporate emails, disposable emails, and validate email syntax and domain deliverability.
https://workemailchecker.com/api
No authentication is required. The API is free to use with rate limiting applied.
Limit: 5 requests per second per IP address
Burst: Up to 10 requests in a short period
AI Mode: 0.5 requests per second per IP, burst 1
If you exceed the rate limit, you'll receive a 429 status code with a retry message.
/check
{
"email": "user@example.com"
}
{
"email": "user@example.com",
"mode": "ai"
}
{
"email": "user@example.com",
"valid": true,
"syntax_valid": true,
"domain_valid": true,
"mx_records_found": true,
"provider_name": "Google",
"provider_type": "personal",
"is_disposable": false,
"is_corporate": false,
"is_personal": true,
"corporate_domain": null,
"message": "Personal email detected"
}
{
"email": "employee@google.com",
"valid": true,
"syntax_valid": true,
"domain_valid": true,
"mx_records_found": true,
"provider_name": "Google",
"provider_type": "corporate",
"is_disposable": false,
"is_corporate": true,
"is_personal": false,
"corporate_domain": "google.com",
"message": "Corporate email detected"
}
/health
{
"status": "healthy",
"service": "WorkEmailChecker"
}
| Field | Type | Description |
|---|---|---|
email |
string | The email address that was validated |
valid |
boolean | Overall validation result |
syntax_valid |
boolean | Email format validation |
domain_valid |
boolean | Domain validation status |
mx_records_found |
boolean | MX records availability |
provider_name |
string | Email service provider name |
provider_type |
string | Type: personal, corporate, disposable, unknown |
is_disposable |
boolean | Whether the email is from a disposable provider |
is_corporate |
boolean | Whether the email is a corporate email |
is_personal |
boolean | Whether the email is a personal email |
corporate_domain |
string|null | Corporate domain (if applicable) |
message |
string | Additional information or error message |
{
"error": "Rate limit exceeded. Please try again later.",
"retry_after": 60
}
{
"error": "AI rate limit exceeded",
"retry_after": 2
}
{
"error": "Email is required"
}
{
"error": "Method not allowed"
}
{
"error": "AI check failed"
}
curl -X POST https://workemailchecker.com/api/check \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com"}'
curl -X POST https://workemailchecker.com/api/check \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "mode": "ai"}'
fetch('https://workemailchecker.com/api/check', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: 'user@example.com'
})
})
.then(response => response.json())
.then(data => console.log(data));
fetch('https://workemailchecker.com/api/check', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: 'user@example.com',
mode: 'ai'
})
})
.then(response => response.json())
.then(data => console.log(data));
import requests
response = requests.post(
'https://workemailchecker.com/api/check',
json={'email': 'user@example.com'}
)
data = response.json()
print(data)
import requests
response = requests.post(
'https://workemailchecker.com/api/check',
json={'email': 'user@example.com', 'mode': 'ai'}
)
print(response.json())