Identity & Verification · DomScan product

Email Verification API

Assess email syntax, domain mail setup, disposable-address signals, and delivery risk without claiming mailbox existence.

What you get

Assess email syntax, domain mail setup, disposable-address signals, and delivery risk without claiming mailbox existence.

SynchronousBulkRESTMCPSDKInteractive tool

Choose this product when

Who it is for

Use the suite to improve form handling, prioritize manual review, enrich organizations, and connect website-declared assets.

Choose this product when

Choose this for syntax, domain mail setup, disposable-address, risk, and limitation signals. It does not prove mailbox existence.

What you get

Assess email syntax, domain mail setup, disposable-address signals, and delivery risk without claiming mailbox existence.

Endpoints

Review the supported operations, inputs, outputs, execution modes, and response limits before integrating.

GET /v1/email/verify View API reference
POST /v1/email/verify/bulk View API reference

Credits and authentication

2 Authentication required. Check the operation reference for the exact cost and any per-item pricing.

Example operation

Use documented operations to collect, assess, enrich, verify, compare, protect, or monitor public evidence.

GET /v1/email/verify

Query Parameters

Parameter Type required
email 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=false"

Example Response

{
  "email": "[email protected]",
  "normalized_email": "[email protected]",
  "result": "valid",
  "result_detail": "mx_verified",
  "message": "Request completed",
  "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": "domain",
    "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": [
      "example"
    ],
    "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-08-27T12:00:00Z"
}

Limits and evidence boundaries

Unknown means the requested fact could not be determined from the available evidence.
Confidence describes evidence strength for the reported observation, not certainty about the real-world entity.
Bulk operations process multiple supported inputs while preserving documented item-level outcomes.
Public signals do not prove legal identity or ownership.
Email checks do not prove that a specific mailbox exists.

Reviewed 2026-08-22

Frequently asked questions

Where can I find the Email Verification request and response reference?

Use the API reference for Email Verification to review parameters, response fields, examples, status codes, and supported operation modes.

How should I interpret unknown or incomplete results from Email Verification?

Unknown or partial results mean that the requested evidence could not be fully determined. Keep the result state, confidence, freshness, and limitations in downstream decisions.

How is Email Verification priced?

Pricing depends on the operation and execution mode. Check the endpoint reference for the current credit cost, authentication requirement, and per-item rules.

Used by people at amazing companies

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeMotionElementsLLM Pulse