POST
/
v0
/
vm
curl --request POST \
  --url https://engine.hyperbeam.com/v0/vm \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "start_url": "<string>",
  "kiosk": true,
  "timeout": {
    "absolute": 123,
    "inactive": 123,
    "offline": 123,
    "warning": 123,
    "webhook": {
      "url": "<string>",
      "bearer": "<string>"
    }
  },
  "control_disable_default": true,
  "region": "<string>",
  "profile": {
    "load": "<string>",
    "save": true
  },
  "ublock": true,
  "extension": {
    "field": "<string>"
  },
  "webgl": true,
  "width": 123,
  "height": 123,
  "fps": 123,
  "hide_cursor": true,
  "search_engine": {},
  "dark": true,
  "tag": "<string>",
  "quality": {
    "mode": "<string>"
  }
}'
{
  "session_id": "52f968cb-6739-4197-83d7-2305fe5d6f54",
  "embed_url": "https://vwdrccwgpv181powg61ggyvy.hyperbeam.com/Uvloy2c5QZeD1yMF_l1vVA?token=c8iw3SmQglOU0ugfLr3dWY2LalSKI_WOGUldEt8knbw",
  "admin_token": "51JOZEEcMp4trCwbpTS3jjQc0lSmeAZpPfxioDqe73U"
}

Parameters

start_url
string
default: "about:blank"

The initial URL that is set in the browser. If unset, and a profile is loaded, tabs from the profile are restored

kiosk
boolean
default: false

Flag to enable kiosk mode, which hides the browser navigation UI

timeout
object

Timeouts determine when a session will be automatically terminated. Also, when a timeout (or timeout warning) is triggered, a webhook event will be sent to the URL specified by the webhook timeout parameter.

You can reset these values for live sessions by hitting the <embed_url>/timeout endpoint. See example.

control_disable_default
boolean
default: false

If true, users cannot control the browser by default, and need to be manually granted access by an admin user

region
string
default: "NA"

The server region: NA → North America, EU → Europe, AS → Asia

profile
object

Used to save and load Chrome profiles including bookmarks, history, passwords, cookies etc.

ublock
boolean
default: false

Flag to install the UBlock Origin extension on the cloud browser

extension
object

Used to install custom Chrome extensions. (Max Size 1MB).

webgl
boolean
default: false

Enables WebGL. Some games and interactive activities require WebGL

width
number
default: 1280

Width of the browser in pixels. If set, height must be set as well.

The max number of pixels (width height) is capped at 1920*1080.

height
number
default: 720

Height of the browser in pixels. If set, width must be set as well.

The max number of pixels (width height) is capped at 1920*1080.

fps
number
default: 24

Integer frame rate of the browser. Must be in the range [24, 60]

hide_cursor
boolean
default: false

Hides the system cursor. Useful if you want to implement a multi-cursor user interface.

search_engine
string | object
default: "duckduckgo"

Sets the default search engine that Chromium uses: “duckduckgo” | “ecosia” | “google” | “startpage” | “brave”

dark
boolean
default: false

Enables dark mode

tag
string

The tag property enforces uniqueness. If a session with tag "A" is already running and you attempt to make another session with tag "A", the endpoint will not create a new instance and will instead return the session_id and embed_url of the existing session.

quality
object

Used to toggle between sharp mode and smooth mode. Sharp mode is ideal for situations where reading text is important. Smooth mode is ideal for anything involving movement (e.g. videos, dynamic activities).

Response

session_id
string

The ID of the cloud computer session

embed_url
string

A URL you can load into the web client on your website

admin_token
string

A token that grants access to an exclusive subset of the client-side web SDK. Needed for setting permissions and programmatic navigation