Self-serve bot detection

Catch the bots that act like humans.

Protect your application from the bots that abuse it and waste resources — our behavioral engine catches even the most sophisticated ones.

LIVE

Requests scored

1.24M

Bots blocked

8,402

p99 latency

47ms

Live verdicts/v1/sessions
1sess_3kd9f1a0b7c2#42
18sess_9af22e1c4d80#73
72sess_71b0c8e34a1f#61
95sess_a1f7c2089bde
Event log
10:42:01SCOREsess_3kd9f1 → 1
10:42:05BLOCKdefinite bot
10:42:12VERIFIEDGooglebot
10:42:18RULEchallenge · score<30
10:42:22OBSERVEthreshold 30
Drops into your stack
LaravelNext.jsDjangoRailsExpressWordPressRemixAstroFastAPISpringSvelteKitGoLaravelNext.jsDjangoRailsExpressWordPressRemixAstroFastAPISpringSvelteKitGo
Session verdictstable
18sess_9af22e1c4d80
Band split
Latency
<50ms
Confidence
99.2%
Mode
Observe
Built for accuracy

Stop bad bots without blocking real users.

Botect watches how every visitor behaves and scores each request in real time, then tells your app whether to block, challenge, or allow.

Live behavioral capture

Mouse entropy, scroll velocity, visibility and keyboard cadence — read by the SDK the moment they happen, in one normalized event stream.

A score you control

A deterministic 1–99 score with a tunable threshold separates definite bots from likely-human traffic before it ever reaches your app.

Flexible rules

Write rule expressions to block, challenge, or allow, and route verdicts to webhooks — observe-first, no redeploy.

How it works

From install to protection in three steps.

No agents, no DNS changes, no waiting on a sales team. Ship the SDK and read verdicts the same afternoon.

01

Drop in the SDK

One script tag with your public site key. It starts reading behavioral signals immediately.

<script async src="https://cdn.botect.ai/v1/sdk.js"
  data-site-key="pk_live_…"></script>
02

Read the verdict

Ask for the session's verdict from your backend with the private key. One call, <50ms.

const { action } = await botect
  .verdict(sessionToken);
if (action === "block") deny();
03

Tune the threshold

Observe first. Then activate a rule, set T, or write your own expression. No redeploy.

score < 30 and not verified
  → challenge
The gap we fill

Between a coarse toggle and a $5K/mo contract.

Cloudflare toggle
  • One on/off switch
  • No score exposed
  • No behavioral signals
Enterprise tools
  • $5K+/mo, annual contract
  • Sales-led onboarding
  • Opaque scoring
Botect
  • Self-serve in minutes
  • A real 1–99 score + API
  • Real behavioral signals

Ready to stop the bad bots?

Sign up, drop in the SDK, get a verdict within ten minutes.