Email

Production-ready email validation with tiered approach and classification

Validates email addresses using a multi-tier approach for cost optimization:

  1. Format validation (free)
  2. DNS MX record validation (nearly free)
  3. Disposable email detection (free)
  4. SMTP validation via MailTester Ninja (paid)
  5. Email classification as organizational vs personal (free)

The classification uses domain parsing, MX fingerprinting, RDAP lookups, and free-email domain detection to determine if an email is likely organizational (business/company) or personal (individual).

Returns clear validation status with detailed reasoning and classification.

post/api/email/email-validation-enhanced

Request

  • Base URL: https://api.kolect.com
  • URL: https://api.kolect.com/api/email/email-validation-enhanced
  • Auth: HTTP bearer

Request body

emailstring email required

The email address to validate

skipExpensiveValidationboolean

Skip SMTP validation to reduce costs (stops at DNS/disposable checks)

Example request

{
  "email": "user@example.com"
}

Response

Email validation completed

validboolean

True if email is safe to send to, false otherwise

confidence'high' | 'medium' | 'low'

Confidence level in the validation result

result'valid' | 'invalid' | 'risky' | 'unknown'

Detailed validation result

reasonsstring[]

List of reasons for the validation result

emailstring

The normalized email address

domainstring

The domain part of the email

isDisposableboolean

Whether the email uses a disposable domain

is_organizationalboolean

Simple boolean indicating if the email is organizational (true) or personal/unknown (false)

timestampstring date-time

Example response

{
  "valid": true,
  "confidence": "high",
  "result": "valid",
  "reasons": [
    "Valid format",
    "Domain has MX records",
    "SMTP validation passed"
  ],
  "email": "user@example.com",
  "domain": "example.com",
  "is_organizational": true,
  "classification": {
    "classification": "organizational",
    "confidence": 0.85,
    "reasons": [
      "Domain example.com is a custom domain",
      "MX records suggest hosting via: google"
    ],
    "signals": {
      "domain": "example.com"
    }
  },
  "timestamp": "2025-01-27T10:30:00.000Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.