Skip to main content
POST
Create a browser session

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Parameters for creating a browser session.

chrome_policy
object

Custom Chrome enterprise policy overrides applied to this browser session. Keys are Chrome enterprise policy names; values must match their expected types. Blocked: kernel-managed policies (extensions, proxy, CDP/automation). See https://chromeenterprise.google/policies/

extensions
object[]

List of browser extensions to load into the session. Provide each by id or name.

Maximum array length: 20

Extension selection for the browser session. Provide either id or name of an extension uploaded to Kernel.

gpu
boolean

If true, enables GPU acceleration for the browser session. Requires Start-Up or Enterprise plan and headless=false.

Example:

false

headless
boolean

If true, launches the browser using a headless image (no VNC/GUI). Defaults to false.

Example:

false

invocation_id
string

action invocation ID

Example:

"rr33xuugxj9h0bkf1rdt2bet"

kiosk_mode
boolean

If true, launches the browser in kiosk mode to hide address bar and tabs in live view.

Example:

true

name
string

Optional human-readable name for the browser session, used to find it later in the dashboard. Must be unique among active sessions within the project. Can be changed later via PATCH /browsers/{id_or_name}.

Required string length: 1 - 255
Pattern: ^[a-zA-Z0-9._-]{1,255}$
Example:

"checkout-flow-1"

network
object

Network configuration for the browser session. Cannot be changed after creation.

profile
object

Profile selection for the browser session. Provide either id or name. If specified, the matching profile will be loaded into the browser session. Profiles must be created beforehand.

proxy
object

Proxy configuration for the browser session. Cannot be combined with proxy_id. Omit to use the browser default: stealth browsers use Kernel's default stealth proxy, while non-stealth browsers use direct egress. Set mode to direct to force direct egress regardless of stealth. Set mode to default to explicitly use the browser default: Kernel's default stealth proxy when stealth=true, or direct egress when stealth=false. Select id or name to use that proxy regardless of stealth. Proxy selection does not change stealth or CAPTCHA solver behavior.

proxy_id
string
deprecated

Optional proxy to associate to the browser session. Must reference a proxy in the same project as the browser session. Deprecated in favor of proxy.

region
enum<string>

Geographic region for the browser session. It is fixed once the session is created. Region selection requires a Start-Up or Enterprise plan, defaults to us-east when omitted on create.

Available options:
us-east,
eu-west
start_url
string

Optional URL to open when the browser session is created. Navigation is best-effort, so navigation failures do not prevent the session from being created.

Example:

"https://example.com"

stealth
boolean

If true, launches the browser in stealth mode and enables the CAPTCHA solver. Defaults to false. When proxy is omitted, stealth browsers use Kernel's default stealth proxy and non-stealth browsers use direct egress. An explicit proxy configuration changes only egress; it does not enable or disable stealth or the CAPTCHA solver.

Example:

true

tags
object

Optional user-defined key-value tags for the browser session, used to find and group sessions later. Can be changed later via PATCH /browsers/{id_or_name}. Up to 50 pairs.

Example:
telemetry
object | null

Telemetry configuration for the browser session. Set enabled to true to start capture using VM defaults, or provide browser category settings. If omitted, null, set to an empty object ({}), set to enabled: false without browser category settings, or all four categories are explicitly disabled, capture is not started.

timeout_seconds
integer

The number of seconds of inactivity before the browser session is terminated. Activity includes CDP connections and live view connections. Defaults to 60 seconds. Minimum allowed is 10 seconds. Maximum allowed is 259200 (72 hours). We check for inactivity every 5 seconds, so the actual timeout behavior you will see is +/- 5 seconds around the specified value.

Required range: 10 <= x <= 259200
viewport
object

Initial browser window size in pixels with optional refresh rate. If omitted, image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For GPU images, recommended presets use one of these resolutions with refresh rates 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view or recording behavior. If refresh_rate is not provided, it will be automatically determined based on the resolution (higher resolutions use lower refresh rates to keep bandwidth reasonable).

Response

Successful response

cdp_ws_url
string
required

Websocket URL for Chrome DevTools Protocol connections to the browser session

Example:

"wss://proxy.yul-upbeat-herschel.onkernel.com:8443/browser/cdp?jwt=eyJ0eXAi..."

created_at
string<date-time>
required

When the browser session was created.

headless
boolean
required

Whether the browser session is running in headless mode.

Example:

false

region
enum<string>
required

Geographic region of the browser session. Fixed once the session is created.

Available options:
us-east,
eu-west
session_id
string
required

Unique identifier for the browser session

Example:

"htzv5orfit78e1m2biiifpbv"

stealth
boolean
required

Whether the browser session is running in stealth mode.

Example:

false

timeout_seconds
integer
required

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

webdriver_ws_url
string
required

Websocket URL for WebDriver BiDi connections to the browser session

Example:

"wss://proxy.yul-upbeat-herschel.onkernel.com:8443/browser/webdriver/session?jwt=eyJ0eXAi..."

base_url
string

Metro-API HTTP base URL for this browser session.

Example:

"https://proxy.yul-upbeat-herschel.onkernel.com:8443/browser/kernel"

browser_live_view_url
string

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

Example:

"https://proxy.yul-upbeat-herschel.onkernel.com:8443/browser/live?jwt=eyJ0eXAi..."

chrome_policy
object

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

deleted_at
string<date-time>

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

gpu
boolean

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

Example:

false

kiosk_mode
boolean

Whether the browser session is running in kiosk mode.

Example:

false

name
string

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

Example:

"checkout-flow-1"

network
object

Network configuration the session was created with, if any. Omitted when the session has no network configuration.

pool
object

Browser pool this session was acquired from, if any.

profile
object

Browser profile metadata.

profile_save_changes
boolean

Whether changes made during this browser session are saved back to its profile when the session ends. Omitted when no profile is attached.

proxy
object

Resolved proxy configuration for this browser session.

proxy_id
string
deprecated

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

start_url
string

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.

Example:

"https://example.com"

tags
object

User-defined key-value tags that were set on this browser session, if any. Echoed back when present.

Example:
telemetry
object | null

Active telemetry configuration for the session, if any.

usage
object

Session usage metrics.

viewport
object

Initial browser window size in pixels with optional refresh rate. If omitted, image defaults apply (1920x1080@25). For GPU images, the default is 1920x1080@60. Arbitrary viewport dimensions and refresh rates are accepted. Known-good presets include: 2560x1440@10, 1920x1080@25, 1920x1200@25, 1440x900@25, 1280x800@60, 1024x768@60, 1200x800@60, 768x1024@60, 390x844@60. For GPU images, recommended presets use one of these resolutions with refresh rates 60, 30, 25, or 10: 800x600, 960x720, 1024x576, 1024x768, 1152x648, 1200x800, 1280x720, 1368x768, 1440x900, 1600x900, 1920x1080, 1920x1200, 390x844, 360x250, 768x1024, 800x1600. Viewports outside this list may exhibit unstable live view or recording behavior. If refresh_rate is not provided, it will be automatically determined based on the resolution (higher resolutions use lower refresh rates to keep bandwidth reasonable).