Your free credits are for real users, not bots.

One API call checks the email, phone and IP of every new signup, spots bot waves across your recent signups, and tells you: allow, review or block.

Examples:

Live demo, nothing is stored · 250 free checks a month · No credit card · No $99 minimum

Risk score
85
block

someone@mailinator.com

Reasons
  • Disposable email providerdisposable_domain
  • Domain has a mail serverok
  • Valid email addressok
The problem

Every fake signup costs real money.

Farmed free credits

Throwaway accounts use your free credits to the last one. Every generation, transcript or API call costs you the same compute as for a real user.

Endless free trials

Same person, new throwaway address, new trial. Again and again, while your onboarding emails bounce and hurt your sender reputation.

Polluted numbers

Fake accounts inflate your signup numbers and distort activation and conversion, so you optimise for the wrong thing.

How we catch them

Fake signups come in waves. We see the wave.

Most checks look at one signup at a time. SignupVet also looks at your recent signups, so a wave is caught even when every single signup looks harmless on its own.

Same IP, again and again

3 or more earlier signups from the same IP within 10 minutes. signup_velocity_ip

Same network

10 or more signups from the same network within 10 minutes, even with changing IPs. signup_velocity_network

Numbered addresses

max1@, max2@, max3@ … within an hour. email_series_pattern

One phone, many accounts

The same phone number with a different email within 24 hours. phone_reused

One company domain, many accounts

5 or more addresses on the same company domain within 10 minutes. Big mail providers are excluded. signup_velocity_domain

Plus every single signup

Each signup is still checked on its own: throwaway email, dead mail server, Tor, VPN, datacenter and premium-rate numbers.

Do the math

How much are fake signups costing you?

Put in your own numbers. The values below are only an example, not data from real companies. How to estimate your share of fake signups.

Fake accounts per month400
Cost per month$200
Cost per year$2,400
What we check

Every signal, one score.

Built for small SaaS teams. In a small test with 40 deliberately tricky email addresses, SignupVet agreed with two established email verification services in 34 of the 36 cases where both of them agreed.

Email

Disposable providers, typos of popular domains, dead mail servers and placeholder addresses.

bot123@mailinator.comblock
anna@outlok.comtypo
anna@gmail.comallow

Phone

Valid number, country and line type. Premium-rate numbers are blocked, toll-free ones flagged.

+41 79 … mobileallow
+1 800 … toll-freereview
+44 909 … premiumblock

IP and bot waves

Tor, known VPNs, datacenters, and many signups from one network within minutes.

Tor exit nodeblock
5 signups from one IPreview
Home broadbandallow
How it works

Three lines in your signup handler.

1

Send the signup

Email, phone and IP, whatever you collect. One request.

2

Get one risk score

0 to 100, plus the reason codes that led to it.

3

Allow, review or block

allow < 30review 30–79block ≥ 80
signup.tsNode, Next.js, Python, any backend
// inside your signup handler
const res = await fetch("https://www.signupvet.com/score", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ email, phone, ip: req.ip }),
});
const { recommendation, reason_codes } = await res.json();

if (recommendation === "block") return reject("Please use a real email address.");
if (recommendation === "review") await flagForReview(user, reason_codes);
Why SignupVet

One API instead of three.

Email, phone and IP in one call

Disposable domains, dead mail servers, VoIP and premium numbers, datacenters, VPNs and Tor.

One score, clear reasons

Every answer says why: disposable_domain, ip_datacenter_asn, phone_ip_country_mismatch.

Catches bot waves

Five signups from one IP, or max1@, max2@, max3@ within minutes? We look at your recent signups, not just the current one.

Privacy by design

We never store your users' email, phone or IP in clear text. Logs keep masked values only and are deleted after 90 days.

One signup = one check

Checking email, phone and IP together counts once. No credit maths.

Start small

Free tier, then $15 packs or a monthly plan. Pay for what you use.

Use cases

Wherever strangers can sign up.

AI apps with free credits

Hand out free generations to people who try your product, not to scripts that farm them.

