Batch Email Validator
Validate up to 50 email addresses in one request
/v1/email/validate-batch
curl -X POST "https://email.toolkitapi.io/v1/email/validate-batch" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{"emails": ["[email protected]", "[email protected]", "[email protected]"]}'
import httpx
resp = httpx.post(
"https://email.toolkitapi.io/v1/email/validate-batch",
json={"emails": ["[email protected]", "[email protected]", "[email protected]"]},
)
print(resp.json())
const resp = await fetch("https://email.toolkitapi.io/v1/email/validate-batch", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({"emails": ["[email protected]", "[email protected]", "[email protected]"]}),
});
const data = await resp.json();
console.log(data);
# See curl example
{
"total": 3,
"results": [
{
"email": "[email protected]",
"local_part": "user",
"domain": "toolkitapi.io",
"syntax_valid": true,
"mx_found": true,
"mx_records": ["mx1.toolkitapi.io"],
"smtp_code": 250,
"smtp_message": "2.1.5 OK",
"is_deliverable": true,
"is_disposable": false,
"is_free": false,
"is_role_account": false,
"is_catch_all": null,
"deliverability": "deliverable",
"confidence": 0.95
},
{
"email": "[email protected]",
"local_part": "test",
"domain": "disposable.email",
"syntax_valid": true,
"mx_found": true,
"mx_records": ["mx.disposable.email"],
"smtp_code": null,
"smtp_message": null,
"is_deliverable": null,
"is_disposable": true,
"is_free": false,
"is_role_account": false,
"is_catch_all": null,
"deliverability": "risky",
"confidence": 0.6
},
{
"email": "[email protected]",
"local_part": "admin",
"domain": "company.org",
"syntax_valid": true,
"mx_found": true,
"mx_records": ["mail.company.org"],
"smtp_code": 250,
"smtp_message": "2.1.5 OK",
"is_deliverable": true,
"is_disposable": false,
"is_free": false,
"is_role_account": true,
"is_catch_all": null,
"deliverability": "deliverable",
"confidence": 0.95
}
],
"summary": {
"deliverable": 2,
"undeliverable": 0,
"risky": 1,
"unknown": 0
}
}
Description
How to Use
1. Send a POST request with an `emails` array containing 1–50 email addresses.
2. Review the `summary` for an at-a-glance quality assessment of the batch.
3. Filter `results` by `deliverability` to separate clean addresses from risky or undeliverable ones.
4. Remove or flag addresses with `deliverability` of "undeliverable" or "risky" from your list.
About This Tool
The Batch Email Validator runs the full validation pipeline on up to 50 email addresses in a single request. Each address goes through syntax checking, MX resolution, SMTP probing, and disposable/free/role detection — identical to the single-address endpoint but optimized for bulk processing with controlled concurrency.
The response includes per-email results plus an aggregate summary with counts of deliverable, undeliverable, risky, and unknown addresses. This makes it easy to assess the overall quality of an email list at a glance.
Why Use This Tool
- Email list cleaning — Validate entire contact lists before email campaigns
- Import validation — Check uploaded CSV email lists during CRM import
- Lead quality scoring — Batch-assess new leads from marketing campaigns
- Pre-campaign audit — Reduce bounce rates by removing bad addresses before sending
Frequently Asked Questions
Are all addresses validated in parallel?
What's the maximum batch size?
Do I get the same detail per email as the single validation endpoint?
Start using Batch Email Validator now
Get your free API key and make your first request in under a minute.