Gates
Overview
Note
Gates is available on all paid plans.
A gate is a checkpoint you put in front of a user action: sign-up, free trial, checkout, comment, or anything else worth protecting. Think of it as Stripe Radar for user verification: instead of card data, it runs on UserCheck's email and domain signals.

You build a gate by stacking rules, either in the dashboard or over the Management API. Each rule has:
- one or more conditions (field, operator, value)
- a match mode (
all= AND,any= OR) - an action (
allow,block, orchallenge) - an optional
stopflag that ends evaluation on a match
If no rule matches, the gate returns its default action, which is allow unless you change it.
At runtime your backend makes a single API call, POST https://api.usercheck.com/v1/gates/{gate_id}/decisions, and gets back one verdict.
| Result | Typical next step |
|---|---|
allow |
Process the action normally |
block |
Reject the action |
challenge |
Ask for extra proof (CAPTCHA, email or SMS verification, a small card authorization, or manual review) |
The verdict is yours to act on. UserCheck decides which action a gate returns; what your application does with it is up to you.
Versions
The Decision Endpoint and the Management API are on /v1, which is stable. Changes to /v1 only add things: new response fields (including new keys under signals), new condition fields and operators, new error codes, and new optional request parameters. Ignore fields you don't recognize, and handle an unknown error code by its HTTP status.
Integrations built during the beta call /v0. It stays available and its responses won't change. Move to /v1 whenever it suits you: Migrate from v0 to v1 lists what changes.
Where to start
| If you want to | Go to |
|---|---|
| Create a gate and call it | Quickstart |
Move an existing /v0 integration to /v1 |
Migrate from v0 to v1 |
| See the request and response format | Decision Endpoint |
| Look up the fields a condition can use | Rules & Conditions |
| Manage gates and rules from code | Management API |
| Handle a failed request | Errors |
Move off the /email and /domain endpoints |
Migrate from Email & Domain APIs |