Free-trial abuse

Stop people from opening a new trial every 14 days with a new throwaway address.

Lead quality

Filter junk from demo requests and lead forms before they reach your CRM.

Marketplaces and communities

Keep fake sellers, buyers and spam accounts out before they list, post or message anyone.

Is it a fit?

Honest about what we do.

A good fit if you

  • give away free credits, a free trial or a free API quota
  • run your own signup flow and can add one API call
  • want reasons for every decision, not a black box

Not the right tool if you

  • want to clean an existing email list in bulk (we check signups one by one)
  • need to know whether a Gmail inbox really exists
  • are looking for payment or chargeback fraud protection
Pricing

Start free. Pay when it works for you.

Every plan includes every check. Cancel any time.

Free

$0 / month

For side projects and trying it out. No credit card.

  • 250 checks / month
  • Email, phone and IP checks
  • Bot-wave detection
  • Dashboard and logs
Get 250 free checks

Growth

$199 / month

For products with thousands of signups a month.

  • 25,000 checks / month
  • Email, phone and IP checks
  • Bot-wave detection
  • Dashboard and logs
  • Own block/allow lists and thresholds
  • Webhooks and Slack alerts
Get started

Scale

Custom

High volume, invoicing and an agreed SLA.

  • Custom volume
  • Email, phone and IP checks
  • Bot-wave detection
  • Dashboard and logs
  • Own block/allow lists and thresholds
  • Webhooks and Slack alerts
Talk to us
No subscription? Buy 1,000 checks for $15. They never expire and are used once your monthly checks run out.
Start free
Docs

A small API on purpose.

EndpointChecks
POST /scoreEmail, phone and IP combined, with bot-wave detection
POST /verify/emailSyntax, domain, mail server, disposable, shared mailbox
POST /verify/phoneValidity, country, line type
POST /verify/ipLocation, network, datacenter, VPN, Tor

Authenticate with Authorization: Bearer <key>. Keys are created in the dashboard.

Read the docs Examples on GitHub

Responseevery endpoint
{
  "request_id": "req_…",
  "status": "risky",          // valid · invalid · risky · unknown
  "risk_score": 45,            // 0–100
  "risk_level": "medium",      // low · medium · high · critical
  "recommendation": "review",  // allow · review · block
  "reason_codes": ["ip_datacenter_asn"],
  "signals": { … },           // raw data per check
  "confidence": 75,
  "latency_ms": 4
}
FAQ

Questions founders ask.

How accurate is it?

Checks like "does this domain exist", "is this a known disposable provider", "is this IP a datacenter or Tor" are facts, not guesses. What we cannot see: whether a Gmail inbox really exists, or a residential proxy. That is why there is a review band between allow and block, and every answer comes with its reasons, so you stay in control. In a small test with 40 deliberately tricky email addresses we agreed with two established email verification services in 34 of the 36 cases where both of them agreed; the gap was exactly that inbox question.

What data do you store?

For your dashboard we keep a masked copy of each check (for example m***@gmail.com, 178.197.224.x) and one-way fingerprints for bot-wave detection. Full email addresses, phone numbers and IPs are never stored.

Can I override decisions?

Always. We return a recommendation and the score; your code decides what happens. You can simply treat "review" as "allow" at first and tighten later. On paid plans you can also set your own thresholds and keep block and allow lists of email domains, addresses, phone numbers and IPs in the dashboard.

Is it ready for production?

The API is small and stable, and a check usually answers in well under 50 milliseconds, so your signup form does not feel slower. We are in early access, so talk to us before you send large volumes.

Do you support webhooks?

Yes, on paid plans. Every check returns its result immediately, and you can also get a signed webhook (or a Slack message) whenever a signup is blocked or sent to review.

What counts as a check, and do packs expire?

One API call is one check, even if it covers email, phone and IP together. Requests that fail validation are free. Pack checks never expire and are used after your monthly checks.

Your next signup could be a bot.

Create an account, grab an API key and check your first signup in under ten minutes.

Or write to support@signupvet.com