Email Checker API
REST API for email validation with comprehensive validation checks and rate limiting
Base URL & Authentication
Base URL
https://mail7.net
Authentication
No authentication required. Public API with rate limiting.
Rate Limiting
Rate Limit: 5 requests per minute
Exceeding the rate limit will return HTTP 429 (Too Many Requests) with a retry-after header.
Single Email Validation
Endpoint
POST /api/validate-single
Request Body
{
"email": "[email protected]"
}
Response
{
"email": "[email protected]",
"valid": true,
"formatValid": true,
"mxValid": true,
"smtpValid": true,
"error": null
}
Example with cURL
curl -X POST https://mail7.net/api/validate-single \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
Bulk Email Validation
Endpoint
POST /api/validate-bulk
Request (Form Data)
Send either a file or text list:
File Upload
curl -X POST https://mail7.net/api/validate-bulk \
-F "[email protected]"
Text List
curl -X POST https://mail7.net/api/validate-bulk \
-F "[email protected]
[email protected]
[email protected]"
Response
{
"total": 3,
"results": [
{
"email": "[email protected]",
"valid": true,
"formatValid": true,
"mxValid": true,
"smtpValid": true,
"error": null
},
{
"email": "[email protected]",
"valid": false,
"formatValid": false,
"mxValid": false,
"smtpValid": false,
"error": "Invalid email format"
}
]
}
Health Check
Endpoint
GET /health
Response
{
"status": "healthy",
"timestamp": "2025-01-15T10:30:00.123456"
}
Example
curl https://mail7.net/health
Error Responses
Rate Limit Exceeded (429)
{
"detail": "Rate limit exceeded. Try again in 60 seconds.",
"retry_after": 60
}
Invalid Request (400)
{
"detail": "Invalid email format"
}
Server Error (500)
{
"detail": "Internal server error"
}
HTTP Status Codes
200
Success
400
Bad Request
429
Too Many Requests
500
Internal Server Error
503
Service Unavailable
SDK Examples
JavaScript/Node.js
// Single email validation
const response = await fetch('https://mail7.net/api/validate-single', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: '[email protected]'
})
});
const result = await response.json();
console.log(result);
// Bulk validation
const formData = new FormData();
formData.append('emails', '[email protected]\[email protected]');
const bulkResponse = await fetch('https://mail7.net/api/validate-bulk', {
method: 'POST',
body: formData
});
const bulkResult = await bulkResponse.json();
console.log(bulkResult);
Python
import requests
import json
# Single email validation
response = requests.post('https://mail7.net/api/validate-single',
json={'email': '[email protected]'})
result = response.json()
print(result)
# Bulk validation
emails = "[email protected]\[email protected]"
files = {'emails': (None, emails)}
response = requests.post('https://mail7.net/api/validate-bulk', files=files)
result = response.json()
print(result)
PHP
// Single email validation
$data = ['email' => '[email protected]'];
$options = [
'http' => [
'header' => "Content-type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents('https://mail7.net/api/validate-single', false, $context);
$response = json_decode($result, true);
print_r($response);