API Reference
Email Validation
Validate email addresses for deliverability before sending
Email Validation
Validate one or more email addresses to check syntax, MX records, SMTP reachability, and disposable/role-account status before adding contacts or sending campaigns.
Auth scope: validate or send
Endpoints
| Method | Path | Description |
|---|---|---|
POST | /api/v1/validate | Validate one or more email addresses |
GET | /api/v1/validate | Get a cached validation result by email |
POST /api/v1/validate
Validate a single email address or a batch of up to 100 addresses.
Single email
curl -X POST https://mail.misar.io/api/v1/validate \
-H "Authorization: Bearer msk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "email": "test@example.com" }'Response
{
"success": true,
"result": {
"email": "test@example.com",
"status": "valid",
"score": 92,
"checks": {
"syntax": true,
"mx": true,
"smtp": true,
"disposable": false,
"role_account": false,
"free_provider":true
}
}
}Batch validation
curl -X POST https://mail.misar.io/api/v1/validate \
-H "Authorization: Bearer msk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"emails": [
"alice@example.com",
"bob@tempmail.net",
"noreply@company.com"
]
}'Response
{
"success": true,
"results": [
{
"email": "alice@example.com",
"status": "valid",
"score": 95,
"checks": { "syntax": true, "mx": true, "smtp": true, "disposable": false, "role_account": false, "free_provider": false }
},
{
"email": "bob@tempmail.net",
"status": "invalid",
"score": 10,
"checks": { "syntax": true, "mx": true, "smtp": false, "disposable": true, "role_account": false, "free_provider": false }
},
{
"email": "noreply@company.com",
"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 /api/v1/validate
Retrieve a cached validation result for an email address. Returns the most recent result within the last 30 days, if available.
curl "https://mail.misar.io/api/v1/validate?email=test%40example.com" \
-H "Authorization: Bearer msk_YOUR_API_KEY"Query Parameters
| Param | Type | Required | Notes |
|---|---|---|---|
email | string | ✓ | URL-encoded email address to look up |
Response
{
"success": true,
"cached": true,
"result": {
"email": "test@example.com",
"status": "valid",
"score": 92,
"checked_at": "2026-04-01T10:00:00Z"
}
}Returns 404 if no cached result exists — use POST /api/v1/validate to run a fresh check.
Status Values
| Status | Score Range | Meaning |
|---|---|---|
valid | 70–100 | Safe to send — address is deliverable |
risky | 30–69 | Proceed with caution — role account, catch-all, or low confidence |
invalid | 0–29 | Do not send — disposable, no MX, or SMTP rejected |
unknown | — | Check inconclusive (SMTP timeout or catch-all domain) |
Checks Reference
| Check | Description |
|---|---|
syntax | Valid RFC 5322 email format |
mx | Domain has valid MX DNS records |
smtp | SMTP server accepts the address |
disposable | Known disposable/temporary email domain |
role_account | Generic role address: info@, noreply@, admin@ etc. |
free_provider | Gmail, Yahoo, Outlook, etc. |
Validation consumes Hunter Verification credits on Pro and Max plans. Free plan accounts cannot use email validation. See Plan Limits.