Use Case

Stop Trial Abuse Before It Starts

Disposable emails, bot-generated accounts, domains registered yesterday — they're all gaming your free tier. One API call catches them at signup.

No credit card · No overage charges · Credits never expire

The problem

The Real Cost of Fake Signups

20-40%

of free trials are throwaway accounts

$0

revenue from disposable email signups

Inflated

metrics that mislead your roadmap

Every fake signup distorts your activation funnel, wastes onboarding emails, and costs you infrastructure. The fix takes one API call at registration.

How it works

Four Layers That Catch What Regex Can't

Disposable Detection

5,400+ throwaway domains blocked. Updated regularly from open-source feeds. The list_updated field proves the list isn't stale.

Gibberish Detection

Bot-generated locals like asdkjfh38274@ get classified by pattern: keyboard_sequence, repeated_chars, random_characters. Not just a boolean — a pattern type your rules engine can use.

Domain Age

Domains registered days ago are a red flag. The risk_flag field returns newly_registered (≤30 days) or young_domain (≤90 days). Fraud teams can set their own threshold on age_days.

Abuse Patterns

Bot-generated patterns (auto-gen, crawler, scraper), toxic local parts, and known abuse domains. Catches the accounts that slip past disposable detection.

In practice

One Call Catches Three Signals

Response for signup8374@tempmail.org

ResponseJSON
{
  "score": 5,
  "verdict": "invalid",
  "checks": {
    "disposable": { "is_disposable": true, "list_updated": "2026-04-26" },
    "gibberish": { "is_gibberish": true, "score": 22, "pattern": "random_characters" },
    "domain_age": { "age_days": 12, "risk_flag": "newly_registered" },
    "abuse": { "is_toxic": false, "type": null }
  }
}

Three independent signals confirm this is a throwaway account. The list_updated date proves your protection isn't running on a stale list from 2019.

ImplementationJavaScript
const result = await fetch('/api/v1/verify', { ... })

if (result.checks.disposable.is_disposable ||
    result.checks.gibberish.is_gibberish ||
    result.checks.domain_age.risk_flag === 'newly_registered') {
  blockSignup('This email address is not accepted')
}

Comparison

Why Disposable Detection Alone Isn't Enough

Feature
MailSentry
ZeroBounceNeverBounce
Disposable detection5,400+ domainsYesYes
Gibberish pattern classificationYes — 5 pattern typesNoNo
Domain age checkYes — age_days + risk_flagNoNo
Abuse pattern detectionYesLimitedNo
List freshness transparencylist_updated fieldNot disclosedNot disclosed
Free plan1,000/mo recurring100/mo1,000 one-time

Competitor capabilities reflect publicly listed features as of April 2026. Details may vary by plan tier.

Stop bad emails. Pay 80% less.

1,000 free checks/moNo credit card≤3% bounce guarantee