Docs

Reason codes

Reason codes

The fixed list of reasons we return with each check. You can write your rules against these codes.

Every reason code

This list is fixed, so you can write rules against it. The plan column shows the lowest plan on which each code counts.

Points and cutoffs

Each reason adds points to the score. Network reasons (datacenter, VPN, Tor, privacy relay, hijacked network, residential proxy) describe the same IP, so only the strongest of them counts.

On the Starter plan and up, an email alias on a commercial VPN with no other signal adds only the VPN's points. With any other signal, the alias adds its own 10 points.

By default, a score of 40 marks the signup challenge and 70 marks it block. You can change both cutoffs per app, which changes what the other reasons lead to. A score made only of weak signals (VPN, Tor, privacy relay, role account, relay service, a domain only on an old burner list) can reach challenge but never block.

Some reasons set the result on their own: an override, an invalid address, a known burner domain, a burner mail server, or a domain that cannot receive mail.

Velocity reasons

The velocity reasons (the burst_ codes) each count earlier signups in a fixed window, on the app and across all your apps. You can change the thresholds per app in the dashboard's Velocity section (0 turns one off, otherwise the lowest is 2).

Velocity points count in the score and can raise a signup to challenge but never to block. A block needs the other reasons to reach your block score on their own. Classmates on the same network, colleagues behind an office proxy and people with popular names all produce velocity patterns.