---
title: "Perform a computer action"
method: POST
path: "/v1/sessions/{id}/computer"
---

# Perform a computer action

`POST /v1/sessions/{id}/computer`

## Request

- Base URL: `https://assemble-vms-api.fly.dev`
- URL: `https://assemble-vms-api.fly.dev/v1/sessions/{id}/computer`
- Auth: HTTP bearer

Click, type, press keys, scroll, drag, or capture the session desktop. Requires a running session; the desktop starts on first use. Actions run alongside commands and SSH without taking the session lease.

## Request body

- union: One desktop action. Keys use canonical names such as enter, escape, tab, letters, digits, and function keys.
  - object
    - `type` 'screenshot', required
  - object
    - `type` 'click', required
    - `x` integer, required
    - `y` integer, required
    - `button` 'left' | 'right' | 'middle'
    - `double` boolean
  - object
    - `type` 'move', required
    - `x` integer, required
    - `y` integer, required
  - object
    - `type` 'drag', required
    - `startX` integer, required
    - `startY` integer, required
    - `endX` integer, required
    - `endY` integer, required
    - `button` 'left' | 'right' | 'middle'
  - object
    - `type` 'scroll', required
    - `x` integer, required
    - `y` integer, required
    - `direction` 'up' | 'down', required
    - `amount` integer
  - object
    - `type` 'type', required
    - `text` string, required
  - object
    - `type` 'key', required
    - `key` string, required
    - `modifiers` string[]
  - object
    - `type` 'cursor_position', required
  - object
    - `type` 'display', required

## Response `200`

Action result. Screenshots return base64 PNG data.

- union
  - object
    - `action` 'screenshot', required
    - `format` 'png', required
    - `data` string, required: Base64-encoded image.
    - `width` integer
    - `height` integer
  - object
    - `action` 'cursor_position', required
    - `x` integer, required
    - `y` integer, required
  - object
    - `action` 'display', required
    - `width` integer, required
    - `height` integer, required
  - object
    - `action` 'click' | 'move' | 'drag' | 'scroll' | 'type' | 'key', required

## Other responses

- `default`: Structured API error. HTTP 400 invalid request, 401 authentication, 404 missing resource, 409 conflict, 413 size limit, 429 quota, or 503 unavailable.

---

[API](https://skmtc.dev/assemble/apis/assemble-vms-api.md) - [All operations](https://skmtc.dev/assemble/apis/assemble-vms-api/llms.txt) - [OpenAPI document](https://skmtc.dev/assemble/apis/assemble-vms-api/revisions/93f55a2e3de3?raw)
