Email Validation
Validate email addresses for deliverability before sending.
Email Validation
Validate email addresses to reduce bounces and protect sender reputation before importing contacts or sending.
Required scope: validate
Validate a single address
POST /v1/validate
{
"email": "[email protected]"
}
Response:
{
"success": true,
"email": "[email protected]",
"valid": true,
"result": "deliverable",
"score": 0.97,
"checks": {
"format": true,
"mxRecord": true,
"smtpReachable": true,
"disposable": false,
"roleAddress": false,
"freeProvider": false
},
"suggestion": null
}
Result values
| Result | Meaning |
|--------|---------|
| deliverable | High confidence this address receives email |
| risky | Valid format and MX, but SMTP check uncertain |
| undeliverable | Invalid, no MX records, or SMTP rejected |
| unknown | Could not determine — treat as risky |
Checks
| Check | Description |
|-------|-------------|
| format | RFC 5322 syntax valid |
| mxRecord | Domain has valid MX records |
| smtpReachable | Mailbox verified via SMTP handshake |
| disposable | Matches known disposable email provider |
| roleAddress | Address is a role (info@, support@, noreply@) |
| freeProvider | Gmail, Yahoo, Outlook, etc. |
| suggestion | Corrected spelling, e.g. gmial.com → gmail.com |
Bulk validate
GET /v1/[email protected],[email protected]
Or POST an array (up to 1 000 per request):
POST /v1/validate
{
"emails": ["[email protected]", "bad@@example", "[email protected]"]
}
{
"success": true,
"results": [
{ "email": "[email protected]", "result": "deliverable", "valid": true },
{ "email": "bad@@example", "result": "undeliverable", "valid": false, "checks": { "format": false } },
{ "email": "[email protected]", "result": "risky", "valid": false, "checks": { "disposable": true } }
],
"summary": {
"total": 3,
"deliverable": 1,
"risky": 1,
"undeliverable": 1
}
}
Validate on import
Pass validateOnImport: true to POST /v1/contacts/import to auto-validate all emails before inserting:
{
"contacts": [...],
"validateOnImport": true,
"skipUndeliverable": true
}
skipUndeliverable: true silently drops contacts whose validation result is undeliverable.