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
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.
Quick start
npm
install
anti-detect-browser
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
(
)
Core concepts
Profiles — persistent browser identities
A profile saves cookies, localStorage, and session data across launches. Same profile name = same stored state next time.
// 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
Fingerprints — real device data from the cloud
Each launch fetches a real fingerprint collected from actual devices. Over 30 categories (Canvas, WebGL, Audio, Fonts, WebRTC, WebGPU, etc.) with 500+ individual parameters.
// 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
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.
await
ab
.
launch
(
{
profile
:
'twitter-main'
,
label
:
'@myhandle'
,
// floating label + window title
color
:
'#e74c3c'
,
// unique window border color
}
)
Proxy integration
Route each browser through a different proxy for geo-targeting or IP rotation.
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
Monitor headless sessions from the
https://antibrow.com
dashboard. Useful for debugging AI agent actions or letting team members observe.
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
Inject into existing Playwright setup
Already have Playwright scripts? Add fingerprints without changing your workflow.
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
Run as an MCP server so AI agents can launch and control fingerprint browsers via tool calls.
{
"mcpServers"
:
{
"anti-detect-browser"
:
{
"command"
:
"npx"
,
"args"
:
[
"anti-detect-browser"
,
"--mcp"
]
,
"env"
:
{
"ANTI_DETECT_BROWSER_KEY"
:
"your-api-key"
}
}
}
}
Available tools:
Tool
What 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
Workflow examples
Multi-account social media
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
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
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
)
}
REST API
Base URL:
https://antibrow.com/api/v1/
— all endpoints require
Authorization: Bearer
anti-detect-browser
安装
npx skills add https://github.com/antibrow/anti-detect-browser-skills --skill anti-detect-browser