API Documentation

Programmatic access to Anti-Detect Toolkit test results.

Base URL

https://project1.click/api/antibot

Authentication

Pass your API key in one of two ways:

Query parameter: GET /api/antibot/tasks/{'{task_id}'}?apikey=YOUR_API_KEY
Authorization header: Authorization: Bearer YOUR_API_KEY

Get your API key at Dashboard → Plans

Workflow

1

Open any tool page in a browser (or headless browser):

await page.goto('https://project1.click/tools/bot-detector');
2

Wait for tests to complete and read the Task ID:

await page.waitForSelector('[data-task]'); const taskId = await page.evaluate(() => document.body.dataset.task);
3

Fetch JSON results via API:

GET https://project1.click/api/antibot/tasks/{'{taskId}'}?apikey=YOUR_KEY

Endpoints

GET /api/antibot/tasks/{'{task_id}'}

Retrieve test results by Task ID. Requires a valid API key.

Response (200):

{
    "task_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "tool": "bot-detector",
    "score": 93,
    "ip_address": "185.200.50.1",
    "user_agent": "Mozilla/5.0 ...",
    "results": {
        "summary": { "total": 30, "passed": 28, "failed": 0, "warnings": 2, "score": 93 },
        "leaks": { "webdriver": false, "selenium": false, "phantomjs": false },
        "navigator": { "userAgent": "...", "platform": "Win32", "language": "en-US" },
        "screen": { "width": 1920, "height": 1080, "colorDepth": 24 },
        "webgl": { "vendor": "Google Inc.", "renderer": "ANGLE (NVIDIA ...)" },
        "canvas": { "hash": "a1b2c3d4" },
        "scoring": { "webdriver": "pass", "selenium": "pass", "phantomjs": "pass" }
    },
    "created_at": "2026-04-09T12:00:00+00:00"
}

Error responses:

401
{ "error": "Valid API key required." }
403
{ "error": "API key is inactive, expired, or has reached its request limit." }
404
{ "error": "Task not found." }
POST /api/antibot/tasks

Internal endpoint — called automatically by tool pages. No authentication required.

// Request body (sent by JS on the page)
{ "tool": "bot-detector", "results": { ... } }

// Response (201)
{ "task_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }

Available Tools

Each tool generates tasks with a unique tool identifier:

bot-detector Bot Detector
ip-leak IP Leak Test
webrtc-leak WebRTC Leak
http-headers HTTP Headers
browser-fingerprint Browser Fingerprint
canvas-fingerprint Canvas & WebGL FP
font-detection Font Detection
audio-fingerprint Audio Fingerprint
tls-fingerprint TLS / JA3
timezone-geo Timezone & Geo
screen-display Screen & Display
permissions-api Permissions & APIs
dns-leak DNS Leak Test
vpn-detector VPN / Proxy Detector

Code Examples

Playwright (Node.js)

const { chromium } = require('playwright');

const API_KEY = 'YOUR_API_KEY';
const BASE = 'https://project1.click';

(async () => {
    const browser = await chromium.launch();
    const page = await browser.newPage();

    // Run bot detector
    await page.goto(`${BASE}/tools/bot-detector`);
    await page.waitForSelector('[data-task]', { timeout: 30000 });
    const taskId = await page.evaluate(() => document.body.dataset.task);

    // Fetch results
    const resp = await fetch(`${BASE}/api/antibot/tasks/${taskId}?apikey=${API_KEY}`);
    const data = await resp.json();
    console.log('Score:', data.score);
    console.log('Results:', JSON.stringify(data.results, null, 2));

    await browser.close();
})();

Python (requests)

import requests

API_KEY = 'YOUR_API_KEY'
TASK_ID = 'a1b2c3d4-e5f6-...'

resp = requests.get(
    f'https://project1.click/api/antibot/tasks/{TASK_ID}',
    headers={'Authorization': f'Bearer {API_KEY}'}
)

data = resp.json()
print(f"Tool: {data['tool']}, Score: {data['score']}")
print(f"Results: {data['results']}")

cURL

curl -s "https://project1.click/api/antibot/tasks/TASK_ID?apikey=YOUR_API_KEY" | jq .

Rate Limits

Each API key has a monthly request limit based on your plan. Running tests on web pages is always free and unlimited — only API result fetches count against your limit.

Тарифы →