Automation API
A local HTTP API for driving profiles from your own scripts — start a profile with its full fingerprint and proxy applied, and get back a real Chrome DevTools Protocol endpoint to attach Puppeteer, Playwright, or anything else that speaks CDP.
Base URL & auth
The API is bound to 127.0.0.1 only — nothing outside your machine can reach it. Find the port
and your token in the app's ⚙ Settings panel, which also has a ready-to-copy connection snippet.
| Base URL | http://127.0.0.1:<port> |
|---|---|
| Auth header | Authorization: Bearer <token> or X-API-Token: <token> |
Endpoints
GET/profiles
List every profile with its id, name, status, and whether it's currently running.
POST/profiles/:id/start
Launches the profile with its full fingerprint and proxy applied, and returns its CDP
webSocketDebuggerUrl. Add ?headless=true to launch without a visible window.
402 if the profile is frozen (over your account's current plan limit) —
upgrade or free up a slot to launch it.
POST/profiles/:id/stop
Stops the launched browser for that profile.
GET/profiles/:id/status
Returns whether the profile is currently running and its CDP endpoint if so.
Example: connect with Puppeteer
const res = await fetch('http://127.0.0.1:PORT/profiles/PROFILE_ID/start', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_TOKEN' }
})
const { webSocketDebuggerUrl } = await res.json()
const browser = await puppeteer.connect({ browserWSEndpoint: webSocketDebuggerUrl })
const [page] = await browser.pages()
await page.goto('https://example.com')
The same webSocketDebuggerUrl works with Playwright's chromium.connectOverCDP() or
any Selenium CDP-based driver.