Email Verification API
Assess email syntax, domain mail setup, disposable-address signals, and delivery risk without claiming mailbox existence. Use this reference to choose an operation and integrate its documented response contract.
Operations
GET /v1/email/verify
GET
/v1/email/verify
Query Parameters
| Parameter | Type | required |
|---|---|---|
| string | required | |
| full |
boolean
Default
false
|
optional |
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 |
Example Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/email/verify?email=user%40company.com&full=example.com"
Example Response
{
"email": "[email protected]",
"normalized_email": "[email protected]",
"result": "valid",
"result_detail": "mx_verified",
"message": "string",
"risk": "low",
"confidence": 0.93,
"confidence_level": "high",
"decision": "accept",
"reasons": [
"mx_found",
"not_disposable",
"mailbox_not_checked"
],
"verification": {
"syntax_valid": true,
"mx_found": true,
"null_mx": false,
"mx_records": [
"aspmx.l.google.com"
],
"smtp_verified": null,
"mailbox_exists": null,
"catch_all": null,
"full_inbox": null,
"smtp_provider": null
},
"classification": {
"disposable": false,
"disposable_confidence": "high",
"role_based": false,
"role_type": "string",
"free_provider": true,
"provider": "gmail.com"
},
"reputation": {
"dnsbl_listed": false,
"threat_level": "high"
},
"quality": {
"score": 95,
"grade": "A",
"flags": [
"FREE_PROVIDER"
]
},
"signals": {},
"evidence": {
"mx_records": [
"string"
],
"provider": "google_workspace",
"checked_via": [
"worker"
],
"normalized_parts": {
"local_part": "user",
"domain": "company.com",
"base_local_part": "user",
"tag": null
},
"domain_profile": {
"tld": "com",
"label_count": 2,
"reserved": false,
"domain_literal": false,
"punycode": false,
"suspicious_reasons": []
},
"domain_authentication": {
"checked": true,
"status": "strong",
"spf": {
"exists": true,
"policy": "fail",
"record": "v=spf1 include:_spf.company.com -all"
},
"dmarc": {
"exists": true,
"policy": "reject",
"record": "v=DMARC1; p=reject; pct=100",
"percentage": 100
},
"mta_sts": {
"exists": true,
"record": "v=STSv1; id=20260506"
},
"tls_rpt": {
"exists": true,
"record": "v=TLSRPTv1; rua=mailto:[email protected]"
},
"issues": []
}
},
"recommendation": {
"signup": "allow",
"marketing": "send",
"cold_outreach": "send"
},
"deliverability": {
"status": "deliverable",
"sub_status": "mx_verified",
"safe_to_send": true,
"mailbox_checked": false,
"smtp_confirmed": false,
"domain_accepts_mail": true,
"accepts_all": null,
"is_role": false,
"is_free_provider": false,
"is_disposable": false,
"is_toxic": false,
"is_no_reply": false,
"is_gibberish": false
},
"suggestions": {
"did_you_mean": "[email protected]"
},
"limitations": [
"basic_tier_does_not_confirm_mailbox_existence"
],
"tier": "basic",
"credits_used": 2,
"verified_at": "2026-04-15T12:00:00Z"
}
POST /v1/email/verify/bulk
POST
/v1/email/verify/bulk
Body Parameters
| Parameter | Type | required |
|---|---|---|
| emails | string[] | required |
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 |
Example Request
curl -X POST "https://domscan.net/v1/email/verify/bulk" \
-H "Content-Type: application/json" \
-H "X-API-Key: $DOMSCAN_API_KEY" \
-d '{
"emails": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"full": false
}'
Example Response
{
"results": [
{}
],
"summary": {
"total": 3,
"valid": 2,
"invalid": 0,
"risky": 1,
"unknown": 0,
"pending": 0
},
"credits_used": 6
}