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 URLhttp://127.0.0.1:<port>
Auth headerAuthorization: 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.

Returns 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.