Developer Reference
Email Verification API Documentation
Email Verification API Documentation: 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 (1 credit) · 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 |
Pricing
| Tier | Cost | Checks included |
|---|---|---|
| Basic Check | 1 credit | Syntax, MX, disposable, role-based |
Example Request
curl "https://domscan.net/v1/email/verify?email=user@company.com"
Example Response
{
"email": "user@company.com",
"normalized_email": "user@company.com",
"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": 1
}
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": [
"user@company.com",
"ops@company.com",
"bounce@tempmail.org"
]
}
Verify up to 100 emails in a single API request.
Example Request
curl -X POST "https://domscan.net/v1/email/verify/bulk" \
-H "Content-Type: application/json" \
-d '{
"emails": ["user@company.com", "ops@company.com"]
}'
Example Response
{
"results": [
{
"email": "user@company.com",
"result": "valid",
"result_detail": "mx_verified",
"tier": "basic",
"credits_used": 1
},
{
"email": "ops@company.com",
"result": "valid",
"result_detail": "role_based_address",
"tier": "basic",
"credits_used": 1
}
],
"summary": {
"total": 2,
"valid": 2,
"invalid": 0,
"risky": 0,
"unknown": 0,
"pending": 0
},
"credits_used": 2
}
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 |