TrialShield
Sign inStart free
New · Account-linking graph 2.0Read the announcement

Stop trial abuse
before it starts.

Real-time risk scoring with 100+ signals. Detect disposable emails, VPN/Tor users, device farms, and coordinated attacks — all in under 100ms.

Start free Read the docs· Free trial available on request
app.trialshield.cc / events
Live event stream
14,238 / hour
evt_8a2fTrial signupUS 4
evt_9c3dTrial signupNL · VPN87
evt_1b4eLoginBR 12
evt_7d2aTrial signupRU · VPN64
evt_3f1cCheckoutDE 8
Selected event
evt_9c3d8f
87/ 100
Risk score
Device fingerprintReused (3×)
NetworkDatacenter VPN
Account cluster7 linked
Browser integrityHeadless
Trusted by engineering teams
LINEAR
VERCEL
PLAID
RAMP
NOTION
RETOOL
POSTHOG
CHRONOSPHERE
// 17 detection modules

Every signal you need.
One API call.

Identity, network, payment, behavior, and content signals — combined into a single 0–100 risk score in under 100ms.

IDENTITY01
Email Intelligence

MX/SPF/DMARC validation, disposable & subaddressing detection, role-based mailbox flags, free-provider classification.

Learn more
IDENTITY02
Phone Intelligence

Carrier lookup, line-type detection (VoIP, prepaid, virtual), country mismatch, SIM-swap heuristics.

Learn more
NETWORK03
IP & Network

ASN reputation, datacenter/residential proxy detection, Tor exits, hosting-provider blocklists, geo-velocity.

Learn more
NETWORK04
Device Fingerprinting

Stable visitorId across incognito, cookie clears, and VPN switches. Canvas, WebGL, audio, fonts, TLS JA4.

Learn more
PAYMENT05
Stripe Card Signals

BIN intelligence, prepaid/gift-card detection, country mismatch with billing, repeated card hashes across accounts.

Learn more
IDENTITY06
OAuth Ghost

Spot freshly-minted Google/GitHub/Apple accounts created minutes before signup — a top trial-abuse signal.

Learn more
CONTENT07
Content Analysis

Profanity, gibberish, and disposable-pattern detection in names, workspace slugs, and free-form fields.

Learn more
CONTEXT08
Context Signals

Referrer, UTM coherence, language/timezone mismatch, accept-language vs IP geo, suspicious entry paths.

Learn more
BEHAVIOR09
Behavioral Biometrics

Keystroke dynamics, mouse entropy, copy-paste detection, time-on-form. Catches automation that fingerprints can't.

Learn more
BEHAVIOR10
Graph Analysis

Account-linking graph: shared device, IP, card, or behavior. Surface the cluster before it converts to abuse.

Learn more
SCORING11
ML Risk Scoring

Ensemble model trained on millions of trial signups. 0–100 score with full signal attribution. No black box.

Learn more
ACTION12
Adaptive Challenges

Step up to email OTP, phone verify, or invisible captcha — only when the score warrants it. No friction for real users.

Learn more
ACTION13
Post-Signup Monitoring

Track behavior after the trial starts. Catch second-order abuse: trial extension, feature scraping, mass invites.

Learn more
COMPLIANCE14
GDPR & CCPA

EU data residency, automatic PII hashing, one-click data export & erasure. SOC 2 Type II and ISO 27001 in flight.

Learn more
PLATFORM15
Data Hub

Stream events to Snowflake, BigQuery, S3, or your warehouse. Webhooks for every decision. SQL access to raw signals.

Learn more
PLATFORM16
Performance & DX

14kb browser SDK, p99 under 100ms globally, SDKs for TS, Go, Python, Ruby, Rust, Java. Sandbox with one CLI command.

Learn more
ACTION17
Rules Engine

Configurable signal weights, shadow mode, A/B testing, versioning, audit log. Tune without redeploying.

Learn more
<100ms
p99 API latency
99.5%
Returning-device accuracy
14kb
Browser SDK gzipped
100+
Risk signals
// Drop-in integration

One script tag.
One server call.

Identify the device on the client. Verify on your server before letting a trial start. No form fields. No friction. No false positives.

Read the docs Get an API key
server.tsclient.htmlresponse.json
// Verify the trial signup before creating the account
import { TrialShield } from "@trialshield/node";

const ts = new TrialShield(process.env.TS_KEY);

export async function signup(req) {
  const risk = await ts.verify({
    visitorId: req.body.visitorId,
    email:     req.body.email,
  });

  if (risk.score > 75) {
    return deny("trial_abuse");
  }
  return createAccount(req.body);
}
// Customer story

“We were leaking $840k a year to trial-cycling. TrialShield caught 94% of it in the first week — and our legitimate signup conversion went up because we removed the captcha.”

Anonymous customer
SaaS, beta program

Stop trial abuse without
blocking real users.

Free trial available on request. No credit card. No sales call.

Start free Read the docs