anti-detect-browser

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Anti-Detect Browser SDK

Anti-Detect Browser SDK

Launch Chromium instances with real-device fingerprints via standard Playwright APIs. Each browser gets a unique, consistent digital identity - undetectable by anti-bot systems.
  • npm package:
    anti-detect-browser
  • Dashboard:
    https://antibrow.com
  • REST API base:
    https://antibrow.com/api/v1/
  • Documentation:
    https://antibrow.com/docs
通过标准Playwright API启动带有真实设备指纹的Chromium实例。每个浏览器都拥有唯一、一致的数字身份,不会被反机器人系统检测到。
  • npm包:
    anti-detect-browser
  • 控制台:
    https://antibrow.com
  • REST API基础地址:
    https://antibrow.com/api/v1/
  • 文档:
    https://antibrow.com/docs

When to use

适用场景

  • Multi-account management - Run dozens of social media, e-commerce, or ad accounts on the same machine without linking. Each browser profile has its own fingerprint, cookies, and storage.
  • Web scraping & data collection - Rotate fingerprints across scraping sessions to avoid detection and fingerprint-IP correlation bans.
  • Ad verification & competitive intelligence - View ads and content as different user profiles across regions and device types.
  • Social media automation - Manage multiple accounts with persistent profiles that survive browser restarts.
  • E-commerce operations - Operate multiple seller/buyer accounts with fully isolated browser environments.
  • AI agent browser control - Run as an MCP server so AI agents (Claude, GPT, etc.) can launch, navigate, and interact with anti-detect browsers through tool calls.
  • QA & cross-environment testing - Test how your site behaves under different browser fingerprints, screen sizes, and device configurations.
  • 多账号管理 - 在同一台设备上运行数十个社交媒体、电商或广告账号,且账号间不会关联。每个浏览器配置文件都有独立的指纹、Cookie和存储。
  • 网页抓取与数据采集 - 在抓取会话间轮换指纹,避免被检测以及因指纹-IP关联而被封禁。
  • 广告验证与竞争情报 - 以不同地区和设备类型的用户配置文件查看广告和内容。
  • 社交媒体自动化 - 管理多个账号,持久化配置文件可在浏览器重启后保留状态。
  • 电商运营 - 在完全隔离的浏览器环境中操作多个卖家/买家账号。
  • AI Agent浏览器控制 - 作为MCP服务器运行,使AI Agent(Claude、GPT等)可以通过工具调用启动、导航并与反检测浏览器交互。
  • QA与跨环境测试 - 测试你的网站在不同浏览器指纹、屏幕尺寸和设备配置下的表现。

Quick start

快速开始

bash
npm install anti-detect-browser
typescript
import { AntiDetectBrowser } from 'anti-detect-browser'

// Get your API key at https://antibrow.com
const ab = new AntiDetectBrowser({ key: 'your-api-key' })

const { browser, page } = await ab.launch({
  fingerprint: { tags: ['Windows 10', 'Chrome'] },
  profile: 'my-account-01',
  proxy: 'http://user:pass@host:port',
})

// Standard Playwright API from here — zero learning curve
await page.goto('https://example.com')
await browser.close()
bash
npm install anti-detect-browser
typescript
import { AntiDetectBrowser } from 'anti-detect-browser'

// 前往https://antibrow.com获取你的API密钥
const ab = new AntiDetectBrowser({ key: 'your-api-key' })

const { browser, page } = await ab.launch({
  fingerprint: { tags: ['Windows 10', 'Chrome'] },
  profile: 'my-account-01',
  proxy: 'http://user:pass@host:port',
})

// 从这里开始使用标准Playwright API — 零学习成本
await page.goto('https://example.com')
await browser.close()

Core concepts

核心概念

Profiles — persistent browser identities

配置文件(Profiles)—— 持久化浏览器身份

A profile saves cookies, localStorage, and session data across launches. Same profile name = same stored state next time.
typescript
// First launch — fresh session
const { page } = await ab.launch({ profile: 'shop-01' })
await page.goto('https://shop.example.com/login')
// ... login ...
await browser.close()

// Later — session restored, already logged in
const { page: p2 } = await ab.launch({ profile: 'shop-01' })
await p2.goto('https://shop.example.com/dashboard') // no login needed
配置文件会在多次启动间保存Cookie、localStorage和会话数据。相同的配置文件名意味着下次启动时会恢复相同的存储状态。
typescript
// 首次启动 — 全新会话
const { page } = await ab.launch({ profile: 'shop-01' })
await page.goto('https://shop.example.com/login')
// ... 登录操作 ...
await browser.close()

