POST https://api.truval.dev/v1/email/verify
Header Value AuthorizationBearer sk_live_...Content-Typeapplication/json
Field Type Required Description emailstring Yes The email address to verify
curl https://api.truval.dev/v1/email/verify \
-H " Authorization: Bearer sk_live_... " \
-H " Content-Type: application/json " \
-d ' {"email":"user@example.com"} '
Field Type Description emailstring The email address that was verified validboolean true if the address passed all checksstatusstring See status values below confidencefloat 0–1 score of deliverability confidence failed_checkstring|null Which layer failed: syntax · disposable · no_mx · smtp disposableboolean Matched against 50k+ throwaway domain blocklist roleboolean Role address — admin@, info@, noreply@ etc free_providerboolean Gmail, Yahoo, Hotmail etc catch_allboolean Server accepts all addresses regardless of mailbox smtp_blockedboolean Provider blocks SMTP probing — Gmail, Outlook, Yahoo mx_foundboolean MX records exist for the domain mx_hoststring|null Primary MX hostname suggestionstring|null Typo correction e.g. "gmail.com" when input was "gnail.com" latency_msnumber End-to-end processing time in milliseconds
Value Meaning deliverableSMTP probe returned 250 — mailbox exists undeliverableSMTP probe returned 550 — mailbox does not exist unknownCould not confirm — server timed out, greylisted, or smtp_blocked is true catch_allServer accepts all addresses — mailbox existence unconfirmable invalidFailed syntax, disposable, or MX check
"email" : " user@example.com " ,
"mx_host" : " mail.example.com " ,
Status Error Meaning 401Missing API keyNo Authorization header 401Invalid API keyKey not found or revoked 400Invalid requestRequest body is missing or malformed 429— Rate limit exceeded
Each request runs through five layers in order. The first failure exits immediately — no wasted compute.
Syntax — regex + RFC 5321 checks (local part length, consecutive dots, etc). Returns in 0ms.
Disposable — KV lookup against 50k+ throwaway domains. Returns in under 1ms.
MX lookup — DNS-over-HTTPS query for MX records, cached 6 hours. Returns in 20–80ms.
SMTP probe — TCP connection to the mail server, RCPT TO check without sending email. 1500ms timeout.
Signals — role detection, free provider flag, typo suggestion. 0ms, pure local logic.
Gmail, Outlook, Yahoo, and iCloud block SMTP probing from all third-party services. This is not a Truval limitation — it affects every email verification provider.
For these domains, Truval verifies the MX records and domain authenticity (layers 1–3), then returns:
A confidence of 0.75 means: the domain is real, not disposable, has valid MX records, but we cannot confirm the specific mailbox. This is the most honest answer possible.