Batch Email Validator

Validate up to 50 email addresses in one request

POST 1 credit /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
Response 200 OK
{
  "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

Validate up to 50 email addresses in one request

How to Use

1

1. Send a POST request with an `emails` array containing 1–50 email addresses.

2

2. Review the `summary` for an at-a-glance quality assessment of the batch.

3

3. Filter `results` by `deliverability` to separate clean addresses from risky or undeliverable ones.

4

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

Frequently Asked Questions

Are all addresses validated in parallel?
Addresses are validated with controlled concurrency to avoid overwhelming mail servers. This means batch validation is faster than sequential single calls but may take a few seconds for large batches.
What's the maximum batch size?
You can validate up to 50 email addresses per request. For larger lists, split them into multiple batch requests.
Do I get the same detail per email as the single validation endpoint?
Yes, each entry in the `results` array contains identical fields to the single-address validation response, including SMTP codes, deliverability verdict, and all detection flags.

Start using Batch Email Validator now

Get your free API key and make your first request in under a minute.