Sign Up

Computer Use

Find accessibility nodes

POST
/computeruse/a11y/find

Search the AT-SPI tree for nodes matching a role/name/state filter and return a flat list.

Request Body

Find request

application/json
  1. body
limit?integer
name?string
nameMatch?string

"exact" | "substring" | "regex"

pid?integer
role?string
scope?string
states?array<string>

Response Body

OK

application/json
  1. response
matches?array<>
truncated?boolean
curl -X POST 'https://example.com/computeruse/a11y/find' \  -H 'Content-Type: application/json' \  -d '{}'
{  "matches": [    {      "actions": [        "string"      ],      "bounds": {        "height": 0,        "width": 0,        "x": 0,        "y": 0      },      "children": [        {}      ],      "description": "string",      "id": "string",      "name": "string",      "role": "string",      "states": [        "string"      ]    }  ],  "truncated": true}
POST
/computeruse/a11y/node/focus

Move keyboard focus to the AT-SPI node identified by id (bus-name:object-path).

Request Body

Node focus request

application/json
  1. body
id*string

Response Body

OK

application/json
  1. response
curl -X POST 'https://example.com/computeruse/a11y/node/focus' \  -H 'Content-Type: application/json' \  -d '{  "id": "string"}'
{}
POST
/computeruse/a11y/node/invoke

Call an AT-SPI Action on the node. Leave action empty to invoke the node's primary (first) action.

Request Body

Invoke request

application/json
  1. body
action?string
id*string

Response Body

OK

application/json
  1. response
curl -X POST 'https://example.com/computeruse/a11y/node/invoke' \  -H 'Content-Type: application/json' \  -d '{  "id": "string"}'
{}
POST
/computeruse/a11y/node/value

Write the given value to the node via EditableText.SetTextContents or, for numeric controls, Value.CurrentValue.

Request Body

Set value request

application/json
  1. body
id*string
value?string

Response Body

OK

application/json
  1. response
curl -X POST 'https://example.com/computeruse/a11y/node/value' \  -H 'Content-Type: application/json' \  -d '{  "id": "string"}'
{}

Get accessibility tree

GET
/computeruse/a11y/tree

Fetch the AT-SPI accessibility tree for the focused application, a specific PID, or all registered applications.

Query Parameters

scope?string

Scope: focused | pid | all (default: focused)

pid?integer

Process ID when scope=pid

maxDepth?integer

Max tree depth (-1 unbounded, 0 root only; default -1)

Response Body

OK

application/json
  1. response
root?
truncated?boolean
curl -X GET 'https://example.com/computeruse/a11y/tree'
{  "root": {    "actions": [      "string"    ],    "bounds": {      "height": 0,      "width": 0,      "x": 0,      "y": 0    },    "children": [      {}    ],    "description": "string",    "id": "string",    "name": "string",    "role": "string",    "states": [      "string"    ]  },  "truncated": true}

Get display information

GET
/computeruse/display/info

Get information about all available displays

Response Body

OK

application/json
  1. response
displays?array<>
curl -X GET 'https://example.com/computeruse/display/info'
{  "displays": [    {      "height": 0,      "id": 0,      "isActive": true,      "width": 0,      "x": 0,      "y": 0    }  ]}

Get windows information

GET
/computeruse/display/windows

Get information about all open windows

Response Body

OK

application/json
  1. response
windows?array<>
curl -X GET 'https://example.com/computeruse/display/windows'
{  "windows": [    {      "height": 0,      "id": 0,      "isActive": true,      "title": "string",      "width": 0,      "x": 0,      "y": 0    }  ]}
POST
/computeruse/keyboard/down

Press a key or modifier and hold it down until a matching key up call

Request Body

Key down request

application/json
  1. body
key*string

e.g., "ctrl", "shift", "a"

Response Body

OK

application/json
  1. response
curl -X POST 'https://example.com/computeruse/keyboard/down' \  -H 'Content-Type: application/json' \  -d '{  "key": "string"}'
{}

Press hotkey

POST
/computeruse/keyboard/hotkey

Press a hotkey combination (e.g., ctrl+c, cmd+v)

Request Body

Hotkey press request

