validkit

Email validation

Syntax validation, live DNS MX checks, disposable-domain detection, role-account and free-provider flags, and typo suggestions. 1 credit per lookup.

Request

POST /api/v1/validate/email
Authorization: Bearer vk_live_...
Content-Type: application/json

{"email": "jane@acme.com"}

Response

{
  "success": true,
  "result": {
    "type": "email",
    "input": "jane@acme.com",
    "valid": true,
    "normalized": "jane@acme.com",
    "local_part": "jane",
    "domain": "acme.com",
    "deliverability": "deliverable",
    "is_disposable": false,
    "is_role_account": false,
    "is_free_provider": false,
    "did_you_mean": null,
    "mx_records": ["aspmx.l.google.com", "alt1.aspmx.l.google.com"],
    "confidence": "medium",
    "checks": { "syntax": "pass", "mx": "pass", "disposable": "pass", "smtp": "skipped" },
    "notes": ["SMTP mailbox verification was not performed; ..."]
  },
  "credits": { "used": 1, "remaining": 499 }
}

Field guide

deliverabilitydeliverable | risky | undeliverable | unknown. The roll-up verdict — see how it's derived below.
checks.syntaxRFC-style syntax: structure, length limits, dot placement in the local part.
checks.mxDomain publishes MX records (or an RFC 5321 implicit-MX A record, flagged in notes). NXDOMAIN and null-MX domains fail.
is_disposableDomain is on our curated list of disposable/temp-mail providers. We only flag domains we recognize — no guessing.
is_role_accountLocal part is a role address (info@, support@, billing@…). Risky targets for outreach, fine for receipts.
is_free_providerGmail, Outlook, Yahoo, iCloud, Proton, and friends.
did_you_meanTypo suggestion when the domain is one edit away from a major provider (gmial.com → gmail.com).
mx_recordsThe domain's MX hosts, priority order.
confidenceCapped at medium without an SMTP probe — see below.

How the verdict is derived

  • undeliverable— syntax fails, the domain doesn't exist, it has no mail infrastructure, or it publishes a null MX (RFC 7505) explicitly refusing mail.
  • risky — mail is technically deliverable but the domain is a disposable provider.
  • deliverable — the domain demonstrably accepts mail.
  • unknown— DNS couldn't be checked; retry later.

Honest limitations

We do not currently probe the SMTP mailbox, so deliverable means the domainaccepts mail — not that this exact mailbox exists. That's why checks.smtp reports "skipped" and confidence caps at medium. Most competitors run the same checks and call it "verified"; we'd rather label it. Mailbox-level SMTP probing is on the roadmap and will appear in the same field when it ships, so nothing about your integration changes.

Try it

Live request against the real engine — no signup needed. Rate-limited; sign up for 500 free credits.