Skip to main content

Short-lived (60s) NoVNC connection info

POST 

/services/:id/vnc-token

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

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

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

vps_id null: 422 service_not_provisioned.

Response:

  • expires_at: the UTC ISO8601 computed by the server (now + 60s)
  • ttl_seconds: 60 (fixed, so the client parses it easily)
  • password: the short-lived NoVNC password (LogMasker masks the vnc_password field)
  • host/port/websockify_path: the node info the reseller browser will connect 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)