application/json
  1. body
keys?string

e.g., "ctrl+c", "cmd+v"

Response Body

OK

application/json
  1. response
curl -X POST 'https://example.com/computeruse/keyboard/hotkey' \  -H 'Content-Type: application/json' \  -d '{}'
{}

Press key

POST
/computeruse/keyboard/key

Press a key with optional modifiers

Request Body

Key press request

application/json
  1. body
key?string
modifiers?array<string>

ctrl, alt, shift, cmd

Response Body

OK

application/json
  1. response
curl -X POST 'https://example.com/computeruse/keyboard/key' \  -H 'Content-Type: application/json' \  -d '{}'
{}

Type text

POST
/computeruse/keyboard/type

Type text with optional delay between keystrokes

Request Body

Text typing request

application/json
  1. body
delay?integer

milliseconds between keystrokes

text?string

Response Body

OK

application/json
  1. response
curl -X POST 'https://example.com/computeruse/keyboard/type' \  -H 'Content-Type: application/json' \  -d '{}'
{}
POST
/computeruse/keyboard/up

Release a key or modifier that is currently held down

Request Body

Key up request

application/json
  1. body
key*string

e.g., "ctrl", "shift", "a"

Response Body

OK

application/json
  1. response
curl -X POST 'https://example.com/computeruse/keyboard/up' \  -H 'Content-Type: application/json' \  -d '{  "key": "string"}'
{}

Click mouse button

POST
/computeruse/mouse/click

Click the mouse button at the specified coordinates

Request Body

Mouse click request

application/json
  1. body
button?string

left, right, middle

clicks?integer

Clicks is a pointer so an omitted value is distinguishable from an explicit 0, which must be rejected rather than silently defaulted.

double?boolean
modifiers?array<string>
x?integer
y?integer

Response Body

OK

application/json
  1. response
x?integer
y?integer
curl -X POST 'https://example.com/computeruse/mouse/click' \  -H 'Content-Type: application/json' \  -d '{}'
{  "x": 0,  "y": 0}

Press mouse button

POST
/computeruse/mouse/down

Press and hold a mouse button, optionally moving to the specified coordinates first

Request Body

Mouse button press request

application/json
  1. body
button?string

left, right, middle

x?integer
y?integer

Response Body

OK

application/json
  1. response
x?integer
y?integer
curl -X POST 'https://example.com/computeruse/mouse/down' \  -H 'Content-Type: application/json' \  -d '{}'
{  "x": 0,  "y": 0}

Drag mouse

POST
/computeruse/mouse/drag

Drag the mouse from start to end coordinates

Request Body

Mouse drag request

application/json
  1. body
button?string
endX?integer
endY?integer
modifiers?array<string>
startX?integer
startY?integer

Response Body

OK

application/json
  1. response
x?integer
y?integer
curl -X POST 'https://example.com/computeruse/mouse/drag' \  -H 'Content-Type: application/json' \  -d '{}'
{  "x": 0,  "y": 0}

Move mouse cursor

POST
/computeruse/mouse/move

Move the mouse cursor to the specified coordinates

Request Body

Mouse move request

application/json
  1. body
x?integer
y?integer

Response Body

OK

application/json
  1. response
x?integer
y?integer
curl -X POST 'https://example.com/computeruse/mouse/move' \  -H 'Content-Type: application/json' \  -d '{}'
{  "x": 0,  "y": 0}

Get mouse position

GET
/computeruse/mouse/position

Get the current mouse cursor position

Response Body

OK

application/json
  1. response
x?integer
y?integer
curl -X GET 'https://example.com/computeruse/mouse/position'
{  "x": 0,  "y": 0}

Scroll mouse wheel

POST
/computeruse/mouse/scroll

Scroll the mouse wheel at the specified coordinates

Request Body

Mouse scroll request

application/json
  1. body
amount?integer
Range0 <= value
Default1
direction?string

up, down, left, right

modifiers?array<string>
x?integer
y?integer

Response Body

OK

application/json
  1. response
success?boolean
curl -X POST 'https://example.com/computeruse/mouse/scroll' \  -H 'Content-Type: application/json' \  -d '{}'
{  "success": true}

