Skip to main content

Short-lived (60s) NoVNC connection info

POST 

/services/:id/vnc-token

Used to connect directly from the browser to the wss://{host}:{port}/{websockify_path} URL (port = Virtualizor enduser novnc proxy port, e.g. 4083; NOT the RAW VNC/RFB port). The API NEVER PROXIES this websocket stream — it only returns connection details (host/port/password/expires_at).

Idempotency-Key NOT ACCEPTED. Even if the header is sent it is IGNORED (IdempotencyMiddleware is not attached to the route). Reason: every call generates a NEW password in Virtualizor; a cached old password expires after 60s and the reseller would get an "invalid password" error.

Rate limit: Default bucket (60 req/min) — not high-frequency.

vps_id null: 422 service_not_provisioned. management=basic: 409 management_unavailable.

Response:

  • expires_at: UTC ISO8601 computed by the server (now + 60s)
  • ttl_seconds: 60 (fixed, easy for the client to parse)
  • password: short-lived NoVNC password (LogMasker masks the vnc_password field)
  • host/port/websockify_path: node details the reseller's browser connects to

Request​

Responses​

VNC connection info (valid for 60s)

Response Headers
    X-RateLimit-Limit

    The per-minute limit defined for this key

    X-RateLimit-Remaining

    Number of requests remaining in the current window

    X-RateLimit-Reset

    Unix epoch of the start of the next window (UTC seconds)