Public proof

Replay evidence for Voidek crawler decisions.

This page shows controlled sample requests for AI crawlers, script scrapers, browser automation, and Googlebot. The goal is transparent rollout evidence, not a claim that every bot is blocked in every environment.

Rollout modes

Monitor first, then enforce only where the logs support it.

Monitor

Voidek records action, score, bot type, tags, and route context while your app continues serving the request.

Use this before rollout, especially on docs, pricing, login, feeds, and API routes.
Enforce

Your middleware or backend uses the decision to allow, challenge, or block before protected content is returned.

Turn this on per route after the sample rows and live rows look clean.

Test matrix

Controlled replay results for common crawler and scraper clients.

Scores and decisions below come from Voidek sample requests run through the shared scorer. In production, route policy decides whether a logged high-confidence class becomes challenge or block.

Voidek public proof test matrix for crawler, scraper, headless browser, and search crawler requests
ClientReplay inputReplay actionMonitor modeEnforce modeWhy it matters
GPTBotAI crawlerGPTBot/1.2 on GET /pricingBlockedscore 100 · highLog row with AI crawler tagBlock on protected routeKnown AI crawler user-agent plus static HTML fetch context.
ClaudeBotAI crawlerClaudeBot/1.0 on GET /docsBlockedscore 100 · highLog row with AI crawler tagBlock on protected routeClassified separately from search-engine crawlers.
PerplexityBotAI crawlerPerplexityBot/1.0 on GET /docsBlockedscore 100 · highLog row with AI crawler tagBlock on protected routeKnown AI crawler user-agent in the replay rules.
python-requestsScraper librarypython-requests/2.32 burst on GET /api/searchBlockedscore 100 · highLog row with scraper and rate tagsBlock when route policy is strictScript client, non-browser headers, and short-window burst pressure.
Playwright / SeleniumHeadless frameworkPlaywright/Selenium request on GET /loginBlockedscore 100 · highLog row with headless tagsBlock failed browser challengeAutomation header, webdriver, and missing challenge proof.
GooglebotSearch crawlerGooglebot/2.1 on GET /docsAllowedscore 0 · noneLog or allow as search crawlerAllow by default unless policy says otherwiseKnown search crawler is tagged separately from AI crawlers.

Replay detail

Decision reasons exposed as demo assets.

The same sample set is reused in the docs and dashboard demo so visitors can inspect client type, route, action, score, and reason copy before installing.

Demo Voidek decisions for crawler and scraper request types
ClientRequestDecisionWhy
GPTBotAI crawlerGET /pricingai-crawler · high confidenceBlockedscore 100

Blocked because the user-agent matches a known AI crawler and arrives without normal browser navigation proof.

ai-crawler · static-html-client · header-anomaly
ClaudeBotAI crawlerGET /docsai-crawler · high confidenceBlockedscore 100

Blocked because ClaudeBot is classified as model-training crawler traffic before protected content is served.

ai-crawler · static-html-client · header-anomaly
PerplexityBotAI crawlerGET /docsai-crawler · high confidenceBlockedscore 100

Blocked because PerplexityBot is classified as AI crawler traffic before protected docs content is served.

ai-crawler · static-html-client · header-anomaly
python-requestsScraper libraryGET /api/searchscraper · high confidenceBlockedscore 100

Blocked because a script client is making a high short-window request burst with no browser navigation headers.

scraper-tooling · header-anomaly · rate-spike
Playwright / SeleniumHeadless frameworkGET /loginscraper · high confidenceBlockedscore 100

Blocked because the request exposes automation tooling, webdriver, and a missing required browser challenge.

scraper-tooling · static-html-client · header-anomaly
Masked Chromium runnerHeadless challengeGET /accountbrowser-impersonation · medium confidenceChallengescore 75

Challenged because the client looks browser-like but lacks the headers a real navigation normally sends.

browser-impersonation
GooglebotSearch crawlerGET /docssearch-engine · none confidenceAllowedscore 0

Allowed because known search-engine traffic is tagged separately from AI crawlers and scraper tooling.

search-engine

Dashboard log example

What a setup owner should expect to see.

These rows are illustrative dashboard examples based on the replay cases. They are not customer traffic totals and should be treated as a safe demo asset.

Illustrative Voidek dashboard log rows from sample replay traffic
TimeRouteClientActionScoreTags
2026-06-24 09:42 UTCGET /pricingGPTBotBlocked91ai-crawler, static-html-client
2026-06-24 09:43 UTCGET /docsClaudeBotBlocked90ai-crawler
2026-06-24 09:44 UTCGET /api/searchpython-requestsBlocked100scraper-tooling, rate-spike
2026-06-24 09:45 UTCGET /loginPlaywrightBlocked100headless-signal, challenge-missing
2026-06-24 09:46 UTCGET /docsGooglebotAllowed0search-engine

Limits

Claims we will not overstate.

Verify on your route

Run one test decision, then review the first log row.

Start with a personal account, add one protected site, keep Googlebot and browsers safe by default, and only enforce crawler classes after monitor rows are clear.