Release mouse button

POST
/computeruse/mouse/up

Release a held mouse button, optionally moving to the specified coordinates first

Request Body

Mouse button release request

application/json
  1. body
button?string

left, right, middle

x?integer
y?integer

Response Body

OK

application/json
  1. response
x?integer
y?integer
curl -X POST 'https://example.com/computeruse/mouse/up' \  -H 'Content-Type: application/json' \  -d '{}'
{  "x": 0,  "y": 0}
GET
/computeruse/process-status

Get the status of all computer use processes

Response Body

OK

application/json
  1. response
status?string
curl -X GET 'https://example.com/computeruse/process-status'
{  "status": "string"}

Get process errors

GET
/computeruse/process/{processName}/errors

Get errors for a specific computer use process

Path Parameters

processName*string

Process name to get errors for

Response Body

OK

application/json
  1. response
errors?string
processName?string
curl -X GET 'https://example.com/computeruse/process/string/errors'
{  "errors": "string",  "processName": "string"}

Get process logs

GET
/computeruse/process/{processName}/logs

Get logs for a specific computer use process

Path Parameters

processName*string

Process name to get logs for

Response Body

OK

application/json
  1. response
logs?string
processName?string
curl -X GET 'https://example.com/computeruse/process/string/logs'
{  "logs": "string",  "processName": "string"}

Restart specific process

POST
/computeruse/process/{processName}/restart

Restart a specific computer use process

Path Parameters

processName*string

Process name to restart

Response Body

OK

application/json
  1. response
message?string
processName?string
curl -X POST 'https://example.com/computeruse/process/string/restart'
{  "message": "string",  "processName": "string"}
GET
/computeruse/process/{processName}/status

Check if a specific computer use process is running

Path Parameters

processName*string

Process name to check

Response Body

OK

application/json
  1. response
processName?string
running?boolean
curl -X GET 'https://example.com/computeruse/process/string/status'
{  "processName": "string",  "running": true}

List all recordings

GET
/computeruse/recordings

Get a list of all recordings (active and completed)

Response Body

OK

application/json
  1. response
recordings*array<>
curl -X GET 'https://example.com/computeruse/recordings'
{  "recordings": [    {      "durationSeconds": 0,      "endTime": "string",      "fileName": "string",      "filePath": "string",      "id": "string",      "sizeBytes": 0,      "startTime": "string",      "status": "string"    }  ]}

Start a new recording

POST
/computeruse/recordings/start

Start a new screen recording session

Request Body

Recording options

application/json
  1. body
label?string

Response Body

Created

application/json
  1. response
durationSeconds?number
endTime?string
fileName*string
filePath*string
id*string
sizeBytes?integer
startTime*string
status*string
curl -X POST 'https://example.com/computeruse/recordings/start' \  -H 'Content-Type: application/json' \  -d '{}'
{  "durationSeconds": 0,  "endTime": "string",  "fileName": "string",  "filePath": "string",  "id": "string",  "sizeBytes": 0,  "startTime": "string",  "status": "string"}

Stop a recording

POST
/computeruse/recordings/stop

Stop an active screen recording session

Request Body

Recording ID to stop

application/json
  1. body
id*string

Response Body

OK

application/json
  1. response
durationSeconds?number
endTime?string
fileName*string
filePath*string
id*string
sizeBytes?integer
startTime*string
status*string
curl -X POST 'https://example.com/computeruse/recordings/stop' \  -H 'Content-Type: application/json' \  -d '{  "id": "string"}'
{  "durationSeconds": 0,  "endTime": "string",  "fileName": "string",  "filePath": "string",  "id": "string",  "sizeBytes": 0,  "startTime": "string",  "status": "string"}

Get recording details

GET
/computeruse/recordings/{id}

Get details of a specific recording by ID

Path Parameters

id*string

Recording ID

Response Body

OK

application/json
  1. response
durationSeconds?number
endTime?string
fileName*string
filePath*string
id*string
sizeBytes?integer
startTime*string
status*string
curl -X GET 'https://example.com/computeruse/recordings/string'
{  "durationSeconds": 0,  "endTime": "string",  "fileName": "string",  "filePath": "string",  "id": "string",  "sizeBytes": 0,  "startTime": "string",  "status": "string"}

