Core conceptsScore bands

Score bands

How the 1–99 score maps to bands relative to your project threshold, and how toggles turn bands into allow / challenge / block actions.

A raw score is precise but hard to act on. Botect classifies each score into a band relative to your project's threshold T, and your enforcement toggles map bands to actions. This keeps the decision surface simple: most customers never touch a raw number.

The bands

BandScore rangeMeaning
not_computed0No signals yet, or a degraded lookup. Always allowed (fail-open).
definite1Strongest bot evidence.
likely_automated2T-1Below the threshold — probably a bot.
likely_humanT99At or above the threshold — probably human.
verifiedA recognized verified bot; set by short-circuit, independent of score.

The threshold T (default 30) is a project setting. Raising it makes Botect more suspicious (more sessions land in likely_automated); lowering it is more permissive.

Toggles: bands → actions

Toggles are the 90% control surface — four booleans on the project's bot_settings. They default to observe-first, so enabling scoring never breaks legitimate traffic before you opt in.

{
  "allow_verified": true,
  "protect_static": true,
  "block_definite": false,
  "challenge_likely": false
}
ToggleDefaultEffect
allow_verifiedtrueVerified bots → allow, regardless of score
protect_statictrueWhen false, static-resource requests are skipped (allow)
block_definitefalseWhen true, band definiteblock
challenge_likelyfalseWhen true, band likely_automatedchallenge

The resulting band → action mapping, when no rule has already terminated:

BandToggleAction
verifiedallow_verified onallow
definiteblock_definite onblock
likely_automatedchallenge_likely onchallenge
likely_human / othersallow

Enforcement toggles (block_definite, challenge_likely) ship off. Enable scoring, watch real traffic land in bands, and turn enforcement on only when the bands look right for your site.

Change a toggle or the threshold via Update settings; the change busts the verdict cache so it takes effect within the cache window.

Resolution order

When your backend reads a verdict, the action is resolved in this order — the first match wins:

Verified short-circuit

Verified bot + allow_verified on → allow.

Static-resource skip

Static resource + protect_static off → allow.

Rules

Active rules in order; the first terminating action (block/challenge) wins.

Toggles

Band → action via the toggle mapping above.

Default

allow.

Actions

The action returned in a verdict is one of the BotAction values:

ActionMeaning
allowLet the request through
challengeInterpose a challenge (e.g. CAPTCHA / interstitial)
blockReject the request
logRecord only — no enforcement (available to rules)
delayApply a soft delay (available to rules)

Toggles only ever emit allow, challenge, or block. log and delay are available when you write custom rules.