---
title: "Limit the free tier per person instead of · Agent Wranglers"
url: https://agentwranglers.se/playbook/pricing/plan-changes-trials-and-free-tiers/free-tier-abuse
id: PRC-6
level: Recommended
applies: payments
updated: 2026-10-27
build: a2a6bdfed830
tokens: 973
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Limit the free tier per person instead of per account

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Plan changes, trials and free tiers](https://agentwranglers.se/playbook/pricing/plan-changes-trials-and-free-tiers.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers.md). Updated 2026-10-27.

- ID: PRC-6
- Level: Recommended
- Chapter: [Plan changes, trials and free tiers](https://agentwranglers.se/playbook/pricing/plan-changes-trials-and-free-tiers.md)
- Rule: Count free-tier usage per person, by verified email, payment card fingerprint and device or network signals, not per account alone. Cap total free usage per day across the whole service, and alert when the cap is reached.
- Check: A test creates three accounts with the same card fingerprint. Only the first gets free credits. A load test that spends the free tier from many new accounts stops at the daily service cap, and the alert fires.
- Applies when: The project takes payments.
- How: A free tier that costs you model calls is worth farming. Scripts create thousands of accounts and spend the free credits on resale or scraping. Ask for a verified email or phone number before the free credits start, and a card for the larger free tiers. Score each sign-up as [Score every sign-up for risk](https://agentwranglers.se/playbook/trust-and-safety/sign-up-fraud-and-abuse/sign-up-risk-score.md) describes. Grant the free credits as ledger rows with a source, so you can see and claw back farmed grants. A total daily cap keeps an attack you missed from costing more than a set amount.

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### JavaScript example

```js
const FREE_DAILY_CAP_MINOR = 50_000

export async function grantFreeCredits(person, ledger) {
  if (await ledger.hasFreeGrant(person.identityHashes)) return false
  if (await ledger.freeSpentTodayMinor() >= FREE_DAILY_CAP_MINOR) return false
  await ledger.grant(person.accountId, { source: 'free-tier', identityHashes: person.identityHashes })
  return true
}
```

### Python example

```python
FREE_DAILY_CAP_MINOR = 50_000

def grant_free_credits(person, ledger) -> bool:
    if ledger.has_free_grant(person.identity_hashes):
        return False
    if ledger.free_spent_today_minor() >= FREE_DAILY_CAP_MINOR:
        return False
    ledger.grant(person.account_id, source="free-tier", identity_hashes=person.identity_hashes)
    return True
```

## Related rules

- TNS-11 [Score every sign-up for risk](https://agentwranglers.se/playbook/trust-and-safety/sign-up-fraud-and-abuse/sign-up-risk-score.md) in Trust and safety
- PRC-17 [Give one trial per person and payment card](https://agentwranglers.se/playbook/pricing/plan-changes-trials-and-free-tiers/one-trial-per-person.md) in Pricing, plans and entitlements

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/pricing/plan-changes-trials-and-free-tiers/free-tier-abuse">Agent Wranglers pricing, plans and entitlements playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Preview the amount before a plan change](https://agentwranglers.se/playbook/pricing/plan-changes-trials-and-free-tiers/plan-change-proration.md)
- Next: [Keep old prices as archived catalogue prices with an end date](https://agentwranglers.se/playbook/pricing/plan-changes-trials-and-free-tiers/grandfathered-prices.md)
- [Plan changes, trials and free tiers](https://agentwranglers.se/playbook/pricing/plan-changes-trials-and-free-tiers.md)
