https://edge.voidek.devDocs & quickstart
Loading Voidek quickstart
Preparing protected site setup, install examples, endpoints, and rollout guidance.
Docs & quickstart
Preparing protected site setup, install examples, endpoints, and rollout guidance.
API Docs
Add a browser snippet, call the decision API at your request boundary, and turn crawler pressure into explicit allow, log, challenge, or block actions.
https://edge.voidek.devhttps://voidek.dev/apiJSON over HTTPS1.0-1.5s fail-openCustomer traffic uses the runtime endpoint. Dashboard, admin inbox, and account sessions use the first-party app API surface, so the protected site snippets can stay stable if management APIs move later.
Quickstart
Use this path when you arrive from crawler-defense guides and want to verify Voidek on a single protected route before enforcing blocks.
Open the dashboard and create a personal account.
Enter its domain and save the one-time runtime key as VOIDEK_API_KEY.
Copy the test request and compare the controlled GPTBot sample with live Analytics rows.
Add middleware on protected routes after the first live row looks clean.
Defense proof
Demo replay only. These rows are generated from Voidek sample requests and stay separate from live customer logs.
| Client | Request | Decision | Why |
|---|---|---|---|
| GPTBotDemo replayAI crawler | GET protected pageai-crawler · high confidence | Blockedscore 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 |
| ClaudeBotDemo replayAI crawler | GET /docsai-crawler · high confidence | Blockedscore 100 | Blocked because ClaudeBot is classified as model-training crawler traffic before protected content is served. ai-crawler · static-html-client · header-anomaly |
| PerplexityBotDemo replayAI crawler | GET /docsai-crawler · high confidence | Blockedscore 100 | Blocked because PerplexityBot is classified as AI crawler traffic before protected docs content is served. ai-crawler · static-html-client · header-anomaly |
| python-requestsDemo replayScraper library | GET content endpointscraper · high confidence | Blockedscore 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 / SeleniumDemo replayHeadless framework | GET account routescraper · high confidence | Blockedscore 100 | Blocked because the request exposes automation tooling, webdriver, and a missing required browser challenge. scraper-tooling · static-html-client · header-anomaly |
| Masked Chromium runnerDemo replayHeadless challenge | GET /accountbrowser-impersonation · medium confidence | Challengescore 75 | Challenged because the client looks browser-like but lacks the headers a real navigation normally sends. browser-impersonation |
| GooglebotDemo replaySearch crawler | GET /docssearch-engine · none confidence | Allowedscore 0 | Allowed because known search-engine traffic is tagged separately from AI crawlers and scraper tooling. search-engine |
Authentication
Keep the runtime key out of browser JavaScript. The public snippet uses only `data-site-id`; middleware and backend calls use `Authorization: Bearer VOIDEK_API_KEY`.
OpenAPI
The OpenAPI file separates runtime bearer-key calls from dashboard session-cookie calls, so testing tools can show which endpoints need which credential.
Examples
Most API docs use stack tabs like JavaScript, Node.js, HTML, Python, and framework-specific examples. Voidek follows that pattern instead of a bulky dropdown.
Endpoints
Each endpoint is documented with the method/path, required parameters, and a representative JSON response so integration details are visible without hunting.
/v1/decide| Parameter | Type | Description |
|---|---|---|
siteId | string | Required. Protected site ID from the dashboard. |
path | string | Required. Path being protected. |
method | string | GET, POST, PUT, DELETE, or another HTTP method. |
headers | object | Raw request headers. Keep user-agent, accept, sec-fetch, client hints, and cookies. |
ip | string | Best-effort client IP after your trusted proxy parsing. |
challengeToken | string | Optional `vd_session` token produced by the browser snippet. |
/v1/collect| Parameter | Type | Description |
|---|---|---|
siteId | string | Required. Protected site ID embedded in the script tag. |
token | string | Required. Short-lived browser challenge token. |
webdriver | boolean | Navigator webdriver signal. |
language | string | Browser language such as `en-US`. |
timezone | string | Browser timezone such as `Asia/Seoul`. |
screen | string | Screen fingerprint such as `1440x900x24`. |
/v1/usage| Parameter | Type | Description |
|---|---|---|
siteId | string | Required protected site ID query string parameter. |
period | string | Current month is returned in `YYYY-MM` format. |
Actions
Normal browser traffic and verified search engines.
Suspicious but low-risk requests. Use this while tuning.
Browser-like automation that needs proof before content returns.
Known AI crawlers, scraper libraries, headless frameworks, path probes, and bursts.
Rollout checklist
Use the dashboard to create a personal account before adding protected site configuration.
Enter the protected site domain, save the one-time runtime key as VOIDEK_API_KEY, and keep it server-side.
Copy the test request, run it from your terminal, and compare the controlled GPTBot sample with live Analytics rows.
Add middleware on protected pages, docs, account routes, feeds, or API routes after live rows look clean.
Protection depth
Voidek covers your protected site rollout today. For broader paid plans, the next expansion areas are better tuning, customer controls, and richer network reputation.
AI crawler lists, scraper user agents, browser automation headers, webdriver signals, challenge token checks, path scan scoring, and burst pressure.
Managed allowlists, branded challenge pages, per-site rules, usage aggregation tables, webhook alerts, and trusted proxy configuration UI.
IP reputation feeds, ASN/datacenter scoring, JA3/TLS fingerprints, behavioral replay, robots policy comparison, and customer-tuned model thresholds.
Public libraries
@voidek/nodeExpress, NestJS, and Fastify middleware surface.@voidek/nextProxy helpers and safe header forwarding utilities.@voidek/browserSnippet loader configuration and typed browser payloads.voidek-examplesPublic examples for Next.js, Node.js, Python, and edge workers.