curl -X POST https://www.unosend.co/api/v1/validate/emails \
-H "Authorization: Bearer un_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"emails": [
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]"
]
}'
{
"total": 4,
"valid": 2,
"invalid": 2,
"risky": 2,
"summary": {
"deliverable": 2,
"undeliverable": 2,
"risky": 2,
"unknown": 0
},
"results": [
{
"email": "[email protected]",
"valid": true,
"score": 90,
"reason": null,
"checks": {
"syntax": true,
"mx_records": true,
"disposable": false,
"role_based": false,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "valid",
"domain": "company.com"
}
},
{
"email": "[email protected]",
"valid": true,
"score": 75,
"reason": "Role-based email address",
"checks": {
"syntax": true,
"mx_records": true,
"disposable": false,
"role_based": true,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "info",
"domain": "business.com"
}
},
{
"email": "[email protected]",
"valid": false,
"score": 40,
"reason": "Disposable email address",
"checks": {
"syntax": true,
"mx_records": true,
"disposable": true,
"role_based": false,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "temp",
"domain": "mailinator.com"
}
},
{
"email": "[email protected]",
"valid": false,
"score": 25,
"reason": "Domain has no mail server (MX records)",
"checks": {
"syntax": true,
"mx_records": false,
"disposable": false,
"role_based": false,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "invalid",
"domain": "nonexistent.xyz"
}
}
]
}
Validate up to 1 million email addresses in bulk. Pro feature.
curl -X POST https://www.unosend.co/api/v1/validate/emails \
-H "Authorization: Bearer un_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"emails": [
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]"
]
}'
{
"total": 4,
"valid": 2,
"invalid": 2,
"risky": 2,
"summary": {
"deliverable": 2,
"undeliverable": 2,
"risky": 2,
"unknown": 0
},
"results": [
{
"email": "[email protected]",
"valid": true,
"score": 90,
"reason": null,
"checks": {
"syntax": true,
"mx_records": true,
"disposable": false,
"role_based": false,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "valid",
"domain": "company.com"
}
},
{
"email": "[email protected]",
"valid": true,
"score": 75,
"reason": "Role-based email address",
"checks": {
"syntax": true,
"mx_records": true,
"disposable": false,
"role_based": true,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "info",
"domain": "business.com"
}
},
{
"email": "[email protected]",
"valid": false,
"score": 40,
"reason": "Disposable email address",
"checks": {
"syntax": true,
"mx_records": true,
"disposable": true,
"role_based": false,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "temp",
"domain": "mailinator.com"
}
},
{
"email": "[email protected]",
"valid": false,
"score": 25,
"reason": "Domain has no mail server (MX records)",
"checks": {
"syntax": true,
"mx_records": false,
"disposable": false,
"role_based": false,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "invalid",
"domain": "nonexistent.xyz"
}
}
]
}
curl -X POST https://www.unosend.co/api/v1/validate/emails \
-H "Authorization: Bearer un_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"emails": [
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]"
]
}'
{
"total": 4,
"valid": 2,
"invalid": 2,
"risky": 2,
"summary": {
"deliverable": 2,
"undeliverable": 2,
"risky": 2,
"unknown": 0
},
"results": [
{
"email": "[email protected]",
"valid": true,
"score": 90,
"reason": null,
"checks": {
"syntax": true,
"mx_records": true,
"disposable": false,
"role_based": false,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "valid",
"domain": "company.com"
}
},
{
"email": "[email protected]",
"valid": true,
"score": 75,
"reason": "Role-based email address",
"checks": {
"syntax": true,
"mx_records": true,
"disposable": false,
"role_based": true,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "info",
"domain": "business.com"
}
},
{
"email": "[email protected]",
"valid": false,
"score": 40,
"reason": "Disposable email address",
"checks": {
"syntax": true,
"mx_records": true,
"disposable": true,
"role_based": false,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "temp",
"domain": "mailinator.com"
}
},
{
"email": "[email protected]",
"valid": false,
"score": 25,
"reason": "Domain has no mail server (MX records)",
"checks": {
"syntax": true,
"mx_records": false,
"disposable": false,
"role_based": false,
"free_provider": false,
"catch_all": null,
"smtp_valid": null
},
"details": {
"local_part": "invalid",
"domain": "nonexistent.xyz"
}
}
]
}
async function validateLargeList(emails, apiKey) {
const batchSize = 1000;
const results = [];
for (let i = 0; i < emails.length; i += batchSize) {
const batch = emails.slice(i, i + batchSize);
const response = await fetch('https://www.unosend.co/api/v1/validate/emails', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ emails: batch })
});
const data = await response.json();
results.push(...data.results);
}
return results;
}