Signup protection

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.

is_disposable

Disposable

Throwaway inboxes (Mailinator, Guerrilla Mail, and 57,000+ more) used to grab free trials anonymously.

is_free

Free / personal

Gmail, Outlook.com, Yahoo and other consumer providers — often fine, but a signal for B2B products.

is_role

Role account

Shared inboxes like info@ or admin@ that aren't a real person — common in low-quality or bot signups.

confidence

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

Protect your signups today

Free tier — 100 checks/month, no credit card.

Get Free API Key