Misar IO Docs

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.comgmail.com |

Bulk validate

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.