Guides
Stop resource abuse
Catch free-tier farming of AI tokens, API calls, credits or any other metered resource.
Your own limits stop one account from using too much. They can't see one person running ten free accounts. The Usage Screening scenario compares each account's usage with the accounts linked to it (same device, look-alike email, payment method or phone), with its age and with its own pace.
You keep counting usage and enforcing limits as you do today. isCredible only needs a snapshot now and then.
Send usage with any verify call#
Add a usage object (or an array, one per metric) with the user's current total and limit:
const result = await iscredible.verify(
{
eventType: "usage",
userId: user.id,
deviceId: session.deviceId,
ip: req.ip,
accountCreatedAt: user.createdAt,
usage: { metric: "ai_tokens", used: 85000, limit: 100000, window: "month" }
},
{ scenarioId: "SYS_USAGE_SCREENING_001" }
);There are no special moments to remember. Any timing works: more often just means fresher data.
Let the SDK pace it#
Each answer says when to check again: usage[].recheckAfter holds a usage amount and a time, whichever comes first. Trusted users get long gaps; risky users short ones. The SDK applies this for you, so you can call it before every expensive action and it only reaches the API when needed:
const { action, reasons } = await iscredible.checkUsage(
user.id,
{ metric: "ai_tokens", used: tokensUsed, limit: 100000 },
{ deviceId: session.deviceId, ip: req.ip, accountCreatedAt: user.createdAt }
);
if (action === "DENY") return res.status(429).json({ error: "Free limit reached" });Routine approved checks don't appear in your Verifications list; anything flagged does.
Suggested handling#
| Decision | Suggested action |
|---|---|
| APPROVE | Continue |
| CHALLENGE | Ask for phone verification or a card before more free usage |
| REVIEW | Slow the account down and take a look |
| DENY | Stop free usage; offer the paid plan |
Link accounts at signup too
Usage Screening recognises linked accounts from devices, email look-alikes, payment methods and phones seen on your account. Sending signups through the Verify API with a deviceId makes those links stronger.