Skip to main content
POST
/
api
/
agents
/
workspace
/
ticket
Issue a short-lived ticket for the caller's KasmVNC desktop
curl --request POST \
  --url https://pria.praxislxp.com/api/agents/workspace/ticket \
  --header 'Content-Type: application/json' \
  --header 'x-access-token: <api-key>' \
  --data '
{
  "workspaceId": "pria-ws-7a3f9"
}
'
{
  "success": true,
  "workspaceId": "<string>",
  "vncUrl": "wss://pria.praxislxp.com/api/agents/workspace/vnc/pria-ws-7a3f9?ticket=eyJhbGciOi...",
  "vncPassword": "<string>",
  "expiresInSec": 60
}

Documentation Index

Fetch the complete documentation index at: https://docs.praxis-ai.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-access-token
string
header
required

JWT token passed in x-access-token header

Body

application/json
workspaceId
string
required

Caller's own workspace runtime id (matches agent.workspace.runtime.workspaceId returned by GET /api/agents/workspace/me). The endpoint only issues tickets for a workspace owned by req.user._id and in status: 'ready'.

Example:

"pria-ws-7a3f9"

Response

Ticket issued.

success
boolean
Example:

true

workspaceId
string

Echo of the validated workspace id.

vncUrl
string

Fully-qualified WebSocket URL (ws:// or wss://, matching the current request scheme) that the browser opens to reach the KasmVNC desktop. Includes the single-use ticket query param.

Example:

"wss://pria.praxislxp.com/api/agents/workspace/vnc/pria-ws-7a3f9?ticket=eyJhbGciOi..."

vncPassword
string

RFB-protocol password required by KasmVNC during the WebSocket handshake. This is in addition to the HTTP Basic auth handled server-side by the proxy. The browser never persists it — single use per RFB handshake for the lifetime of the ticket.

expiresInSec
integer

Ticket TTL in seconds (currently fixed at 60).

Example:

60