// 后续启动 — 会话已恢复,无需重新登录
const { page: p2 } = await ab.launch({ profile: 'shop-01' })
await p2.goto('https://shop.example.com/dashboard') // 无需登录

Fingerprints — real device data from the cloud

指纹(Fingerprints)—— 来自云端的真实设备数据

Each launch fetches a real fingerprint collected from actual devices. Over 30 categories (Canvas, WebGL, Audio, Fonts, WebRTC, WebGPU, etc.) with 500+ individual parameters.
typescript
// Windows Chrome, version 130+
await ab.launch({
  fingerprint: { tags: ['Windows 10', 'Chrome'], minBrowserVersion: 130 },
})

// Mac Safari
await ab.launch({
  fingerprint: { tags: ['Apple Mac', 'Safari'] },
})

// Mobile Android
await ab.launch({
  fingerprint: { tags: ['Android', 'Mobile', 'Chrome'] },
})
Available filter tags:
Microsoft Windows
,
Apple Mac
,
Android
,
Linux
,
iPad
,
iPhone
,
Edge
,
Chrome
,
Safari
,
Firefox
,
Desktop
,
Mobile
,
Windows 7
,
Windows 8
,
Windows 10
每次启动都会获取从真实设备收集的指纹数据,涵盖30多个类别(Canvas、WebGL、音频、字体、WebRTC、WebGPU等),包含500+个独立参数。
typescript
// Windows Chrome,版本130+
await ab.launch({
  fingerprint: { tags: ['Windows 10', 'Chrome'], minBrowserVersion: 130 },
})

// Mac Safari
await ab.launch({
  fingerprint: { tags: ['Apple Mac', 'Safari'] },
})

// 安卓移动设备
await ab.launch({
  fingerprint: { tags: ['Android', 'Mobile', 'Chrome'] },
})
可用过滤标签:
Microsoft Windows
,
Apple Mac
,
Android
,
Linux
,
iPad
,
iPhone
,
Edge
,
Chrome
,
Safari
,
Firefox
,
Desktop
,
Mobile
,
Windows 7
,
Windows 8
,
Windows 10

Visual identification — tell windows apart at a glance

视觉识别 — 一眼区分多个窗口

When running many browsers simultaneously, each window gets a floating label, title prefix, and unique theme color.
typescript
await ab.launch({
  profile: 'twitter-main',
  label: '@myhandle',       // floating label + window title
  color: '#e74c3c',         // unique window border color
})
当同时运行多个浏览器时,每个窗口都会显示浮动标签、标题前缀和独特的主题色。
typescript
await ab.launch({
  profile: 'twitter-main',
  label: '@myhandle',       // 浮动标签 + 窗口标题
  color: '#e74c3c',         // 独特的窗口边框颜色
})

Proxy integration

代理集成

Route each browser through a different proxy for geo-targeting or IP rotation.
typescript
await ab.launch({
  proxy: 'socks5://user:pass@us-proxy.example.com:1080',
  fingerprint: { tags: ['Windows 10', 'Chrome'] },
  profile: 'us-account',
})
为每个浏览器配置不同的代理,实现地理定位或IP轮换。
typescript
await ab.launch({
  proxy: 'socks5://user:pass@us-proxy.example.com:1080',
  fingerprint: { tags: ['Windows 10', 'Chrome'] },
  profile: 'us-account',
})

Live View — watch headless browsers in real time

Live View — 实时监控无头浏览器

Monitor headless sessions from the
https://antibrow.com
dashboard. Useful for debugging AI agent actions or letting team members observe.
typescript
const { liveView } = await ab.launch({
  headless: true,
  liveView: true,
})

console.log('Watch live:', liveView.viewUrl)
// Share this URL — anyone with access can see the browser screen
通过
https://antibrow.com
控制台监控无头会话,适用于调试AI Agent操作或让团队成员观察。
typescript
const { liveView } = await ab.launch({
  headless: true,
  liveView: true,
})

console.log('实时监控地址:', liveView.viewUrl)
// 分享该链接 — 有权限的任何人都可以查看浏览器画面

Inject into existing Playwright setup

注入到现有Playwright环境

Already have Playwright scripts? Add fingerprints without changing your workflow.
typescript
import { chromium } from 'playwright'
import { applyFingerprint } from 'anti-detect-browser'

const browser = await chromium.launch()
const context = await browser.newContext()

await applyFingerprint(context, {
  key: 'your-api-key',
  fingerprint: { tags: ['Windows 10', 'Chrome'] },
  profile: 'my-profile',
})

