v97

latestOpenAPI 3.1.0raw.githubusercontent.com2026-07-31135175384.2 KB
Browser Pools

Acquire a browser from the pool

Long-polling endpoint to acquire a browser from the pool. Returns immediately when a browser is available, or returns 204 No Content when the poll times out. The client should retry the request to continue waiting for a browser. The acquired browser will use the pool's timeout_seconds for its idle timeout.

post/browser_pools/{id_or_name}/acquire

Path parameters

id_or_namestring required

Browser pool ID or name

Request body

acquire_timeout_secondsinteger

Maximum number of seconds to wait for a browser to be available. Defaults to the calculated time it would take to fill the pool at the currently configured fill rate.

namestring

Optional human-readable name for the acquired browser session, used to find it later in the dashboard. Must be unique among active sessions within the pool's project. Applies to this lease only and is cleared when the browser is released back to the pool.

tagsTags

User-defined key-value tags.

start_urlstring

Optional URL to navigate the acquired browser to. Overrides the pool's start_url for this acquire only. Best-effort: failures to navigate do not fail the acquire.

Example request

{
  "name": "checkout-flow-1",
  "tags": {
    "team": "backend",
    "env": "staging"
  },
  "start_url": "https://example.com"
}

Response

Browser acquired successfully

created_atstring date-time required

When the browser session was created.

cdp_ws_urlstring required

Websocket URL for Chrome DevTools Protocol connections to the browser session

webdriver_ws_urlstring required

Websocket URL for WebDriver BiDi connections to the browser session

browser_live_view_urlstring

Remote URL for live viewing the browser session. Only available for non-headless browsers.

base_urlstring

Metro-API HTTP base URL for this browser session.

headlessboolean required

Whether the browser session is running in headless mode.

stealthboolean required

Whether the browser session is running in stealth mode.

gpuboolean

Whether GPU acceleration is enabled for the browser session (only supported for headful sessions).

session_idstring required

Unique identifier for the browser session

namestring

Human-readable name of the browser session, if one was set at creation.

timeout_secondsinteger required

The number of seconds of inactivity before the browser session is terminated.

proxy_idstring

ID of the proxy associated with this browser session, if any.

kiosk_modeboolean

Whether the browser session is running in kiosk mode.

start_urlstring

URL the session was asked to navigate to on creation, if any. Recorded for debugging. Navigation is fire-and-forget — the URL is dispatched to the browser without waiting for it to load, and any errors (DNS failure, bad status, timeout) are silently dropped. Captures what was requested, not what the browser actually loaded.

chrome_policyobject

Custom Chrome enterprise policy overrides that were applied to this browser session, if any. Echoed back for verification. Keys are Chrome enterprise policy names.

tagsTags

User-defined key-value tags.

deleted_atstring date-time

When the browser session was soft-deleted. Only present for deleted sessions.

Example response

{
  "cdp_ws_url": "wss://proxy.yul-upbeat-herschel.onkernel.com:8443/browser/cdp?jwt=eyJ0eXAi...",
  "webdriver_ws_url": "wss://proxy.yul-upbeat-herschel.onkernel.com:8443/browser/webdriver/session?jwt=eyJ0eXAi...",
  "browser_live_view_url": "https://proxy.yul-upbeat-herschel.onkernel.com:8443/browser/live?jwt=eyJ0eXAi...",
  "base_url": "https://proxy.yul-upbeat-herschel.onkernel.com:8443/browser/kernel",
  "session_id": "htzv5orfit78e1m2biiifpbv",
  "name": "checkout-flow-1",
  "viewport": {
    "width": 1280,
    "height": 800,
    "refresh_rate": 60
  },
  "start_url": "https://example.com",
  "tags": {
    "team": "backend",
    "env": "staging"
  }
}