Signup protection Pricing Documentation Sign up Log in

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.

Gates Dashboard

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, or challenge)
  • an optional stop flag 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
Previous
Rate limits