const page = await context.newPage()
await page.goto('https://example.com')
如果你已经有Playwright脚本,无需修改工作流即可添加指纹功能。
typescript
import { chromium } from 'playwright'
import { applyFingerprint } from 'anti-detect-browser'

const browser = await chromium.launch()
const context = await browser.newContext()

await applyFingerprint(context, {
  key: 'your-api-key',
  fingerprint: { tags: ['Windows 10', 'Chrome'] },
  profile: 'my-profile',
})

const page = await context.newPage()
await page.goto('https://example.com')

MCP server mode — for AI agents

MCP服务器模式 — 适用于AI Agent

Run as an MCP server so AI agents can launch and control fingerprint browsers via tool calls.
json
{
  "mcpServers": {
    "anti-detect-browser": {
      "command": "npx",
      "args": ["anti-detect-browser", "--mcp"],
      "env": { "ANTI_DETECT_BROWSER_KEY": "your-api-key" }
    }
  }
}
Available tools:
ToolWhat it does
launch_browser
Start a new fingerprint browser session
close_browser
Close a running session
navigate
Go to a URL
screenshot
Capture the current screen
click
/
fill
Interact with page elements
evaluate
Run JavaScript on the page
get_content
Extract text from the page or a specific element
start_live_view
Stream the browser screen to
https://antibrow.com
dashboard
stop_live_view
Stop live streaming
list_sessions
List all running browser instances
list_profiles
List all saved profiles
以MCP服务器模式运行,使AI Agent可以通过工具调用启动和控制指纹浏览器。
json
{
  "mcpServers": {
    "anti-detect-browser": {
      "command": "npx",
      "args": ["anti-detect-browser", "--mcp"],
      "env": { "ANTI_DETECT_BROWSER_KEY": "your-api-key" }
    }
  }
}
可用工具:
工具功能
launch_browser
启动新的指纹浏览器会话
close_browser
关闭运行中的会话
navigate
跳转到指定URL
screenshot
捕获当前屏幕
click
/
fill
与页面元素交互
evaluate
在页面上运行JavaScript
get_content
提取页面或特定元素的文本
start_live_view
将浏览器画面流式传输到
https://antibrow.com
控制台
stop_live_view
停止实时流传输
list_sessions
列出所有运行中的浏览器实例
list_profiles
列出所有已保存的配置文件

Workflow examples

工作流示例

Multi-account social media

多账号社交媒体管理

typescript
const accounts = [
  { profile: 'twitter-1', label: '@brand_main', color: '#1DA1F2' },
  { profile: 'twitter-2', label: '@support', color: '#FF6B35' },
  { profile: 'twitter-3', label: '@personal', color: '#6C5CE7' },
]

for (const acct of accounts) {
  const { page } = await ab.launch({
    fingerprint: { tags: ['Windows 10', 'Chrome'] },
    proxy: getNextProxy(),
    ...acct,
  })
  await page.goto('https://twitter.com')
}
typescript
const accounts = [
  { profile: 'twitter-1', label: '@brand_main', color: '#1DA1F2' },
  { profile: 'twitter-2', label: '@support', color: '#FF6B35' },
  { profile: 'twitter-3', label: '@personal', color: '#6C5CE7' },
]

for (const acct of accounts) {
  const { page } = await ab.launch({
    fingerprint: { tags: ['Windows 10', 'Chrome'] },
    proxy: getNextProxy(),
    ...acct,
  })
  await page.goto('https://twitter.com')
}

Scraping with fingerprint rotation

带指纹轮换的网页抓取

typescript
for (const url of urlsToScrape) {
  const { browser, page } = await ab.launch({
    fingerprint: { tags: ['Desktop', 'Chrome'], minBrowserVersion: 125 },
    proxy: rotateProxy(),
  })
  await page.goto(url)
  const data = await page.evaluate(() => document.body.innerText)
  saveData(url, data)
  await browser.close()
}
typescript
for (const url of urlsToScrape) {
  const { browser, page } = await ab.launch({
    fingerprint: { tags: ['Desktop', 'Chrome'], minBrowserVersion: 125 },
    proxy: rotateProxy(),
  })
  await page.goto(url)
  const data = await page.evaluate(() => document.body.innerText)
  saveData(url, data)
  await browser.close()
}

Headless monitoring with live view

带实时监控的无头模式

typescript
const { page, liveView } = await ab.launch({
  headless: true,
  liveView: true,
  profile: 'price-monitor',
  fingerprint: { tags: ['Windows 10', 'Chrome'] },
})

// Share the live view URL with your team
console.log('Dashboard:', liveView.viewUrl)

