Stop fake signups and free-trial abuse
Fake accounts burn your free tier, skew your metrics, and hurt deliverability. EmailKind flags disposable, role, and free-email addresses at registration — in one API call, before the account is created.
Four signals of a risky signup
Each classification returns boolean flags and a confidence score. Combine them into your own signup policy.
Disposable
Throwaway inboxes (Mailinator, Guerrilla Mail, and 57,000+ more) used to grab free trials anonymously.
Free / personal
Gmail, Outlook.com, Yahoo and other consumer providers — often fine, but a signal for B2B products.
Role account
Shared inboxes like info@ or admin@ that aren't a real person — common in low-quality or bot signups.
Low confidence
Unrecognized or misconfigured domains score low — a cue to challenge rather than trust.
A simple decision matrix
Turn the signals into block, challenge, or allow — tune the thresholds to your risk tolerance.
| Signal | Recommended action |
|---|---|
| is_disposable = true | Block |
| is_role = true | Challenge |
| is_free = true && confidence ≥ 0.8 | Challenge |
| is_business = true && is_custom_domain = true | Allow |
| confidence < 0.5 | Challenge |
This is a starting point. See the full signup-gating guide.
One call, before the account is created
Passive DNS analysis — no emails sent, sub-50ms. Drop it into your registration endpoint.
const r = await fetch(
"https://emailkind.com/v1/classify?email=" + email,
{ headers: { Authorization: "Bearer sk_live_..." } }
).then(res => res.json());
const c = r.classification;
if (c.is_disposable || c.is_role) return block(); // throwaway / shared inbox
if (c.is_free && r.confidence >= 0.8) return challenge(); // personal email
return allow(); // business email