Misar Docs
MisarMailMisar.BlogMisarReachMisarPostMisar.DevMisar PlatformMisar IdentityMisar Posts API
Api Reference

Email Validation

Validate email addresses for deliverability before sending

Validate one or more email addresses to check syntax, MX records, SMTP reachability, and disposable/role-account status before adding contacts or sending campaigns.

Authentication

Email validation requires an API key with the validate or send scope. Base URL: https://api.misar.io/mail.

Endpoints

MethodPathDescription
POST/api/v1/validateValidate one or more email addresses
GET/api/v1/validateGet a cached validation result by email

Validate emails

POST/mail/v1/validate

Validate a single email address or a batch of up to 100 addresses. Provide either email for a single address or emails for a batch.

Request body

emailstringbody

A single email address to validate.

emailsstring[]body

A batch of up to 100 email addresses to validate.

Response fields

successboolean

true when the request succeeded.

resultobject

Validation result for a single email. Includes email, status, score, and a checks object (syntax, mx, smtp, disposable, role_account, free_provider).

resultsArray<object>

Validation results for a batch request. Each entry has the same shape as result.

summaryobject

Batch summary counts: total, valid, risky, invalid, unknown.

curl -X POST https://api.misar.io/mail/v1/validate \
  -H "Authorization: Bearer msk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "email": "[email protected]" }'
{
  "success": true,
  "result": {
    "email":  "[email protected]",
    "status": "valid",
    "score":  92,
    "checks": {
      "syntax":       true,
      "mx":           true,
      "smtp":         true,
      "disposable":   false,
      "role_account": false,
      "free_provider":true
    }
  }
}
curl -X POST https://api.misar.io/mail/v1/validate \
  -H "Authorization: Bearer msk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "emails": [
      "[email protected]",
      "[email protected]",
      "[email protected]"
    ]
  }'
{
  "success": true,
  "results": [
    {
      "email":  "[email protected]",
      "status": "valid",
      "score":  95,
      "checks": { "syntax": true, "mx": true, "smtp": true, "disposable": false, "role_account": false, "free_provider": false }
    },
    {
      "email":  "[email protected]",
      "status": "invalid",
      "score":  10,
      "checks": { "syntax": true, "mx": true, "smtp": false, "disposable": true, "role_account": false, "free_provider": false }
    },
    {
      "email":  "[email protected]",
      "status": "risky",
      "score":  40,
      "checks": { "syntax": true, "mx": true, "smtp": true, "disposable": false, "role_account": true, "free_provider": false }
    }
  ],
  "summary": {
    "total":   3,
    "valid":   1,
    "risky":   1,
    "invalid": 1,
    "unknown": 0
  }
}

Get cached result

GET/mail/v1/validate

Retrieve a cached validation result for an email address. Returns the most recent result within the last 30 days, if available. Returns 404 if no cached result exists — use POST /api/v1/validate to run a fresh check.

Query parameters

emailstringqueryrequired

URL-encoded email address to look up.

Response fields

successboolean

true when the request succeeded.

cachedboolean

true when the result was served from cache.

resultobject

Cached validation result: email, status, score, and checked_at.

curl "https://api.misar.io/mail/v1/validate?email=test%40example.com" \
  -H "Authorization: Bearer msk_YOUR_API_KEY"
{
  "success": true,
  "cached":  true,
  "result": {
    "email":      "[email protected]",
    "status":     "valid",
    "score":      92,
    "checked_at": "2026-04-01T10:00:00Z"
  }
}

Status Values

StatusScore RangeMeaning
valid70–100Safe to send — address is deliverable
risky30–69Proceed with caution — role account, catch-all, or low confidence
invalid0–29Do not send — disposable, no MX, or SMTP rejected
unknownCheck inconclusive (SMTP timeout or catch-all domain)

Checks Reference

CheckDescription
syntaxValid RFC 5322 email format
mxDomain has valid MX DNS records
smtpSMTP server accepts the address
disposableKnown disposable/temporary email domain
role_accountGeneric role address: info@, noreply@, admin@ etc.
free_providerGmail, Yahoo, Outlook, etc.

Validation consumes email-verification credits on Pro and Max plans. Free plan accounts cannot use email validation. See Plan Limits.