Schedule Tests
Control your Windows instance remotely
Overview
Skylight instances are designed for programmatic control, meaning you don’t need a physical mouse or keyboard to operate the desktop. To enable this, the Interactions API provides a variety of endpoints for performing actions on the virtual machine. The API can be used for manual Robotic Process Automation (RPA) or integrated into computer-use agents (for more information, see Agents).
Available Operations
- screenshot - Take a screenshot
- click - Perform a mouse click
- move - Move the mouse cursor
- drag - Perform a drag operation
- scroll - Scroll the screen
- type - Type text
- keypress - Press keys simultaneously
- get_file - Download a file from the VM
- install - Install applications
screenshot
Take a screenshot of the virtual desktop.
screenshot
returns a JSON with an ‘image’ key. The value is a Base64-encoded JPEG image of the instance screenshot (1366x768).
click
Perform a click operation at specified coordinates or current position.
Input | Type | Required | Default | Description |
---|---|---|---|---|
x | integer | null | No | null | X coordinate to click at |
y | integer | null | No | null | Y coordinate to click at |
button | enum | No | "left" | Mouse button to use ("left" , "right" , "middle" ) |
clicks | integer | No | 1 | Number of clicks (range: 1-10) |
interval | number | null | No | 0 | Time between clicks in seconds (range: 0-1) |
click
returns a JSON with two keys: ‘status’ (e.g. “Success”) and ‘message’.
move
Move the mouse to the specified coordinates.
Input | Type | Required | Description |
---|---|---|---|
x | integer | Yes | X coordinate to move to |
y | integer | Yes | Y coordinate to move to |
move
returns a JSON with two keys: ‘status’ (e.g. “Success”) and ‘message’.
drag
Perform a drag operation along a path of coordinates.
Input | Type | Required | Default | Description |
---|---|---|---|---|
path | object[] | Yes | - | List of points to drag through, each with x and y coordinates |
button | enum | No | "left" | Mouse button to use ("left" , "right" , "middle" ) |
step | integer | null | No | null | Step size for drag movements (range: 1-100) |
drag
returns a JSON with two keys: ‘status’ (e.g. “Success”) and ‘message’.
scroll
Scroll at the specified coordinates.
Input | Type | Required | Default | Description |
---|---|---|---|---|
x | integer | Yes | - | X coordinate to scroll at |
y | integer | Yes | - | Y coordinate to scroll at |
scroll_x | integer | No | 0 | Horizontal scroll amount |
scroll_y | integer | No | 0 | Vertical scroll amount |
step | integer | null | No | - | Step size for scroll movements (range: 1-100) |
scroll
returns a JSON with two keys: ‘status’ (e.g. “Success”) and ‘message’.
type
Type the specified text with optional delay between keystrokes.
Input | Type | Required | Default | Description |
---|---|---|---|---|
text | string | Yes | - | Text to type |
interval | number | null | No | 0.05 | Time between keystrokes in seconds (range: 0.01-0.5) |
type
returns a JSON with two keys: ‘status’ (e.g. “Success”) and ‘message’.
keypress
Press the specified keys simultaneously.
Input | Type | Required | Description |
---|---|---|---|
keys | string[] | Yes | List of keys to press simultaneously |
keypress
returns a JSON with two keys: ‘status’ (e.g. “Success”) and ‘message’.
get_file
Get a URL to download the file.
get_file
returns a JSON with two keys: ‘download_url’ and ‘expires_in’.
install
Install additional software packages using the Chocolatey package manager. install
takes in a list of Chocolatey package names to install. A complete list of available packages can be found at https://community.chocolatey.org/packages.
The install
endpoint returns a JSON with these properties:
Property | Description | Example |
---|---|---|
status | Status of the operation | "success" |
message | Human-readable status message | "Operation completed successfully" |
state | State of the instance | "running" |
command_id | Command ID for tracking installation progress | "cmd-123456" or null |