openapi: 3.1.0 info: title: Daytona admin computer-use API description: Daytona Admin API — admin, audit, config, runners, docker-registry, regions, object-storage, jobs operations on the Daytona AI platform. version: '1.0' contact: name: Daytona Platforms Inc. url: https://www.daytona.io email: support@daytona.com license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://app.daytona.io/api description: Daytona Cloud production API tags: - name: computer-use paths: /computeruse/a11y/find: post: description: Search the AT-SPI tree for nodes matching a role/name/state filter and return a flat list. consumes: - application/json produces: - application/json tags: - computer-use summary: Find accessibility nodes operationId: FindAccessibilityNodes parameters: - description: Find request name: request in: body required: true schema: $ref: '#/definitions/FindAccessibilityNodesRequest' responses: '200': description: OK schema: $ref: '#/definitions/AccessibilityNodesResponse' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string '503': description: Service Unavailable schema: type: object additionalProperties: type: string /computeruse/a11y/node/focus: post: description: Move keyboard focus to the AT-SPI node identified by id (bus-name:object-path). consumes: - application/json produces: - application/json tags: - computer-use summary: Focus an accessibility node operationId: FocusAccessibilityNode parameters: - description: Node focus request name: request in: body required: true schema: $ref: '#/definitions/AccessibilityNodeRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string '503': description: Service Unavailable schema: type: object additionalProperties: type: string /computeruse/a11y/node/invoke: post: description: Call an AT-SPI Action on the node. Leave action empty to invoke the node's primary (first) action. consumes: - application/json produces: - application/json tags: - computer-use summary: Invoke an action on an accessibility node operationId: InvokeAccessibilityNode parameters: - description: Invoke request name: request in: body required: true schema: $ref: '#/definitions/AccessibilityInvokeRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string '503': description: Service Unavailable schema: type: object additionalProperties: type: string /computeruse/a11y/node/value: post: description: Write the given value to the node via EditableText.SetTextContents or, for numeric controls, Value.CurrentValue. consumes: - application/json produces: - application/json tags: - computer-use summary: Set the value of an accessibility node operationId: SetAccessibilityNodeValue parameters: - description: Set value request name: request in: body required: true schema: $ref: '#/definitions/AccessibilitySetValueRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string '503': description: Service Unavailable schema: type: object additionalProperties: type: string /computeruse/a11y/tree: get: description: Fetch the AT-SPI accessibility tree for the focused application, a specific PID, or all registered applications. produces: - application/json tags: - computer-use summary: Get accessibility tree operationId: GetAccessibilityTree parameters: - type: string description: 'Scope: focused | pid | all (default: focused)' name: scope in: query - type: integer description: Process ID when scope=pid name: pid in: query - type: integer description: Max tree depth (-1 unbounded, 0 root only; default -1) name: maxDepth in: query responses: '200': description: OK schema: $ref: '#/definitions/AccessibilityTreeResponse' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string '503': description: Service Unavailable schema: type: object additionalProperties: type: string /computeruse/display/info: get: description: Get information about all available displays produces: - application/json tags: - computer-use summary: Get display information operationId: GetDisplayInfo responses: '200': description: OK schema: $ref: '#/definitions/DisplayInfoResponse' /computeruse/display/windows: get: description: Get information about all open windows produces: - application/json tags: - computer-use summary: Get windows information operationId: GetWindows responses: '200': description: OK schema: $ref: '#/definitions/WindowsResponse' /computeruse/keyboard/hotkey: post: description: Press a hotkey combination (e.g., ctrl+c, cmd+v) consumes: - application/json produces: - application/json tags: - computer-use summary: Press hotkey operationId: PressHotkey parameters: - description: Hotkey press request name: request in: body required: true schema: $ref: '#/definitions/KeyboardHotkeyRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' /computeruse/keyboard/key: post: description: Press a key with optional modifiers consumes: - application/json produces: - application/json tags: - computer-use summary: Press key operationId: PressKey parameters: - description: Key press request name: request in: body required: true schema: $ref: '#/definitions/KeyboardPressRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' /computeruse/keyboard/type: post: description: Type text with optional delay between keystrokes consumes: - application/json produces: - application/json tags: - computer-use summary: Type text operationId: TypeText parameters: - description: Text typing request name: request in: body required: true schema: $ref: '#/definitions/KeyboardTypeRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' /computeruse/mouse/click: post: description: Click the mouse button at the specified coordinates consumes: - application/json produces: - application/json tags: - computer-use summary: Click mouse button operationId: Click parameters: - description: Mouse click request name: request in: body required: true schema: $ref: '#/definitions/MouseClickRequest' responses: '200': description: OK schema: $ref: '#/definitions/MouseClickResponse' /computeruse/mouse/drag: post: description: Drag the mouse from start to end coordinates consumes: - application/json produces: - application/json tags: - computer-use summary: Drag mouse operationId: Drag parameters: - description: Mouse drag request name: request in: body required: true schema: $ref: '#/definitions/MouseDragRequest' responses: '200': description: OK schema: $ref: '#/definitions/MouseDragResponse' /computeruse/mouse/move: post: description: Move the mouse cursor to the specified coordinates consumes: - application/json produces: - application/json tags: - computer-use summary: Move mouse cursor operationId: MoveMouse parameters: - description: Mouse move request name: request in: body required: true schema: $ref: '#/definitions/MouseMoveRequest' responses: '200': description: OK schema: $ref: '#/definitions/MousePositionResponse' /computeruse/mouse/position: get: description: Get the current mouse cursor position produces: - application/json tags: - computer-use summary: Get mouse position operationId: GetMousePosition responses: '200': description: OK schema: $ref: '#/definitions/MousePositionResponse' /computeruse/mouse/scroll: post: description: Scroll the mouse wheel at the specified coordinates consumes: - application/json produces: - application/json tags: - computer-use summary: Scroll mouse wheel operationId: Scroll parameters: - description: Mouse scroll request name: request in: body required: true schema: $ref: '#/definitions/MouseScrollRequest' responses: '200': description: OK schema: $ref: '#/definitions/ScrollResponse' /computeruse/process-status: get: description: Get the status of all computer use processes produces: - application/json tags: - computer-use summary: Get computer use process status operationId: GetComputerUseStatus responses: '200': description: OK schema: $ref: '#/definitions/ComputerUseStatusResponse' /computeruse/process/{processName}/errors: get: description: Get errors for a specific computer use process produces: - application/json tags: - computer-use summary: Get process errors operationId: GetProcessErrors parameters: - type: string description: Process name to get errors for name: processName in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/ProcessErrorsResponse' /computeruse/process/{processName}/logs: get: description: Get logs for a specific computer use process produces: - application/json tags: - computer-use summary: Get process logs operationId: GetProcessLogs parameters: - type: string description: Process name to get logs for name: processName in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/ProcessLogsResponse' /computeruse/process/{processName}/restart: post: description: Restart a specific computer use process produces: - application/json tags: - computer-use summary: Restart specific process operationId: RestartProcess parameters: - type: string description: Process name to restart name: processName in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/ProcessRestartResponse' /computeruse/process/{processName}/status: get: description: Check if a specific computer use process is running produces: - application/json tags: - computer-use summary: Get specific process status operationId: GetProcessStatus parameters: - type: string description: Process name to check name: processName in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/ProcessStatusResponse' /computeruse/recordings: get: description: Get a list of all recordings (active and completed) produces: - application/json tags: - computer-use summary: List all recordings operationId: ListRecordings responses: '200': description: OK schema: $ref: '#/definitions/ListRecordingsResponse' '500': description: Internal Server Error schema: type: object additionalProperties: type: string /computeruse/recordings/start: post: description: Start a new screen recording session consumes: - application/json produces: - application/json tags: - computer-use summary: Start a new recording operationId: StartRecording parameters: - description: Recording options name: request in: body schema: $ref: '#/definitions/StartRecordingRequest' responses: '201': description: Created schema: $ref: '#/definitions/Recording' '400': description: Bad Request schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string /computeruse/recordings/stop: post: description: Stop an active screen recording session consumes: - application/json produces: - application/json tags: - computer-use summary: Stop a recording operationId: StopRecording parameters: - description: Recording ID to stop name: request in: body required: true schema: $ref: '#/definitions/StopRecordingRequest' responses: '200': description: OK schema: $ref: '#/definitions/Recording' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string /computeruse/recordings/{id}: get: description: Get details of a specific recording by ID produces: - application/json tags: - computer-use summary: Get recording details operationId: GetRecording parameters: - type: string description: Recording ID name: id in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/Recording' '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string delete: description: Delete a recording file by ID tags: - computer-use summary: Delete a recording operationId: DeleteRecording parameters: - type: string description: Recording ID name: id in: path required: true responses: '204': description: No Content '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string /computeruse/recordings/{id}/download: get: description: Download a recording by providing its ID produces: - application/octet-stream tags: - computer-use summary: Download a recording operationId: DownloadRecording parameters: - type: string description: Recording ID name: id in: path required: true responses: '200': description: OK schema: type: file '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string /computeruse/screenshot: get: description: Take a screenshot of the entire screen produces: - application/json tags: - computer-use summary: Take a screenshot operationId: TakeScreenshot parameters: - type: boolean description: Whether to show cursor in screenshot name: showCursor in: query responses: '200': description: OK schema: $ref: '#/definitions/ScreenshotResponse' /computeruse/screenshot/compressed: get: description: Take a compressed screenshot of the entire screen produces: - application/json tags: - computer-use summary: Take a compressed screenshot operationId: TakeCompressedScreenshot parameters: - type: boolean description: Whether to show cursor in screenshot name: showCursor in: query - type: string description: Image format (png or jpeg) name: format in: query - type: integer description: JPEG quality (1-100) name: quality in: query - type: number description: Scale factor (0.1-1.0) name: scale in: query responses: '200': description: OK schema: $ref: '#/definitions/ScreenshotResponse' /computeruse/screenshot/region: get: description: Take a screenshot of a specific region of the screen produces: - application/json tags: - computer-use summary: Take a region screenshot operationId: TakeRegionScreenshot parameters: - type: integer description: X coordinate of the region name: x in: query required: true - type: integer description: Y coordinate of the region name: y in: query required: true - type: integer description: Width of the region name: width in: query required: true - type: integer description: Height of the region name: height in: query required: true - type: boolean description: Whether to show cursor in screenshot name: showCursor in: query responses: '200': description: OK schema: $ref: '#/definitions/ScreenshotResponse' /computeruse/screenshot/region/compressed: get: description: Take a compressed screenshot of a specific region of the screen produces: - application/json tags: - computer-use summary: Take a compressed region screenshot operationId: TakeCompressedRegionScreenshot parameters: - type: integer description: X coordinate of the region name: x in: query required: true - type: integer description: Y coordinate of the region name: y in: query required: true - type: integer description: Width of the region name: width in: query required: true - type: integer description: Height of the region name: height in: query required: true - type: boolean description: Whether to show cursor in screenshot name: showCursor in: query - type: string description: Image format (png or jpeg) name: format in: query - type: integer description: JPEG quality (1-100) name: quality in: query - type: number description: Scale factor (0.1-1.0) name: scale in: query responses: '200': description: OK schema: $ref: '#/definitions/ScreenshotResponse' /computeruse/start: post: description: Start all computer use processes and return their status produces: - application/json tags: - computer-use summary: Start computer use processes operationId: StartComputerUse responses: '200': description: OK schema: $ref: '#/definitions/ComputerUseStartResponse' /computeruse/status: get: description: Get the current status of the computer use system produces: - application/json tags: - computer-use summary: Get computer use status operationId: GetComputerUseSystemStatus responses: '200': description: OK schema: $ref: '#/definitions/ComputerUseStatusResponse' /computeruse/stop: post: description: Stop all computer use processes and return their status produces: - application/json tags: - computer-use summary: Stop computer use processes operationId: StopComputerUse responses: '200': description: OK schema: $ref: '#/definitions/ComputerUseStopResponse' components: securitySchemes: bearer: scheme: bearer bearerFormat: JWT type: http description: API Key access oauth2: type: openIdConnect openIdConnectUrl: http://localhost:3000/.well-known/openid-configuration definitions: ProcessLogsResponse: type: object properties: logs: type: string processName: type: string ScreenshotResponse: type: object properties: cursorPosition: $ref: '#/definitions/Position' screenshot: type: string sizeBytes: type: integer ComputerUseStatusResponse: type: object properties: status: type: string WindowsResponse: type: object properties: windows: type: array items: $ref: '#/definitions/WindowInfo' MouseScrollRequest: type: object properties: amount: type: integer default: 1 minimum: 0 direction: description: up, down type: string x: type: integer y: type: integer Empty: type: object ProcessRestartResponse: type: object properties: message: type: string processName: type: string StartRecordingRequest: type: object properties: label: type: string KeyboardTypeRequest: type: object properties: delay: description: milliseconds between keystrokes type: integer text: type: string MouseClickRequest: type: object properties: button: description: left, right, middle type: string double: type: boolean x: type: integer y: type: integer Recording: type: object required: - fileName - filePath - id - startTime - status properties: durationSeconds: type: number endTime: type: string fileName: type: string filePath: type: string id: type: string sizeBytes: type: integer startTime: type: string status: type: string AccessibilitySetValueRequest: type: object required: - id properties: id: type: string value: type: string ProcessErrorsResponse: type: object properties: errors: type: string processName: type: string StopRecordingRequest: type: object required: - id properties: id: type: string AccessibilityBounds: type: object properties: height: type: integer width: type: integer x: type: integer y: type: integer MousePositionResponse: type: object properties: x: type: integer y: type: integer computeruse.AccessibilityNode: type: object properties: actions: type: array items: type: string bounds: $ref: '#/definitions/AccessibilityBounds' children: type: array items: $ref: '#/definitions/computeruse.AccessibilityNode' description: type: string id: type: string name: type: string role: type: string states: type: array items: type: string MouseMoveRequest: type: object properties: x: type: integer y: type: integer WindowInfo: type: object properties: height: type: integer id: type: integer isActive: type: boolean title: type: string width: type: integer x: type: integer y: type: integer MouseClickResponse: type: object properties: x: type: integer y: type: integer FindAccessibilityNodesRequest: type: object properties: limit: type: integer name: type: string nameMatch: description: '"exact" | "substring" | "regex"' type: string pid: type: integer role: type: string scope: type: string states: type: array items: type: string KeyboardHotkeyRequest: type: object properties: keys: description: e.g., "ctrl+c", "cmd+v" type: string DisplayInfoResponse: type: object properties: displays: type: array items: $ref: '#/definitions/DisplayInfo' ComputerUseStopResponse: type: object properties: message: type: string status: type: object additionalProperties: $ref: '#/definitions/ProcessStatus' MouseDragRequest: type: object properties: button: type: string endX: type: integer endY: type: integer startX: type: integer startY: type: integer ScrollResponse: type: object properties: success: type: boolean DisplayInfo: type: object properties: height: type: integer id: type: integer isActive: type: boolean width: type: integer x: type: integer y: type: integer AccessibilityNodesResponse: type: object properties: matches: type: array items: $ref: '#/definitions/computeruse.AccessibilityNode' truncated: type: boolean ProcessStatusResponse: type: object properties: processName: type: string running: type: boolean AccessibilityInvokeRequest: type: object required: - id properties: action: type: string id: type: string ProcessStatus: type: object properties: autoRestart: type: boolean pid: type: integer priority: type: integer running: type: boolean AccessibilityNodeRequest: type: object required: - id properties: id: type: string Position: type: object properties: x: type: integer y: type: integer AccessibilityTreeResponse: type: object properties: root: $ref: '#/definitions/computeruse.AccessibilityNode' truncated: type: boolean ComputerUseStartResponse: type: object properties: message: type: string status: type: object additionalProperties: $ref: '#/definitions/ProcessStatus' MouseDragResponse: type: object properties: x: type: integer y: type: integer KeyboardPressRequest: type: object properties: key: type: string modifiers: description: ctrl, alt, shift, cmd type: array items: type: string ListRecordingsResponse: type: object required: - recordings properties: recordings: type: array items: $ref: '#/definitions/Recording'