ANTI-DETECT  •  MULTI-PROFILE  •  AUTOMATION

Browser for
Automation at Scale

QUICK START

Run the following command to test the browser via Docker:

docker run --platform linux/amd64 -d --name botzvn -p 8080:8080 \
  --shm-size 1g -v botzvn-data:/data botzvn/browser-aio:latest
BOTzVN BROWSER MANAGER
All Worker Nodes
Profiles
Proxy
Groups
API
Extensions
Synchronizer
Automation
Tasks
Profiles
🇬🇧 EN ▾
All ×
NO. PROFILES PROXY NOTES TAGS
1
🤖
android • ALL
Not configured -- --
2
💻
mac • ALL
Not configured -- --
3
🐧
linux • ALL
Not configured -- --
4
🪟
win • ALL
Not configured -- --
Showing 4 of 4 profiles
50 ▾ ◀ 1/1 ▶
Platform Capabilities

Core features

Unique Fingerprints

Every profile appears as a different device to websites. Bypass fingerprinting checks on major platforms reliably.

Zero Contamination

Cookies, history, sessions, and logins are completely separated between profiles. One profile cannot expose another.

Dedicated Proxies

Assign a different IP to each profile. Supports HTTP, HTTPS, SOCKS5 proxies. Your real IP is never exposed.

Automate Any Task

Connect Puppeteer, Playwright, or any automation script to any profile. Run bulk actions undetected.

Data Stays Local

All profiles are encrypted and locked to your device. Nobody can access your accounts or session data.

Control 100+ Profiles

Perform the same action across hundreds of profiles simultaneously with one click — all in real-time.

Developer Integration

Automation showcase

// Connect Playwright to a BOTzVN profile via CDP
const { chromium } = require('playwright');

async function runProfile(wsEndpoint) {
  const browser = await chromium.connectOverCDP(wsEndpoint);
  const context = browser.contexts()[0];
  const page = await context.newPage();

  await page.goto('https://www.wikipedia.org/');
}
# Connect Playwright to a BOTzVN profile via CDP
from playwright.async_api import async_playwright
import asyncio

async def run_profile(ws_endpoint):
  async with async_playwright() as p:
    browser = await p.chromium.connect_over_cdp(ws_endpoint)
    ctx = browser.contexts[0]
    page = await ctx.new_page()

    await page.goto("https://www.wikipedia.org/")
// Connect Playwright to a BOTzVN profile via CDP
package main

import (
  "log"
  "github.com/playwright-community/playwright-go"
)

func main() {
  pw, _ := playwright.Run()
  browser, _ := pw.Chromium.ConnectOverCDP("ws://127.0.0.1:49222")
  ctx := browser.Contexts()[0]
  page, _ := ctx.NewPage()
  page.Goto("https://www.wikipedia.org/")
}
botzvn-cli
$ botzvn start --profile-id android
Verifying local chrome engine dependencies...
Engine initialized successfully.
Establishing secure proxy tunnel...
Proxy tunnel connected.
CDP debugger listening on: ws://127.0.0.1:49222/playwright
REST API

Developer API

Localhost Server Endpoints
GET /api/v1/profiles Get all browser profiles and status
POST /api/v1/profiles Create a new local browser profile
POST /api/v1/profiles/:id/start Launch profile and open CDP debugging port
POST /api/v1/profiles/:id/stop Stop isolated browser profile session
POST /api/v1/profiles/create-and-start Create and start a profile immediately
Start Profile Command cURL
curl -X POST http://127.0.0.1:49222/api/v1/profiles/p1/start \
  -H "Content-Type: application/json" \
  -d '{
    "proxy": "http://user:pass@ip:port",
    "headless": false
  }'