while (true) {
  await page.goto('https://shop.example.com/product/123')
  const price = await page.textContent('.price')
  if (parseFloat(price) < targetPrice) notify(price)
  await page.waitForTimeout(60_000)
}
typescript
const { page, liveView } = await ab.launch({
  headless: true,
  liveView: true,
  profile: 'price-monitor',
  fingerprint: { tags: ['Windows 10', 'Chrome'] },
})

// 与团队分享实时监控链接
console.log('控制台地址:', liveView.viewUrl)

while (true) {
  await page.goto('https://shop.example.com/product/123')
  const price = await page.textContent('.price')
  if (parseFloat(price) < targetPrice) notify(price)
  await page.waitForTimeout(60_000)
}

REST API

REST API

Base URL:
https://antibrow.com/api/v1/
— all endpoints require
Authorization: Bearer <api-key>
header.
基础地址:
https://antibrow.com/api/v1/
— 所有接口都需要
Authorization: Bearer <api-key>
请求头。

Fingerprints

指纹相关接口

MethodEndpointDescription
GET
/fingerprints/fetch
Fetch a fingerprint matching filter criteria. Returns
{ dataUrl }
— download the presigned URL for full fingerprint data.
GET
/fingerprints/versions
List available browser versions
Query parameters for
/fingerprints/fetch
:
tags
,
id
,
minBrowserVersion
,
maxBrowserVersion
,
minWidth
,
maxWidth
,
minHeight
,
maxHeight
请求方法接口地址描述
GET
/fingerprints/fetch
获取符合过滤条件的指纹,返回
{ dataUrl }
— 下载该预签名URL获取完整指纹数据。
GET
/fingerprints/versions
列出可用的浏览器版本
/fingerprints/fetch
接口的查询参数:
tags
,
id
,
minBrowserVersion
,
maxBrowserVersion
,
minWidth
,
maxWidth
,
minHeight
,
maxHeight

Profiles

配置文件相关接口

MethodEndpointDescription
GET
/profiles
List all profiles
POST
/profiles
Create a new profile (server assigns a random fingerprint). Returns profile info including
dataUrl
for immediate fingerprint data download.
GET
/profiles/:name
Get profile details with
dataUrl
for fingerprint data download
DELETE
/profiles/:name
Delete a profile
POST
/profiles
request body:
json
{ "name": "my-profile", "tags": ["Windows 10", "Chrome"] }
POST
/profiles
response (201):
json
{
  "name": "my-profile",
  "tags": ["Windows 10", "Chrome"],
  "ua": "Mozilla/5.0 ...",
  "browserVersion": 131,
  "width": 1920,
  "height": 1080,
  "createdAt": "2025-01-01T00:00:00.000Z",
  "dataUrl": "https://r2.example.com/fingerprints/..."
}
The
dataUrl
is a presigned R2 URL (valid for 10 minutes) pointing to the full fingerprint JSON data (~9MB). Download it directly — no additional API call needed.
请求方法接口地址描述
GET
/profiles
列出所有配置文件
POST
/profiles
创建新配置文件(服务器会分配随机指纹),返回配置文件信息,包括可立即下载指纹数据的
dataUrl
GET
/profiles/:name
获取配置文件详情及用于下载指纹数据的
dataUrl
DELETE
/profiles/:name
删除配置文件
POST
/profiles
请求体:
json
{ "name": "my-profile", "tags": ["Windows 10", "Chrome"] }
POST
/profiles
响应(201状态码):
json
{
  "name": "my-profile",
  "tags": ["Windows 10", "Chrome"],
  "ua": "Mozilla/5.0 ...",
  "browserVersion": 131,
  "width": 1920,
  "height": 1080,
  "createdAt": "2025-01-01T00:00:00.000Z",
  "dataUrl": "https://r2.example.com/fingerprints/..."
}
dataUrl
是预签名的R2 URL(有效期10分钟),指向完整的指纹JSON数据(约9MB),可直接下载,无需额外API调用。

Get started

快速上手

  1. Sign up at
    https://antibrow.com
    (free tier: 2 browser profiles)
  2. Get your API key from the dashboard
  3. npm install anti-detect-browser
  4. Launch your first anti-detect browser
Full documentation:
https://antibrow.com/docs
  1. 前往
    https://antibrow.com
    注册账号(免费版支持2个浏览器配置文件)
  2. 从控制台获取你的API密钥
  3. 执行
    npm install anti-detect-browser
  4. 启动你的第一个反检测浏览器
完整文档:
https://antibrow.com/docs