Verify an email address
Synchronously check whether one email address is deliverable. The reachability verdict is the headline outcome: safe (the mailbox was positively confirmed — requires an external escalation, so rarely returned today), risky (routable but low quality, such as a spam-listed domain or a role/shared inbox), invalid (undeliverable: bad syntax, no mail server, a disposable domain, or an address that hard-bounced on a real send before), or unknown (deliverable-looking but not confirmed without sending, the common default). It also returns a 0–100 score, a stable reasonCode twinned with the prose reason, a suggestedCorrection for likely typos, and the syntax/mx/signals evidence. The result is computed per request: it is not stored and has no id.
Authorizations
Org-scoped Norbelys API key. Create one in Settings → API keys and send it as Authorization: Bearer ak_….
Headers
Opt-in idempotency for a safely retried write: reuse the same key to replay the original result for 24h instead of re-executing. Recommended on every POST.
255Body
The request body for a synchronous email verification: one address to check.
Response
OK
A synchronous email-verification result: the reachability rollup with score/reason/reasonCode, plus the syntax/mx/signals evidence. Computed per request — it is not stored and has no id.
When this verdict was computed (RFC 3339). Verdicts are cached for 24h, so this can be up to a day old.
"2026-07-04T09:00:00.000Z"
The normalized (trimmed, lowercased) address that was checked.
DNS / mail-exchanger checks.
The single deliverability verdict. "safe" = the mailbox was positively confirmed (rarely returned); "risky" = routable but low quality — a spam-listed domain, a role/shared inbox, or an accept-all domain; "invalid" = undeliverable — bad syntax, an unregistrable TLD, a disposable domain, no mail server, or a previously bounced address; "unknown" = a deliverable-looking address whose mailbox could not be confirmed without sending (the common default).
safe, risky, invalid, unknown "unknown"
A short, human-readable explanation of the verdict.
"Deliverable format on a domain that accepts mail (hosted on google)."
Stable machine-readable code for the dominant reason (the companion to the prose reason). Values: invalid_syntax (not a valid address format) · typo_suspected (a likely correction exists — see suggestedCorrection) · invalid_tld (the domain suffix is not a registrable IANA/public-suffix entry) · disposable (throwaway / temp-mail domain) · no_mail_server (the domain has no MX) · previously_bounced (a real send to this address hard-bounced before — it WILL bounce again) · spam_listed (the domain is on a spam/abuse blocklist) · undeliverable (an external check rejected the mailbox) · accept_all (the domain accepts mail for any local part) · risky_tld (on a frequently-abused TLD and not reputable) · gibberish_local (the local part looks random) · role_account (a role / shared inbox like info@ or sales@) · deliverable (an external check confirmed the mailbox) · deliverable_unconfirmed (deliverable format on a domain that accepts mail, mailbox not confirmed).
invalid_syntax, typo_suspected, invalid_tld, disposable, no_mail_server, previously_bounced, spam_listed, undeliverable, accept_all, risky_tld, gibberish_local, role_account, deliverable, deliverable_unconfirmed "deliverable_unconfirmed"
Quality and confidence score from 0 to 100; higher means more likely a real, deliverable address.
0 <= x <= 10088
The individual quality signals behind the verdict.
A suggested correction when the address looks like a typo, or null.
Syntax checks.
Always "email_verification" — identifies the resource type.