Skip to main content
POST
/
kvm
/
v2
/
set
/
config
Set Configuration
curl --request POST \
  --url https://{api_host}/kvm/v2/set/config \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data signature=session_signature_12345 \
  --data kvm_id=kvm_xxxxx_yyyyy \
  --data valid_until=1737476000 \
  --data 'config={"boot_timeout":"5000","vnc_keymap":"en-us","cpu_model":"passthrough","disk_driver":"virtio","nw_driver":"virtio","video_driver":"cirrus","description":"fortest","assigned_vlan":"","cpu_set_cores":"core","auto_hydration":"off","tpm":"disabled","uefi":"disabled"}'
import requests

url = "https://{api_host}/kvm/v2/set/config"

payload = {
"signature": "session_signature_12345",
"kvm_id": "kvm_xxxxx_yyyyy",
"valid_until": "1737476000",
"config": "{\"boot_timeout\":\"5000\",\"vnc_keymap\":\"en-us\",\"cpu_model\":\"passthrough\",\"disk_driver\":\"virtio\",\"nw_driver\":\"virtio\",\"video_driver\":\"cirrus\",\"description\":\"fortest\",\"assigned_vlan\":\"\",\"cpu_set_cores\":\"core\",\"auto_hydration\":\"off\",\"tpm\":\"disabled\",\"uefi\":\"disabled\"}"
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}

response = requests.post(url, data=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams({
signature: 'session_signature_12345',
kvm_id: 'kvm_xxxxx_yyyyy',
valid_until: '1737476000',
config: '{"boot_timeout":"5000","vnc_keymap":"en-us","cpu_model":"passthrough","disk_driver":"virtio","nw_driver":"virtio","video_driver":"cirrus","description":"fortest","assigned_vlan":"","cpu_set_cores":"core","auto_hydration":"off","tpm":"disabled","uefi":"disabled"}'
})
};

fetch('https://{api_host}/kvm/v2/set/config', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://{api_host}/kvm/v2/set/config",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "signature=session_signature_12345&kvm_id=kvm_xxxxx_yyyyy&valid_until=1737476000&config=%7B%22boot_timeout%22%3A%225000%22%2C%22vnc_keymap%22%3A%22en-us%22%2C%22cpu_model%22%3A%22passthrough%22%2C%22disk_driver%22%3A%22virtio%22%2C%22nw_driver%22%3A%22virtio%22%2C%22video_driver%22%3A%22cirrus%22%2C%22description%22%3A%22fortest%22%2C%22assigned_vlan%22%3A%22%22%2C%22cpu_set_cores%22%3A%22core%22%2C%22auto_hydration%22%3A%22off%22%2C%22tpm%22%3A%22disabled%22%2C%22uefi%22%3A%22disabled%22%7D",
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://{api_host}/kvm/v2/set/config"

payload := strings.NewReader("signature=session_signature_12345&kvm_id=kvm_xxxxx_yyyyy&valid_until=1737476000&config=%7B%22boot_timeout%22%3A%225000%22%2C%22vnc_keymap%22%3A%22en-us%22%2C%22cpu_model%22%3A%22passthrough%22%2C%22disk_driver%22%3A%22virtio%22%2C%22nw_driver%22%3A%22virtio%22%2C%22video_driver%22%3A%22cirrus%22%2C%22description%22%3A%22fortest%22%2C%22assigned_vlan%22%3A%22%22%2C%22cpu_set_cores%22%3A%22core%22%2C%22auto_hydration%22%3A%22off%22%2C%22tpm%22%3A%22disabled%22%2C%22uefi%22%3A%22disabled%22%7D")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "application/x-www-form-urlencoded")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://{api_host}/kvm/v2/set/config")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("signature=session_signature_12345&kvm_id=kvm_xxxxx_yyyyy&valid_until=1737476000&config=%7B%22boot_timeout%22%3A%225000%22%2C%22vnc_keymap%22%3A%22en-us%22%2C%22cpu_model%22%3A%22passthrough%22%2C%22disk_driver%22%3A%22virtio%22%2C%22nw_driver%22%3A%22virtio%22%2C%22video_driver%22%3A%22cirrus%22%2C%22description%22%3A%22fortest%22%2C%22assigned_vlan%22%3A%22%22%2C%22cpu_set_cores%22%3A%22core%22%2C%22auto_hydration%22%3A%22off%22%2C%22tpm%22%3A%22disabled%22%2C%22uefi%22%3A%22disabled%22%7D")
.asString();
require 'uri'
require 'net/http'

