JavaScript Examples
Code examples for integrating the nofakemails email validation API into your JavaScript applications.
API Key Required
All examples require an API key. Store your key in the
NOFAKEMAILS_API_KEY environment variable.Single Email Validation
Validate a single email address with a GET request to the /v1/email/{email} endpoint.
validate-email.js
const response = await fetch(
'https://api.nofakemails.com/v1/email/user@example.com',
{
method: 'GET',
headers: {
'X-API-Key': process.env.NOFAKEMAILS_API_KEY,
},
}
);
const result = await response.json();
console.log(result);Response:
{
"email": "user@example.com",
"valid": true,
"normalized": "user@example.com",
"local_part": "user",
"alias": false,
"ascii": true,
"role": null,
"gibberish": false,
"gibberish_score": 0.12,
"domain": "example.com",
"mx": true,
"disposable": false,
"public": false,
"relay": false,
"typo": false,
"typo_suggestion": null
}See the Response Format page for a full description of every field.
Batch Validation
Validate up to 64 email addresses in a single POST request to the /v1/emails endpoint.
batch-validation.js
const emails = [
'user1@example.com',
'user2@tempmail.com',
'user3@gmail.com',
];
const response = await fetch('https://api.nofakemails.com/v1/emails', {
method: 'POST',
headers: {
'X-API-Key': process.env.NOFAKEMAILS_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({ emails }),
});
const batch = await response.json();
// Check for partial results (timeout)
if (batch.partial) {
console.warn('Some emails may not have been processed');
}
// Process each result
for (const item of batch.results) {
if (item.status === 'error') {
console.error(`${item.email}: ${item.error.message}`);
continue;
}
if (item.result.disposable) {
console.log(`${item.email} is disposable`);
}
}Response:
{
"success": true,
"partial": false,
"total": 3,
"valid_count": 3,
"invalid_count": 0,
"error_count": 0,
"usage_points": 3,
"processing_time_ms": 195,
"results": [
{
"email": "user1@example.com",
"status": "success",
"result": {
"email": "user1@example.com",
"valid": true,
"normalized": "user1@example.com",
"local_part": "user1",
"alias": false,
"ascii": true,
"role": null,
"gibberish": false,
"gibberish_score": 0.11,
"domain": "example.com",
"mx": true,
"disposable": false,
"public": false,
"relay": false,
"typo": false,
"typo_suggestion": null
},
"error": null
},
{
"email": "user2@tempmail.com",
"status": "success",
"result": {
"email": "user2@tempmail.com",
"valid": true,
"normalized": "user2@tempmail.com",
"local_part": "user2",
"alias": false,
"ascii": true,
"role": null,
"gibberish": false,
"gibberish_score": 0.10,
"domain": "tempmail.com",
"mx": true,
"disposable": true,
"public": false,
"relay": false,
"typo": false,
"typo_suggestion": null
},
"error": null
},
{
"email": "user3@gmail.com",
"status": "success",
"result": {
"email": "user3@gmail.com",
"valid": true,
"normalized": "user3@gmail.com",
"local_part": "user3",
"alias": false,
"ascii": true,
"role": null,
"gibberish": false,
"gibberish_score": 0.09,
"domain": "gmail.com",
"mx": true,
"disposable": false,
"public": true,
"relay": false,
"typo": false,
"typo_suggestion": null
},
"error": null
}
]
}Each item in results contains the full validation result. See the Batch Validation response format for details on the envelope fields and per-email result structure.
Batch Limit
The batch endpoint accepts a maximum of 64 email addresses per request. Duplicates are automatically deduplicated. See the Error Codes page if you encounter issues.