Skip to content

Bot Scanner Pro

Bot Scanner Pro is an advanced detection script that catches sophisticated AI browsers like Stagehand, Browserbase, and Playwright with stealth plugins that evade standard detection.

Standard bot detection relies on signals that sophisticated automation tools have learned to fake:

  • navigator.webdriver can be masked
  • User agents can be spoofed
  • Chrome object properties can be patched

Bot Scanner Pro goes deeper by analyzing:

  • How users move their mouse (humans curve, bots go straight)
  • Click timing patterns (humans have delays, bots are instant)
  • Canvas and WebGL rendering (hardware fingerprints are hard to fake)
  • Audio context behavior (often mocked incorrectly)

FeatureLitePro
Script size~12KB~16KB
Detection latencyImmediateImmediate + 5s behavioral
Best forHigh-traffic pagesLogin, checkout, sensitive pages
Detection TypeLitePro
WebDriver detection
Headless browser detection
AI crawler detection
Permission API mismatch
Chrome object consistency
Behavioral analysis
Canvas fingerprint hash
WebGL deep fingerprint
Audio context fingerprint
Mouse movement analysis
Click pattern analysis
Scroll velocity analysis
Keystroke dynamics
AI Browser TypeLitePro
Stagehand + Browserbase~20%~60-70%
Playwright + Stealth~40%~75%
Basic Puppeteer~70%~90%
Commercial anti-detect~10%~40%

Pro uses a two-phase approach to maximize detection:

Page Load (0ms)
├── Phase 1: Immediate Detection
│ ├── Basic bot signals (webdriver, headless)
│ ├── Canvas fingerprint hash
│ ├── WebGL deep parameters
│ ├── Audio context fingerprint
│ └── Send detection if score > 20
User Interaction (5 seconds)
├── Phase 2: Behavioral Analysis
│ ├── Mouse movement patterns
│ ├── Click timing analysis
│ ├── Scroll velocity patterns
│ ├── Keystroke dynamics
│ └── Send behavioral update
Final Score Calculated

Why two phases?

  • Phase 1 catches bots that leave immediately
  • Phase 2 provides deep analysis for bots that stay
  • Combined data gives the most accurate detection

Pro tracks mouse movements, clicks, scrolls, and keystrokes to detect non-human patterns:

SignalPointsWhat It Detects
Low mousemove count+25Fewer than 10 mouse events (bots often skip mouse simulation)
Linear paths+20Mouse moves in perfectly straight lines (humans curve)
Constant velocity+15No speed variation (humans accelerate/decelerate)
Grid-aligned moves+15Positions on exact coordinates (automation artifacts)
SignalPointsWhat It Detects
Instant clicks+30No delay between mouse stop and click (humans have reaction time)
No pre-movement+25Clicks without preceding mouse movement (teleporting cursor)
SignalPointsWhat It Detects
Constant scroll velocity+10Same speed throughout (humans vary)
Perfect scroll intervals+10Exact timing between scroll events
SignalPointsWhat It Detects
Constant typing rhythm+15No variation in keystroke timing
Superhuman typing speed+20Less than 30ms between keystrokes
SignalPointsWhat It Detects
SwiftShader renderer+30Software rendering (common in headless Chrome)
Mesa LLVMpipe renderer+25Software rendering on Linux
No unmasked renderer+15GPU info hidden (real browsers expose this)
Low extension count+10Fewer than 10 WebGL extensions
SignalPointsWhat It Detects
AudioContext unavailable+15API missing or blocked
Zero audio fingerprint+25Mocked AudioContext returns zero
Missing baseLatency+10Chrome 74+ should have this property
Unusual sample rate+10Not 44100 or 48000 Hz
Zero channel count+15Invalid audio configuration

Pro generates a unique hash from canvas rendering:

  1. Draws specific shapes and text
  2. Uses specific fonts and colors
  3. Generates hash from the rendered output
  4. Compares against known patterns

Headless browsers often have distinct canvas fingerprints due to software rendering.


<script async src="https://cdn.webdecoy.com/bot-detection/v1/bot-detection.min.js"
data-aid="your-organization-uuid"
data-sid="your-scanner-uuid">
</script>
<script async src="https://cdn.webdecoy.com/bot-detection/v1/pro/bot-detection-pro.min.js"
data-aid="your-organization-uuid"
data-sid="your-scanner-uuid">
</script>
AttributeRequiredDescription
data-aidYesYour organization UUID
data-sidYesYour bot scanner UUID
data-endpointNoCustom ingest endpoint (default: https://ingest.webdecoy.com/api/v1/detect)

  • ✅ High-traffic marketing pages
  • ✅ Blog posts and content pages
  • ✅ Public product listings
  • ✅ Bandwidth/performance is critical
  • ✅ You want basic bot protection
  • ✅ Login and authentication pages
  • ✅ Checkout and payment flows
  • ✅ Account creation forms
  • ✅ API endpoints receiving form data
  • ✅ High-value transaction pages
  • ✅ You’re seeing sophisticated bot attacks
  • ✅ Lite detection is being bypassed

Use both strategically:

Homepage (Lite)
├── Product Pages (Lite)
├── Login Page (Pro) ← High-value target
├── Checkout (Pro) ← High-value target
└── Account Settings (Pro) ← Sensitive data

VersionURL
Pro Minifiedhttps://cdn.webdecoy.com/bot-detection/v1/pro/bot-detection-pro.min.js
Pro Sourcehttps://cdn.webdecoy.com/bot-detection/v1/pro/bot-detection-pro.js
Lite Minifiedhttps://cdn.webdecoy.com/bot-detection/v1/bot-detection.min.js
Lite Sourcehttps://cdn.webdecoy.com/bot-detection/v1/bot-detection.js

Bot Scanner Pro collects more data than Lite for detection purposes:

Data TypeLiteProPurpose
Browser propertiesBasic detection
Mouse coordinatesMovement pattern analysis
Click positionsClick behavior analysis
Scroll positionsScroll pattern analysis
Keystroke timingTyping rhythm analysis
Canvas fingerprintBasicFullRendering consistency
WebGL parametersBasicDeepHardware fingerprinting
Audio fingerprintAudio context verification

Important:

  • Data is used solely for bot detection scoring
  • No actual keystrokes are captured (only timing intervals)
  • Data is not used for user tracking or advertising
  • Consider your privacy policy when deploying Pro

  1. Check browser console for [WebDecoy] messages
  2. Verify data-aid and data-sid attributes are set correctly
  3. Ensure score threshold (20) is exceeded
  4. Check network tab for requests to ingest endpoint
  1. Ensure behavioral phase has time to collect data (users need 5+ seconds on page)
  2. Check that users interact with page (mouse movement, scrolling)
  3. Review detection metadata to see which signals are triggering
  4. Consider if bots are leaving before Phase 2 completes

Pro scripts are served with permissive CORS headers. If you see CORS errors:

  1. Ensure you’re loading from cdn.webdecoy.com
  2. Check if a proxy or CDN is stripping headers
  3. Verify no browser extensions are blocking requests