Terminology
Common terms used across the Browserless documentation and main site.
WebSocket Endpoint
The WebSocket endpoint (wsEndpoint()) is the internal browser's native WebSocket URL that the browser process exposes when launched. This is a local address (e.g., ws://127.0.0.1:9222/devtools/browser/...) that points directly to the browser's debugging port.
For CDP browsers, this endpoint is obtained after launching the browser and represents the raw connection point to Chrome DevTools Protocol. For Playwright browsers, it's similarly obtained from the browser server's wsEndpoint() method.
Connection URL
The connection URL (publicWSEndpoint()) is the externally-accessible URL that clients use to connect to the browser through Browserless. This URL combines the internal WebSocket endpoint's path with the configured external address. Example: wss://chrome.browserless.io/chromium?token=YOUR-API-TOKEN
Worker
A worker is a Browserless container instance running on a virtual machine. Cloud-Unit plans use a distributed fleet of workers to serve multiple users simultaneously, while Enterprise customers can work with us to provision appropriately sized workers and scale them to meet their specific traffic requirements.
Session
A session represents an active, connected Chrome instance. Browserless automatically queues up to twice your concurrency limit, allowing traffic bursts without code changes. Continue using puppeteer.connect() and requests queue when capacity is reached.
To handle higher session volumes, you can scale up your worker size or deploy additional worker instances.
Concurrency
Concurrency is the maximum number of browser sessions that can run simultaneously on a Browserless instance. This controls how many parallel browser automations execute at once.
For self-hosted instances, configure concurrency via the CONCURRENT or MAX_CONCURRENT_SESSIONS environment variables (default: 10). See our pricing plans for plan-specific concurrency limits.
There's also a queue system configured via QUEUED or QUEUE_LENGTH environment variables (default 10) that allows requests to wait when concurrency is at capacity.
You can check current concurrency usage via the /pressure API endpoint, which returns:
running: Current number of active sessionsqueued: Current number of queued sessionsmaxConcurrent: Maximum allowed concurrent sessionsmaxQueued: Maximum allowed queued sessions
Pressure
Pressure indicates how much load your workers are under at any given time. Use the /pressure REST endpoint (see Configuration Reference) or the GraphQL pressure() query (see GraphQL API) to check whether your instance can handle another connection before starting a new session.