Email Validation

Validate a single email address before sending — syntax, DNS/MX, mailbox existence, role-address, disposable-domain, and random-input checks roll up into a deliverability decision and a confidence score.

Email validation lets you check an address before adding it to a list or sending to it, reducing hard bounces and protecting your sender reputation.

The endpoint runs a battery of checks and returns:

  • decision — overall deliverability call: deliverable, risky, undeliverable, or unknown
  • confidence — how sure we are: HIGH, MEDIUM, LOW, or UNKNOWN
  • checks — per-signal confidence breakdown (validSyntax, validDns, mailboxExists, roleAddress, disposable, randomInput). Each is itself a confidence enum. checks may be null on a cached result.

Validation requires the sending scope and is billed per validation.

POST/v1/validate

Validate a single email address. Returns a deliverability decision, a confidence score, and a per-signal checks breakdown. Requires the `sending` scope.

Authorizations

Authorizationstring · headerrequired

Bearer authentication header of the form Bearer <token>, where <token> is your API Key.

Body

emailstringrequired

Email address to validate

POST /v1/validate
curl -X POST https://api.posthawk.dev/v1/validate \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your_api_key" \
  -d '{ "email": "user@example.com" }'
Response
{
  "success": true,
  "email": "user@example.com",
  "decision": "deliverable",
  "confidence": "HIGH",
  "checks": {
    "validSyntax": "HIGH",
    "validDns": "HIGH",
    "mailboxExists": "HIGH",
    "roleAddress": "HIGH",
    "disposable": "HIGH",
    "randomInput": "HIGH"
  }
}