General crawler blocking
Python clients, scraping libraries, Selenium, Playwright, Puppeteer, HeadlessChrome, and bare Chromium patterns are scored before protected routes respond.
AI crawler, scraper, and headless browser defense
Block unwanted bots before they read your site.
Add a snippet plus one server-side decision call. Start in monitor mode, allow useful search bots, then challenge or block AI crawlers, scrapers, and headless browsers on protected routes.
Already installed? Open dashboard to review decisions and update policy.
Defense layers
Python clients, scraping libraries, Selenium, Playwright, Puppeteer, HeadlessChrome, and bare Chromium patterns are scored before protected routes respond.
The snippet collects lightweight browser signals so middleware can tell a real browser from a static HTML fetch.
python-requests, urllib, Scrapy, curl, wget, axios, node-fetch, Java, Go HTTP clients
Selenium, Playwright, Puppeteer, HeadlessChrome, bare Chromium, webdriver signals
GPTBot, ClaudeBot, PerplexityBot, CCBot, Bytespider, Applebot-Extended
Googlebot and other known search bots are tagged separately so they can pass by default.
.env, .git, WordPress, debug, actuator, phpMyAdmin, server-status, and config scans
Forwarded chains, cloud infrastructure headers, anonymous proxy reputation, and burst patterns
Use cases
Detect GPTBot, ClaudeBot, PerplexityBot, CCBot, Bytespider, and Applebot-Extended while keeping setup small.
Tag useful search traffic separately so Googlebot can pass while AI crawler and generic automation rules stay stricter.
Use request, header, webdriver, and route signals against Python requests, curl, Scrapy, Selenium, Playwright, and Puppeteer.
Put Voidek in middleware, proxy, or backend code before protected HTML, API responses, or docs content is served.
Watch live logs first, keep legitimate search traffic visible, then challenge or block only high-confidence crawler pressure.
Combine browser proof, webdriver signals, header shape, route intent, and burst pressure for better automation decisions.
Send site ID, path, method, headers, and browser token state to receive an allow, log, challenge, or block action.
Plans
Intro request pricing: Starter is held at $10/mo.
$0/mo
Free forever
1 protected site / 1,000 requests per month
Start in monitor mode and see which crawlers are hitting your site before you pay.
Start setup$10/mo
was $19/mo
Intro pricing by request
3 protected sites / 100k requests per month
Block obvious scripts, headless browsers, AI crawlers, and noisy path probes for early products.
Reserve setup only. No card is charged here.
$49/mo
Annual request includes 2 months free
10 protected sites / 1M requests per month
Add proxy/datacenter pressure, longer logs, quota reporting, and safer rollout controls.
Reserve setup only. No card is charged here.
Contact us
Custom request
Custom protected sites / 5M+ requests per month
Custom thresholds, onboarding help, and retention for serious request volume.
Reserve setup only. No card is charged here.
Plan request
Leave your details to hold intro pricing and confirm the right quota before payment. We will follow up for manual setup, then notify you when self-serve checkout opens.
Pricing and performance
| Dimension | Voidek | Enterprise WAF | Standard CAPTCHA |
|---|---|---|---|
| Setup path | Snippet plus one server decision | DNS or WAF policy migration | Widget-only install |
| Payment step | Free start; paid setup by request | Contract or higher-tier checkout | Usually free or bundled |
| Performance shape | Runs only on protected routes | Fast edge, heavier policy tuning | Fast challenge, limited context |
| Crawler friction | UA, headers, webdriver, route, and burst scoring | Broad WAF rules | Human check only |
| Best fit | Site owner who wants crawler control before a WAF move | Enterprise security ops | Simple form abuse gates |
Setup path
Voidek works best when the first action is small: create a personal account, add one protected site, save the runtime key, run a test decision, then confirm the first row in Analytics.
Use a personal account to manage protected sites, runtime keys, and rollout settings.
Enter its domain, then store the one-time key as VOIDEK_API_KEY.
Copy the test request, confirm the GPTBot row in Analytics, then tune blocking.
Install
Pick a language, copy the snippet, and start in monitor mode before turning on challenge or block.
const decision = await fetch("https://edge.voidek.dev/v1/decide", {
method: "POST",
headers: {
"content-type": "application/json",
"authorization": "Bearer " + process.env.VOIDEK_API_KEY
},
body: JSON.stringify({
siteId: "SITE_ID",
path: location.pathname,
headers: Object.fromEntries(new Headers())
})
}).then((response) => response.json());Contact us