Developer Reference
Email Verification
Verify if email addresses are real and deliverable. Reduce bounce rates, protect your sender reputation, and improve email deliverability with our comprehensive verification API.
Email Verification
Verify if email addresses are real and deliverable. Reduce bounce rates, protect your sender reputation, and improve email deliverability with our comprehensive verification API.
Pricing: Basic Check (2 credits) · Syntax, MX, disposable, role-based
GET
/v1/email/verify
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| email required | string | Verify if email addresses are real and deliverable |
| full optional |
boolean
Default
false
|
Deprecated and no longer changes the result. SMTP mailbox verification was retired, so the response is identical with or without it and the cost stays the same. |
Pricing
| Tier | Cost | Checks included |
|---|---|---|
| Basic Check | 2 credits | Syntax, MX, disposable, role-based |
Example Request
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/email/[email protected]"
Example Response
{
"email": "[email protected]",
"normalized_email": "[email protected]",
"result": "valid",
"result_detail": "mx_verified",
"risk": "low",
"confidence": 0.62,
"decision": "accept",
"reasons": ["mx_found", "not_disposable", "mailbox_not_checked", "redundant_mx_records"],
"verification": {
"syntax_valid": true,
"mx_found": true,
"mx_records": ["mx1.company.com", "mx2.company.com"],
"smtp_verified": null,
"mailbox_exists": null,
"catch_all": null,
"full_inbox": null,
"smtp_provider": null
},
"classification": {
"disposable": false,
"role_based": false,
"free_provider": false,
"provider": null
},
"reputation": {
"dnsbl_listed": false,
"threat_level": null
},
"quality": {
"score": 100,
"grade": "A",
"flags": []
},
"signals": {
"domain_profile": { "status": "pass", "reason": "clean_domain_profile" },
"local_part": { "status": "pass", "reason": "clean_local_part" },
"mx_redundancy": { "status": "pass", "reason": "redundant_mx_records" },
"domain_authentication": { "status": "pass", "reason": "domain_authentication_strong" },
"toxicity": { "status": "pass", "reason": "not_toxic" }
},
"recommendation": {
"signup": "allow",
"marketing": "send",
"cold_outreach": "send"
},
"deliverability": {
"status": "deliverable",
"sub_status": "mx_verified",
"safe_to_send": true,
"is_toxic": false,
"is_gibberish": false
},
"tier": "basic",
"credits_used": 2
}
Response Fields
| Field | Type |
|---|---|
email |
string |
normalized_email |
string |
result |
string |
result_detail |
string |
message |
string | null |
risk |
string |
confidence |
number |
confidence_level |
string |
decision |
string |
reasons[] |
string[] |
verification |
object |
verification.syntax_valid |
boolean |
verification.mx_found |
boolean |
verification.null_mx |
boolean |
verification.mx_records[] |
string[] |
verification.smtp_verified |
boolean | null |
verification.mailbox_exists |
boolean | null |
verification.catch_all |
boolean | null |
verification.full_inbox |
boolean | null |
verification.smtp_provider |
string | null |
classification |
object |
classification.disposable |
boolean |
classification.disposable_confidence |
string | null |
classification.role_based |
boolean |
classification.role_type |
string | null |
classification.free_provider |
boolean |
classification.provider |
string | null |
reputation |
object |
reputation.dnsbl_listed |
boolean |
reputation.threat_level |
string | null |
quality |
object |
quality.score |
integer |
quality.grade |
string |
quality.flags[] |
string[] |
signals |
object |
evidence |
object |
evidence.mx_records[] |
string[] |
evidence.provider |
string | null |
evidence.checked_via[] |
string[] |
evidence.normalized_parts |
object |
evidence.normalized_parts.local_part |
string |
evidence.normalized_parts.domain |
string |
evidence.normalized_parts.base_local_part |
string |
evidence.normalized_parts.tag |
string | null |
evidence.domain_profile |
object |
evidence.domain_profile.tld |
string | null |
evidence.domain_profile.label_count |
integer |
evidence.domain_profile.reserved |
boolean |
evidence.domain_profile.domain_literal |
boolean |
evidence.domain_profile.punycode |
boolean |
evidence.domain_profile.suspicious_reasons[] |
string[] |
evidence.domain_authentication |
object |
evidence.domain_authentication.checked |
boolean |
evidence.domain_authentication.status |
string |
evidence.domain_authentication.spf |
object |
evidence.domain_authentication.spf.exists |
boolean |
evidence.domain_authentication.spf.policy |
string |
evidence.domain_authentication.spf.record |
string | null |
evidence.domain_authentication.dmarc |
object |
evidence.domain_authentication.dmarc.exists |
boolean |
evidence.domain_authentication.dmarc.policy |
string |
evidence.domain_authentication.dmarc.record |
string | null |
evidence.domain_authentication.dmarc.percentage |
integer | null |
evidence.domain_authentication.mta_sts |
object |
evidence.domain_authentication.mta_sts.exists |
boolean |
evidence.domain_authentication.mta_sts.record |
string | null |
evidence.domain_authentication.tls_rpt |
object |
evidence.domain_authentication.tls_rpt.exists |
boolean |
evidence.domain_authentication.tls_rpt.record |
string | null |
evidence.domain_authentication.issues[] |
string[] |
recommendation |
object |
recommendation.signup |
string |
recommendation.marketing |
string |
recommendation.cold_outreach |
string |
deliverability |
object |
deliverability.status |
string |
deliverability.sub_status |
string |
deliverability.safe_to_send |
boolean |
deliverability.mailbox_checked |
boolean |
deliverability.smtp_confirmed |
boolean |
deliverability.domain_accepts_mail |
boolean |
deliverability.accepts_all |
boolean | null |
deliverability.is_role |
boolean |
deliverability.is_free_provider |
boolean |
deliverability.is_disposable |
boolean |
deliverability.is_toxic |
boolean |
deliverability.is_no_reply |
boolean |
deliverability.is_gibberish |
boolean |
suggestions |
object |
suggestions.did_you_mean |
string | null |
limitations[] |
string[] |
tier |
string |
credits_used |
integer |
verified_at |
string |
POST
/v1/email/verify/bulk
Request Body
{
"emails": [
"[email protected]",
"[email protected]",
"[email protected]"
]
}
Verify up to 100 emails in a single API request.
Example Request
curl -H "X-API-Key: your-api-key" -X POST "https://domscan.net/v1/email/verify/bulk" \
-H "Content-Type: application/json" \
-d '{
"emails": ["[email protected]", "[email protected]"]
}'
Example Response
{
"results": [
{
"email": "[email protected]",
"result": "valid",
"result_detail": "mx_verified",
"tier": "basic",
"credits_used": 2
},
{
"email": "[email protected]",
"result": "valid",
"result_detail": "role_based_address",
"tier": "basic",
"credits_used": 2
}
],
"summary": {
"total": 2,
"valid": 2,
"invalid": 0,
"risky": 0,
"unknown": 0,
"pending": 0
},
"credits_used": 4
}
Response Fields
| Field | Type |
|---|---|
results[] |
object[] |
results[] |
object |
summary |
object |
summary.total |
integer |
summary.valid |
integer |
summary.invalid |
integer |
summary.risky |
integer |
summary.unknown |
integer |
summary.pending |
integer |
credits_used |
integer |

