Open a VNC console
curl --request POST \
--url https://my.server.express/api/v1/cloud/{id}/console \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://my.server.express/api/v1/cloud/{id}/console', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://my.server.express/api/v1/cloud/{id}/console"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text){
"success": true,
"data": {
"path": "<string>",
"password": "<string>",
"expiresInMs": 123
}
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>",
"data": {
"taskId": "<string>",
"limit": 123,
"used": 123
}
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}Cloud
Open a VNC console
Mints a short-lived console handle for this VM. Connect a noVNC client (WebSocket) to path on the API origin within
expiresInMs and authenticate with password — the relay holds the hypervisor side, so no Proxmox address or credential
is exposed. Proxmox expires the VNC password about 30 seconds after this call. Needs the operate role. Blocked while
PENDING/SUSPENDED (403); 409 while busy, still being built, or powered off; 503 if the platform has no console
credentials configured. Writes an OPEN_CLOUD_CONSOLE audit entry.
POST
/
v1
/
cloud
/
{id}
/
console
Open a VNC console
curl --request POST \
--url https://my.server.express/api/v1/cloud/{id}/console \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://my.server.express/api/v1/cloud/{id}/console', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://my.server.express/api/v1/cloud/{id}/console"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text){
"success": true,
"data": {
"path": "<string>",
"password": "<string>",
"expiresInMs": 123
}
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>",
"data": {
"taskId": "<string>",
"limit": 123,
"used": 123
}
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}Authorizations
bearerAuthapiToken
Session access token (JWT) from POST /v1/auth/login or /v1/auth/refresh. A session satisfies every API scope.
Path Parameters
Service id of the cloud server.