Delete a recording

DELETE
/computeruse/recordings/{id}

Delete a recording file by ID

Path Parameters

id*string

Recording ID

Response Body

No Content

curl -X DELETE 'https://example.com/computeruse/recordings/string'
Empty

Download a recording

GET
/computeruse/recordings/{id}/download

Download a recording by providing its ID

Path Parameters

id*string

Recording ID

Response Body

OK

response?unknownapplication/octet-stream
curl -X GET 'https://example.com/computeruse/recordings/string/download'
null

Take a screenshot

GET
/computeruse/screenshot

Take a screenshot of the entire screen

Query Parameters

showCursor?boolean

Whether to show cursor in screenshot

Response Body

OK

application/json
  1. response
cursorPosition?
screenshot?string
sizeBytes?integer
curl -X GET 'https://example.com/computeruse/screenshot'
{  "cursorPosition": {    "x": 0,    "y": 0  },  "screenshot": "string",  "sizeBytes": 0}
GET
/computeruse/screenshot/compressed

Take a compressed screenshot of the entire screen

Query Parameters

showCursor?boolean

Whether to show cursor in screenshot

format?string

Image format (png or jpeg)

quality?integer

JPEG quality (1-100)

scale?number

Scale factor (0.1-1.0)

Response Body

OK

application/json
  1. response
cursorPosition?
screenshot?string
sizeBytes?integer
curl -X GET 'https://example.com/computeruse/screenshot/compressed'
{  "cursorPosition": {    "x": 0,    "y": 0  },  "screenshot": "string",  "sizeBytes": 0}

Take a region screenshot

GET
/computeruse/screenshot/region

Take a screenshot of a specific region of the screen

Query Parameters

x*integer

X coordinate of the region

y*integer

Y coordinate of the region

width*integer

Width of the region

height*integer

Height of the region

showCursor?boolean

Whether to show cursor in screenshot

Response Body

OK

application/json
  1. response
cursorPosition?
screenshot?string
sizeBytes?integer
curl -X GET 'https://example.com/computeruse/screenshot/region?x=0&y=0&width=0&height=0'
{  "cursorPosition": {    "x": 0,    "y": 0  },  "screenshot": "string",  "sizeBytes": 0}
GET
/computeruse/screenshot/region/compressed

Take a compressed screenshot of a specific region of the screen

Query Parameters

x*integer

X coordinate of the region

y*integer

Y coordinate of the region

width*integer

Width of the region

height*integer

Height of the region

showCursor?boolean

Whether to show cursor in screenshot

format?string

Image format (png or jpeg)

quality?integer

JPEG quality (1-100)

scale?number

Scale factor (0.1-1.0)

Response Body

OK

application/json
  1. response
cursorPosition?
screenshot?string
sizeBytes?integer
curl -X GET 'https://example.com/computeruse/screenshot/region/compressed?x=0&y=0&width=0&height=0'
{  "cursorPosition": {    "x": 0,    "y": 0  },  "screenshot": "string",  "sizeBytes": 0}
POST
/computeruse/start

Start all computer use processes and return their status

Response Body

OK

application/json
  1. response
message?string
status?
curl -X POST 'https://example.com/computeruse/start'
{  "message": "string",  "status": {    "property1": {      "autoRestart": true,      "pid": 0,      "priority": 0,      "running": true    },    "property2": {      "autoRestart": true,      "pid": 0,      "priority": 0,      "running": true    }  }}

Get computer use status

GET
/computeruse/status

Get the current status of the computer use system

Response Body

OK

application/json
  1. response
status?string
curl -X GET 'https://example.com/computeruse/status'
{  "status": "string"}
POST
/computeruse/stop

Stop all computer use processes and return their status

Response Body

OK

application/json
  1. response
message?string
status?
curl -X POST 'https://example.com/computeruse/stop'
{  "message": "string",  "status": {    "property1": {      "autoRestart": true,      "pid": 0,      "priority": 0,      "running": true    },    "property2": {      "autoRestart": true,      "pid": 0,      "priority": 0,      "running": true    }  }}