📖 BrowserIP Docs
🌐 English

Browser access

Every session gets a dedicated CDP address ("Copy CDP address" in the dashboard), and the session id is a UUID:

https://browserip.com/s/<session-id>/<token>

The underlying WebSocket runs under wss://browserip.com/s/<session-id>/<token> on the devtools path; the webSocketDebuggerUrl you get from the /json endpoint is already rewritten, so just connect with the CDP address — no need to build the WebSocket URL by hand. Each session owns a dedicated browser instance (separate process/context), fully isolated.

Note: this CDP address is not the same as the visual page you open in the browser — the visual page is https://browserip.com/view/<session-id>/<token> (click “Open” in the dashboard) for driving the browser by hand; the /s/ address is for programs (browser-use / Playwright / Puppeteer) to connect over CDP.

browser-use (Python)

from browser_use.browser import BrowserSession
from browser_use.agent.service import Agent

# cdp_url comes from "Copy CDP address" in the dashboard
browser_session = BrowserSession(cdp_url="https://browserip.com/s/<session-id>/<token>")
agent = Agent(task="...", llm=..., browser_session=browser_session)
await agent.run()

Playwright

Python:

from playwright.async_api import async_playwright

async with async_playwright() as p:
    browser = await p.chromium.connect_over_cdp(
        "https://browserip.com/s/<session-id>/<token>")
    page = browser.contexts[0].pages[0]
    await page.goto("https://example.com")

JavaScript:

const { chromium } = require('playwright');

const browser = await chromium.connectOverCDP(
  'https://browserip.com/s/<session-id>/<token>');
const page = browser.contexts()[0].pages()[0];
await page.goto('https://example.com');

Puppeteer (JavaScript)

const puppeteer = require('puppeteer');

const browser = await puppeteer.connect({
  browserURL: 'https://browserip.com/s/<session-id>/<token>',
});
const page = (await browser.pages())[0];
await page.goto('https://example.com');
⏱️ Keep the session active while connected: 20 minutes without CDP activity triggers automatic reclaim; for long tasks, interact periodically or relaunch.