Portreeve

Stop trial abuse
and AI-driven
credit farming.

Trial abuse, AI credit farming, self-referrals and coupon stacking are one move: someone signing up again and again. One API call links the accounts and returns allow, review or block, with the reason.

1,000 screenings a month freeNo card to startLive in one API call

Standing at the gate for

ErnestVantric

Sound familiar?

You built a generous free tier. Someone found it.

Every one of these is the same move: one person pretending to be many.

Free trials

Your free tier has regulars

Same person, new email, every two weeks. A one-trial-per-email rule stops nobody who owns a second inbox.

Every repeat trial is compute you pay for and a signup you count as growth.

AI credits

Your model bill has a stranger in it

Scripts spin up accounts in bulk to mine your free credits. By the time the usage graph looks odd, the tokens are spent.

You pay inference for users who were never going to pay you.

Referrals & promos

Your referral program pays people to refer themselves

A second account on the same card claims the bonus. A launch code gets redeemed forty times by one household.

Rewards meant to buy customers go to one person, over and over.

Why Portreeve

Your tools judge accounts. Abusers are people.

Everything you already run is good at its own job. None of it can tell that two of your accounts belong to the same person — and that is the only question abuse turns on.

Fake signups

What you use now

CAPTCHA and a disposable-email list

Stops bots. Waves through a person with forty real Gmail addresses.

Portreeve

Links the accounts by device, card and email, and flags the fortieth.

Trial abuse

What you use now

One trial per email address

A new inbox is a new trial.

Portreeve

One trial per person, however many inboxes they own.

Card testing

What you use now

Stripe Radar

Scores each payment well. Doesn't know this is the same device's sixth card.

Portreeve

Counts distinct cards per device and per identity, across your accounts.

Self-referrals

What you use now

Your referral tool checks the two account IDs differ

Two accounts, one human, one card.

Portreeve

Checks the two sides are different people, and holds the payout if not.

Coupon abuse

What you use now

One redemption per customer account

Per account is not per person.

Portreeve

Counts redemptions of each code per identity, not per login.

Reviewing it all

What you use now

CSV exports and a gut call

No record of why anything was stopped.

Portreeve

A review queue with the reason on every decision.

It remembers
what it judged.

Portreeve sits between your customer and your product — screening every event inline, returning a verdict, and remembering it in a per-tenant abuse graph.

Your customerEvery signup, login, and checkout they fire.
Portreeve — the gateScreens each event inline · allow / review / block.
signup
trial_start
trial_convert
checkout_attempt
referral_claim
coupon_redeem
login
The abuse graphEvery identity it has already judged.
Your productRegistration, purchase — reached only by the cleared.

When you're under attack,
know what to do next.

See the decision, follow the evidence, and act. Explore an example below to see how event history becomes a clear next step.

Decision workspace
Decision evidencereview

One device. More than one trial.

A fresh email does not mean a fresh start. Shared device history connects this trial to earlier activity.

  • Repeated trials on linked identities
  • Multiple accounts share this device

Sent to your review queue

Inspect the evidence and record your decision in one place.

Illustrative data. Your verdicts use your own event history.

Try it with your traffic

Blocked once,
back in five minutes.

Ban an abuser and they return on a fresh burner email. A lookup API forgets each request, so it falls for it every time. Portreeve keeps your history, so the same device is judged against everything it has done before — no matter how the email changes.

SeenEmailDeviceVerdict
09:14a.nguyen@gmail.comdtk_7f2a91allow
11:02jrt91@mailinator.comdtk_7f2a91review
11:05k85x@guerrillamail.comdtk_7f2a91review
11:09temp9@sharklasers.comdtk_7f2a91block
The gate — streams of traffic approach a portcullis; most pass through, one is held for review, one is stopped

One device, four burner emails — the verdict hardens from allow to review to block.

One request.
One verdict.

Drop one call into your signup, trial, checkout, login, referral or coupon path. It returns before you commit the action, with the reason codes that produced it.

server.ts
import { Portreeve } from "portreeve";
const gate = new Portreeve(process.env.PORTREEVE_SECRET_KEY!);

// at signup, before you create the account
const { verdict, reasons } = await gate.verdict({
  event_type: "signup",
  email: input.email,
  ip: req.ip,
  device_token: input.device_token,
});

if (verdict === "block") return reject(reasons);
1

One call, before you commit

Place one verdict call before the action. It returns a clear decision and the reason codes behind it, so your application can act before committing the signup or checkout.

3

Allow, review, or block

One clear decision plus the reason codes behind it. No risk score to interpret, no recommended_action to second-guess.

Pricing.

The engine is the same on every plan. Price scales with your monthly screening volume, overage rates, and support needs.

Free$0/mo1,000 screenings/mo · hard limit
Indiemost start here$19/mo10,000 screenings/mo · automatic overage
Growth$79/mo50,000 screenings/mo · automatic overage
Scale$249/mo250,000 screenings/mo · automatic overage
Free has a hard limit of 1,000 monthly billable screenings. Live screening pauses until you upgrade or the UTC month resets.Paid plans continue screening with automatic USD overage after the included allowance.See the full ladder →

Put a portreeve
at your gate.

Connect your signup or checkout flow, see the evidence behind each verdict, and give your team one place to resolve the cases that need a closer look.

Start free with GoogleFree tier · no card to start · 1,000 screenings/month