Overview
BrowserView gives you disposable cloud Chromium sessions with two ways in: a Chrome DevTools Protocol endpoint for agents and a live viewer for humans. Same browser, same moment.
Concepts
- Session — one Chromium instance in its own container on its own private network. Created in about five seconds, destroyed on request or automatically when idle or expired.
- API key — a
bv_live_…secret minted in the console. It authenticates lifecycle calls (create, list, destroy) and never needs to reach a browser or an end user. - Session tokens — short-lived signed tokens scoped to a single session:
view(watch only — input is stripped server-side),control(watch + mouse/keyboard), andcdp(DevTools access). Leaking one exposes one session for a bounded time, not your account.
Quickstart
1. Create an account and mint an API key in the console.
2. Create a session:
Terminal
curl -X POST https://sessions.browserview.io/sessions \ -H "Authorization: Bearer $BROWSERVIEW_API_KEY" \ -H "Content-Type: application/json" \ -d '{"start_url": "https://example.com"}'The response includes everything you need — no second call required:
Response
{ "id": "3f9c62d81b4a", "status": "running", "health": "healthy", "viewer_url": "/sessions/3f9c62d81b4a/viewer?token=<control token>", "watch_url": "/sessions/3f9c62d81b4a/viewer?token=<view-only token>", "cdp_url": "/sessions/3f9c62d81b4a/cdp", "cdp_token": "<cdp token>", "token_ttl_seconds": 3600}3. Open viewer_url (relative to https://sessions.browserview.io) in a browser tab to watch, and connect your agent to the same session:
agent.ts
import { chromium } from "playwright"; const browser = await chromium.connectOverCDP( "https://sessions.browserview.io" + session.cdp_url, { headers: { "x-session-token": session.cdp_token } },);const page = browser.contexts()[0].pages()[0];await page.goto("https://news.ycombinator.com");4. Destroy the session when you are done (or let idle reaping do it):
Terminal
curl -X DELETE https://sessions.browserview.io/sessions/3f9c62d81b4a \ -H "Authorization: Bearer $BROWSERVIEW_API_KEY"Session lifecycle
| Event | What happens |
|---|---|
| Create | POST /sessions returns once the browser answers on DevTools (about 5 seconds). Pass "wait": false to return immediately and poll. |
| Idle | Sessions with no viewer or CDP connection for 15 minutes are destroyed automatically. |
| Lifetime | Sessions are hard-capped at 4 hours regardless of activity. |
| Destroy | The container, its network, and all browsing data are deleted. Nothing persists between sessions. |
Where next
- API reference — every endpoint, token scopes, errors, and rate limits.
- SDKs — TypeScript, Python, and Go clients.
- MCP server — give any MCP-capable agent session management tools.
- Agent integrations — patterns for Anthropic, OpenAI, and other agent stacks.