url = URI("https://{api_host}/kvm/v2/set/config")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "signature=session_signature_12345&kvm_id=kvm_xxxxx_yyyyy&valid_until=1737476000&config=%7B%22boot_timeout%22%3A%225000%22%2C%22vnc_keymap%22%3A%22en-us%22%2C%22cpu_model%22%3A%22passthrough%22%2C%22disk_driver%22%3A%22virtio%22%2C%22nw_driver%22%3A%22virtio%22%2C%22video_driver%22%3A%22cirrus%22%2C%22description%22%3A%22fortest%22%2C%22assigned_vlan%22%3A%22%22%2C%22cpu_set_cores%22%3A%22core%22%2C%22auto_hydration%22%3A%22off%22%2C%22tpm%22%3A%22disabled%22%2C%22uefi%22%3A%22disabled%22%7D"

response = http.request(request)
puts response.read_body
{
  "status": "success"
}
{
"error": "Invalid parameters provided"
}
{
"error": "Invalid session"
}
{
"error": "Internal server error"
}

Body

application/x-www-form-urlencoded

Parameters required to configure a KVM VPS.

signature
string

The session signature obtained from the 'Create AUTH-session' call.

Example:

"session_signature_12345"

kvm_id
string

The unique identifier of the KVM VPS.

Example:

"kvm_xxxxx_yyyyy"

valid_until
string

The expiration timestamp for the session, obtained from the 'Create AUTH-session' call.

Example:

"1737476000"

config
string
default:{"boot_timeout":"5000","vnc_keymap":"en-us","cpu_model":"passthrough","disk_driver":"virtio","nw_driver":"virtio","video_driver":"cirrus","description":"fortest","assigned_vlan":"","cpu_set_cores":"core","auto_hydration":"off","tpm":"disabled","uefi":"disabled"}

JSON object containing configuration settings.

Supported values:

  • boot_timeout: Boot menu timeout in milliseconds (example: 5000, 10000)
  • uefi: enabled or disabled
  • tpm: enabled or disabled
  • vnc_keymap: Keyboard layout such as en-us, en-gb, de, de-ch, fr, fr-be, fr-ch, es, it, nl, pt, sv, ru, tr, and other layouts available in the control panel
  • cpu_set_cores: core or socket
  • cpu_model: default or passthrough
  • disk_driver: virtio, ide, or scsi
  • nw_driver: virtio, e1000, or rtl8139
  • video_driver: cirrus or qxl
  • description: Custom VPS description
  • assigned_vlan: VLAN ID if VLAN service is enabled
  • auto_hydration: off, 100, 500, or 1000 depending on available hydration packages

Example Configuration:

{"boot_timeout":"10000","vnc_keymap":"en-us","cpu_model":"passthrough","disk_driver":"virtio","nw_driver":"virtio","video_driver":"cirrus","assigned_vlan":"","cpu_set_cores":"core","auto_hydration":"off","tpm":"disabled","uefi":"disabled","description":"fortest"}

⚠️ Compatibility Notice

  • UEFI is disabled by default. A value of uefi=disabled means the VPS will boot using legacy BIOS mode. Setting uefi=enabled switches the VPS to UEFI boot mode.
  • TPM is disabled by default. Setting tpm to enabled enables a Software TPM (vTPM) device for the VPS.

Response

Configuration updated successfully.

status
string
Example:

"success"

Last modified on December 17, 2025