Skip to content

nodes / qemu ​

97 operations.

GET /nodes/{node}/qemu ​

ts
proxmox.nodes.$(node).qemu.$get()

Virtual machine index (per node).

Returns an array of object.

ParameterTypeRequiredNotes
fullbooleanDetermine the full status of active VMs.
nodestringyesThe cluster node name. — format pve-node

POST /nodes/{node}/qemu ​

ts
proxmox.nodes.$(node).qemu.$post()

Create or restore a virtual machine.

Returns string.

ParameterTypeRequiredNotes
acpibooleanEnable/disable ACPI. — default 1
affinitystringList of host cores used to execute guest processes, for example: 0,5,8-11 — format pve-cpuset
agentstringEnable/disable communication with the QEMU Guest Agent and its properties.
allow-ksmbooleanAllow memory pages of this guest to be merged via KSM (Kernel Samepage Merging). — default 1
amd-sevstringSecure Encrypted Virtualization (SEV) features by AMD CPUs — format pve-qemu-sev-fmt
archx86_64 | aarch64Virtual processor architecture. Defaults to the host architecture.
archivestringThe backup archive. Either the file system path to a .tar or .vma file (use '-' to pipe data from stdin) or a proxmox storage backup volume identifier. — ≤ 255 chars
argsstringArbitrary arguments passed to kvm.
audio0stringConfigure a audio device, useful in combination with QXL/Spice.
autostartbooleanAutomatic restart after crash (currently ignored). — default 0
balloonnumberAmount of target RAM for the VM in MiB. The balloon driver is enabled by default, unless it is explicitly disabled by setting the value to zero. — min 0
biosseabios | ovmfSelect BIOS implementation. — default "seabios"
bootstringSpecify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated. — format pve-qm-boot
bootdiskstringEnable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead. — format pve-qm-bootdisk
bwlimitnumberOverride I/O bandwidth limit (in KiB/s). — min 0, default "restore limit from datacenter or storage config"
cdromstringThis is an alias for option -ide2 — format pve-qm-ide
cicustomstringcloud-init: Specify custom files to replace the automatically generated ones at start. — format pve-qm-cicustom
cipasswordstringcloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.
citypeconfigdrive2 | nocloud | opennebulaSpecifies the cloud-init configuration format. The default depends on the configured operating system type (ostype. We use the nocloud format for Linux, and configdrive2 for windows.
ciupgradebooleancloud-init: do an automatic package upgrade after the first boot. — default 1
ciuserstringcloud-init: User name to change ssh keys and password for instead of the image's configured default user.
coresnumberThe number of cores per socket. — min 1, default 1
cpustringEmulated CPU type. — format pve-vm-cpu-conf
cpulimitnumberLimit of CPU usage. — min 0, max 128, default 0
cpuunitsnumberCPU weight for a VM, will be clamped to [1, 10000] in cgroup v2. — min 1, max 262144, default "cgroup v1: 1024, cgroup v2: 100"
descriptionstringDescription for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file. — ≤ 8192 chars
efidisk0stringConfigure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
forcebooleanAllow to overwrite existing VM.
freezebooleanFreeze CPU at startup (use 'c' monitor command to start execution).
ha-managedbooleanAdd the VM as a HA resource after it was created. — default 0
hookscriptstringScript that will be executed during various steps in the vms lifetime. — format pve-volume-id
hostpci0…hostpci15stringMap host PCI devices into guest. — format pve-qm-hostpci
hotplugstringSelectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default network,disk,usb. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7. — format pve-hotplug-features, default "network,disk,usb"
hugepagesany | 2 | 1024Enables hugepages memory. Sets the size of hugepages in MiB. If the value is set to 'any' then 1 GiB hugepages will be used if possible, otherwise the size will fall back to 2 MiB.
ide0…ide3stringUse volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
import-working-storagestringA file-based storage with 'images' content-type enabled, which is used as an intermediary extraction storage during import. Defaults to the source storage. — format pve-storage-id
intel-tdxstringTrusted Domain Extension (TDX) features by Intel CPUs — format pve-qemu-tdx-fmt
ipconfig0…ipconfig31stringcloud-init: Specify IP addresses and gateways for the corresponding interface. IP addresses use CIDR notation, gateways are optional but need an IP of the same type specified. The special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided. For IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires cloud-init 19.4 or newer. If cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4. — format pve-qm-ipconfig
ivshmemstringInter-VM shared memory. Useful for direct communication between VMs, or to the host.
keephugepagesbooleanUse together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts. — default 0
keyboardde | de-ch | da | en-gb | en-us | es | fi | fr | … (17 more)Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS. — default null
kvmbooleanEnable/disable KVM hardware virtualization. — default 1
live-restorebooleanStart the VM immediately while importing or restoring in the background.
localtimebooleanSet the real time clock (RTC) to local time. This is enabled by default if the ostype indicates a Microsoft Windows OS.
lockbackup | clone | create | migrate | rollback | snapshot | snapshot-delete | suspending | … (1 more)Lock/unlock the VM.
machinestringSpecify the QEMU machine.
memorystringMemory properties.
migrate_downtimenumberSet maximum tolerated downtime (in seconds) for migrations. Should the migration not be able to converge in the very end, because too much newly dirtied RAM needs to be transferred, the limit will be increased automatically step-by-step until migration can converge. Will be capped to 2000 seconds (maximum in QEMU). — min 0, default 0.1
migrate_speednumberSet maximum speed (in MB/s) for migrations. Value 0 is no limit. — min 0, default 0
namestringSet a name for the VM. Only used on the configuration web interface. — format dns-name
nameserverstringcloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set. — format address-list
net0…net31stringSpecify network devices.
nodestringyesThe cluster node name. — format pve-node
numabooleanEnable/disable NUMA. — default 0
numa0…numa7stringNUMA topology.
onbootbooleanSpecifies whether a VM will be started during system bootup. — default 0
ostypeother | wxp | w2k | w2k3 | w2k8 | wvista | win7 | win8 | … (5 more)Specify guest operating system. — default "other"
parallel0…parallel2stringMap host parallel devices (n is 0 to 2).
poolstringAdd the VM to the specified pool. — format pve-poolid
protectionbooleanSets the protection flag of the VM. This will disable the remove VM and remove disk operations. — default 0
rebootbooleanAllow reboot. If set to '0' the VM exit on reboot. — default 1
rng0stringConfigure a VirtIO-based Random Number Generator. — format pve-qm-rng
sata0…sata5stringUse volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
scsi0…scsi30stringUse volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
scsihwlsi | lsi53c810 | virtio-scsi-pci | virtio-scsi-single | megasas | pvscsiSCSI controller model — default "lsi"
searchdomainstringcloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.
serial0…serial3stringCreate a serial device inside the VM (n is 0 to 3)
sharesnumberAmount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd. — min 0, max 50000, default 1000
smbios1stringSpecify SMBIOS type 1 fields. — format pve-qm-smbios1, ≤ 512 chars
smpnumberThe number of CPUs. Please use option -sockets instead. — min 1, default 1
socketsnumberThe number of CPU sockets. — min 1, default 1
spice_enhancementsstringConfigure additional enhancements for SPICE.
sshkeysstringcloud-init: Setup public SSH keys (one key per line, OpenSSH format). — format urlencoded
startbooleanStart VM after it was created successfully. — default 0
startdatestringSet the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'. — default "now"
startupstringStartup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped. — format pve-startup-order
storagestringDefault storage. — format pve-storage-id
tabletbooleanEnable/disable the USB tablet device. — default 1
tagsstringTags of the VM. This is only meta information. — format pve-tag-list
tdfbooleanEnable/disable time drift fix. — default 0
templatebooleanEnable/disable Template. — default 0
tpmstate0stringConfigure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
uniquebooleanAssign a unique random ethernet address.
unused0…unused255stringReference to unused volumes. This is used internally, and should not be modified manually.
usb0…usb13stringConfigure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).
vcpusnumberNumber of hotplugged vcpus. — min 1, default 0
vgastringConfigure the VGA hardware.
virtio0…virtio15stringUse volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
virtiofs0…virtiofs9stringConfiguration for sharing a directory between host and guest using Virtio-fs.
vmgenidstringSet VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. — default "1 (autogenerated)"
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
vmstatestoragestringDefault storage for VM state volumes/files. — format pve-storage-id
watchdogstringCreate a virtual hardware watchdog device. — format pve-qm-watchdog

GET /nodes/{node}/qemu/{vmid} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).$get()

Directory index

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

DELETE /nodes/{node}/qemu/{vmid} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).$delete()

Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules

Returns string.

ParameterTypeRequiredNotes
destroy-unreferenced-disksbooleanIf set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages. — default 0
nodestringyesThe cluster node name. — format pve-node
purgebooleanRemove VMID from configurations, like backup & replication jobs and HA.
skiplockbooleanIgnore locks - only root is allowed to use this option.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent.$get()

QEMU Guest Agent command index.

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent.$post()

Execute QEMU Guest Agent commands.

Returns object.

ParameterTypeRequiredNotes
commandfsfreeze-freeze | fsfreeze-status | fsfreeze-thaw | fstrim | get-fsinfo | get-host-name | get-memory-block-info | get-memory-blocks | … (12 more)yesThe QGA command.
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/exec ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent.exec.$post()

Executes the given command in the vm via the guest-agent and returns an object with the pid.

Returns object.

ParameterTypeRequiredNotes
commandstring[]yesThe command as a list of program + arguments.
input-datastringData to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'. — ≤ 65536 chars
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/exec-status ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["exec-status"].$get()

Gets the status of the given pid started by the guest-agent

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
pidnumberyesThe PID to query
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/file-read ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["file-read"].$get()

Reads the given file via guest agent. Is limited to 16777216 bytes.

Returns object.

ParameterTypeRequiredNotes
countnumberNumber of bytes to read. — min 1, max 16777216, default "16777216"
decodebooleanData received from the QEMU Guest-Agent is base64 encoded. If this is set to true, the data is decoded. Otherwise the content is forwarded with base64 encoding. Defaults to true. — default 1
filestringyesThe path to the file
nodestringyesThe cluster node name. — format pve-node
offsetnumberOffset to start reading at — min 0, default 0
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/file-write ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["file-write"].$post()

Writes the given file via guest agent.

Returns nothing.

ParameterTypeRequiredNotes
contentstringyesThe content to write into the file. — ≤ 61440 chars
encodebooleanIf set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true. — default 1
filestringyesThe path to the file.
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["fsfreeze-freeze"].$post()

Execute fsfreeze-freeze.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/fsfreeze-status ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["fsfreeze-status"].$post()

Execute fsfreeze-status.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["fsfreeze-thaw"].$post()

Execute fsfreeze-thaw.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/fstrim ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent.fstrim.$post()

Execute fstrim.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/get-fsinfo ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["get-fsinfo"].$get()

Execute get-fsinfo.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/get-host-name ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["get-host-name"].$get()

Execute get-host-name.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/get-memory-block-info ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["get-memory-block-info"].$get()

Execute get-memory-block-info.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/get-memory-blocks ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["get-memory-blocks"].$get()

Execute get-memory-blocks.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/get-osinfo ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["get-osinfo"].$get()

Execute get-osinfo.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/get-time ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["get-time"].$get()

Execute get-time.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/get-timezone ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["get-timezone"].$get()

Execute get-timezone.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/get-users ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["get-users"].$get()

Execute get-users.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/get-vcpus ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["get-vcpus"].$get()

Execute get-vcpus.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/info ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent.info.$get()

Execute info.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/agent/network-get-interfaces ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["network-get-interfaces"].$get()

Execute network-get-interfaces.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/ping ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent.ping.$post()

Execute ping.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/set-user-password ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["set-user-password"].$post()

Sets the password for the given user to the given password

Returns object.

ParameterTypeRequiredNotes
cryptedbooleanset to 1 if the password has already been passed through crypt() — default 0
nodestringyesThe cluster node name. — format pve-node
passwordstringyesThe new password. — ≤ 1024 chars
usernamestringyesThe user to set the password for.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/shutdown ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent.shutdown.$post()

Execute shutdown.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/suspend-disk ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["suspend-disk"].$post()

Execute suspend-disk.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/suspend-hybrid ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["suspend-hybrid"].$post()

Execute suspend-hybrid.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/agent/suspend-ram ​

ts
proxmox.nodes.$(node).qemu.$(vmid).agent["suspend-ram"].$post()

Execute suspend-ram.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/clone ​

ts
proxmox.nodes.$(node).qemu.$(vmid).clone.$post()

Create a copy of virtual machine/template.

Returns string.

ParameterTypeRequiredNotes
bwlimitnumberOverride I/O bandwidth limit (in KiB/s). — min 0, default "clone limit from datacenter or storage config"
descriptionstringDescription for the new VM.
formatraw | qcow2 | vmdkTarget disk format. Only valid for full clone. If the target storage does not support the format, the storage's default format is used instead.
fullbooleanCreate a full copy of all disks. This is always done when you clone a normal VM. For VM templates, we try to create a linked clone by default.
namestringSet a name for the new VM. — format dns-name
newidnumberyesVMID for the clone. — format pve-vmid, min 100, max 999999999
nodestringyesThe cluster node name. — format pve-node
poolstringAdd the new VM to the specified pool. — format pve-poolid
snapnamestringThe name of the snapshot. — format pve-configid, ≤ 40 chars
storagestringTarget storage for full clone. — format pve-storage-id
targetstringTarget node. Only allowed if the original VM is on shared storage. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/cloudinit ​

ts
proxmox.nodes.$(node).qemu.$(vmid).cloudinit.$get()

Get the cloudinit configuration with both current and pending values.

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

PUT /nodes/{node}/qemu/{vmid}/cloudinit ​

ts
proxmox.nodes.$(node).qemu.$(vmid).cloudinit.$put()

Regenerate and change cloudinit config drive.

Returns nothing.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/cloudinit/dump ​

ts
proxmox.nodes.$(node).qemu.$(vmid).cloudinit.dump.$get()

Get automatically generated cloudinit config.

Returns string.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
typeuser | network | metayesConfig type.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/config ​

ts
proxmox.nodes.$(node).qemu.$(vmid).config.$get()

Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.

Returns object.

ParameterTypeRequiredNotes
currentbooleanGet current values (instead of pending values). — default 0
nodestringyesThe cluster node name. — format pve-node
snapshotstringFetch config values from given snapshot. — format pve-configid, ≤ 40 chars
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/config ​

ts
proxmox.nodes.$(node).qemu.$(vmid).config.$post()

Set virtual machine options (asynchronous API).

Returns string.

ParameterTypeRequiredNotes
acpibooleanEnable/disable ACPI. — default 1
affinitystringList of host cores used to execute guest processes, for example: 0,5,8-11 — format pve-cpuset
agentstringEnable/disable communication with the QEMU Guest Agent and its properties.
allow-ksmbooleanAllow memory pages of this guest to be merged via KSM (Kernel Samepage Merging). — default 1
amd-sevstringSecure Encrypted Virtualization (SEV) features by AMD CPUs — format pve-qemu-sev-fmt
archx86_64 | aarch64Virtual processor architecture. Defaults to the host architecture.
argsstringArbitrary arguments passed to kvm.
audio0stringConfigure a audio device, useful in combination with QXL/Spice.
autostartbooleanAutomatic restart after crash (currently ignored). — default 0
background_delaynumberTime to wait for the task to finish. We return 'null' if the task finish within that time. — min 1, max 30
balloonnumberAmount of target RAM for the VM in MiB. The balloon driver is enabled by default, unless it is explicitly disabled by setting the value to zero. — min 0
biosseabios | ovmfSelect BIOS implementation. — default "seabios"
bootstringSpecify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated. — format pve-qm-boot
bootdiskstringEnable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead. — format pve-qm-bootdisk
cdromstringThis is an alias for option -ide2 — format pve-qm-ide
cicustomstringcloud-init: Specify custom files to replace the automatically generated ones at start. — format pve-qm-cicustom
cipasswordstringcloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.
citypeconfigdrive2 | nocloud | opennebulaSpecifies the cloud-init configuration format. The default depends on the configured operating system type (ostype. We use the nocloud format for Linux, and configdrive2 for windows.
ciupgradebooleancloud-init: do an automatic package upgrade after the first boot. — default 1
ciuserstringcloud-init: User name to change ssh keys and password for instead of the image's configured default user.
coresnumberThe number of cores per socket. — min 1, default 1
cpustringEmulated CPU type. — format pve-vm-cpu-conf
cpulimitnumberLimit of CPU usage. — min 0, max 128, default 0
cpuunitsnumberCPU weight for a VM, will be clamped to [1, 10000] in cgroup v2. — min 1, max 262144, default "cgroup v1: 1024, cgroup v2: 100"
deletestringA list of settings you want to delete. — format pve-configid-list
descriptionstringDescription for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file. — ≤ 8192 chars
digeststringPrevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. — ≤ 40 chars
efidisk0stringConfigure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
forcebooleanForce physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.
freezebooleanFreeze CPU at startup (use 'c' monitor command to start execution).
hookscriptstringScript that will be executed during various steps in the vms lifetime. — format pve-volume-id
hostpci0…hostpci15stringMap host PCI devices into guest. — format pve-qm-hostpci
hotplugstringSelectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default network,disk,usb. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7. — format pve-hotplug-features, default "network,disk,usb"
hugepagesany | 2 | 1024Enables hugepages memory. Sets the size of hugepages in MiB. If the value is set to 'any' then 1 GiB hugepages will be used if possible, otherwise the size will fall back to 2 MiB.
ide0…ide3stringUse volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
import-working-storagestringA file-based storage with 'images' content-type enabled, which is used as an intermediary extraction storage during import. Defaults to the source storage. — format pve-storage-id
intel-tdxstringTrusted Domain Extension (TDX) features by Intel CPUs — format pve-qemu-tdx-fmt
ipconfig0…ipconfig31stringcloud-init: Specify IP addresses and gateways for the corresponding interface. IP addresses use CIDR notation, gateways are optional but need an IP of the same type specified. The special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided. For IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires cloud-init 19.4 or newer. If cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4. — format pve-qm-ipconfig
ivshmemstringInter-VM shared memory. Useful for direct communication between VMs, or to the host.
keephugepagesbooleanUse together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts. — default 0
keyboardde | de-ch | da | en-gb | en-us | es | fi | fr | … (17 more)Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS. — default null
kvmbooleanEnable/disable KVM hardware virtualization. — default 1
localtimebooleanSet the real time clock (RTC) to local time. This is enabled by default if the ostype indicates a Microsoft Windows OS.
lockbackup | clone | create | migrate | rollback | snapshot | snapshot-delete | suspending | … (1 more)Lock/unlock the VM.
machinestringSpecify the QEMU machine.
memorystringMemory properties.
migrate_downtimenumberSet maximum tolerated downtime (in seconds) for migrations. Should the migration not be able to converge in the very end, because too much newly dirtied RAM needs to be transferred, the limit will be increased automatically step-by-step until migration can converge. Will be capped to 2000 seconds (maximum in QEMU). — min 0, default 0.1
migrate_speednumberSet maximum speed (in MB/s) for migrations. Value 0 is no limit. — min 0, default 0
namestringSet a name for the VM. Only used on the configuration web interface. — format dns-name
nameserverstringcloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set. — format address-list
net0…net31stringSpecify network devices.
nodestringyesThe cluster node name. — format pve-node
numabooleanEnable/disable NUMA. — default 0
numa0…numa7stringNUMA topology.
onbootbooleanSpecifies whether a VM will be started during system bootup. — default 0
ostypeother | wxp | w2k | w2k3 | w2k8 | wvista | win7 | win8 | … (5 more)Specify guest operating system. — default "other"
parallel0…parallel2stringMap host parallel devices (n is 0 to 2).
protectionbooleanSets the protection flag of the VM. This will disable the remove VM and remove disk operations. — default 0
rebootbooleanAllow reboot. If set to '0' the VM exit on reboot. — default 1
revertstringRevert a pending change. — format pve-configid-list
rng0stringConfigure a VirtIO-based Random Number Generator. — format pve-qm-rng
sata0…sata5stringUse volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
scsi0…scsi30stringUse volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
scsihwlsi | lsi53c810 | virtio-scsi-pci | virtio-scsi-single | megasas | pvscsiSCSI controller model — default "lsi"
searchdomainstringcloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.
serial0…serial3stringCreate a serial device inside the VM (n is 0 to 3)
sharesnumberAmount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd. — min 0, max 50000, default 1000
skiplockbooleanIgnore locks - only root is allowed to use this option.
smbios1stringSpecify SMBIOS type 1 fields. — format pve-qm-smbios1, ≤ 512 chars
smpnumberThe number of CPUs. Please use option -sockets instead. — min 1, default 1
socketsnumberThe number of CPU sockets. — min 1, default 1
spice_enhancementsstringConfigure additional enhancements for SPICE.
sshkeysstringcloud-init: Setup public SSH keys (one key per line, OpenSSH format). — format urlencoded
startdatestringSet the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'. — default "now"
startupstringStartup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped. — format pve-startup-order
tabletbooleanEnable/disable the USB tablet device. — default 1
tagsstringTags of the VM. This is only meta information. — format pve-tag-list
tdfbooleanEnable/disable time drift fix. — default 0
templatebooleanEnable/disable Template. — default 0
tpmstate0stringConfigure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
unused0…unused255stringReference to unused volumes. This is used internally, and should not be modified manually.
usb0…usb13stringConfigure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).
vcpusnumberNumber of hotplugged vcpus. — min 1, default 0
vgastringConfigure the VGA hardware.
virtio0…virtio15stringUse volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
virtiofs0…virtiofs9stringConfiguration for sharing a directory between host and guest using Virtio-fs.
vmgenidstringSet VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. — default "1 (autogenerated)"
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
vmstatestoragestringDefault storage for VM state volumes/files. — format pve-storage-id
watchdogstringCreate a virtual hardware watchdog device. — format pve-qm-watchdog

PUT /nodes/{node}/qemu/{vmid}/config ​

ts
proxmox.nodes.$(node).qemu.$(vmid).config.$put()

Set virtual machine options (synchronous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.

Returns nothing.

ParameterTypeRequiredNotes
acpibooleanEnable/disable ACPI. — default 1
affinitystringList of host cores used to execute guest processes, for example: 0,5,8-11 — format pve-cpuset
agentstringEnable/disable communication with the QEMU Guest Agent and its properties.
allow-ksmbooleanAllow memory pages of this guest to be merged via KSM (Kernel Samepage Merging). — default 1
amd-sevstringSecure Encrypted Virtualization (SEV) features by AMD CPUs — format pve-qemu-sev-fmt
archx86_64 | aarch64Virtual processor architecture. Defaults to the host architecture.
argsstringArbitrary arguments passed to kvm.
audio0stringConfigure a audio device, useful in combination with QXL/Spice.
autostartbooleanAutomatic restart after crash (currently ignored). — default 0
balloonnumberAmount of target RAM for the VM in MiB. The balloon driver is enabled by default, unless it is explicitly disabled by setting the value to zero. — min 0
biosseabios | ovmfSelect BIOS implementation. — default "seabios"
bootstringSpecify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated. — format pve-qm-boot
bootdiskstringEnable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead. — format pve-qm-bootdisk
cdromstringThis is an alias for option -ide2 — format pve-qm-ide
cicustomstringcloud-init: Specify custom files to replace the automatically generated ones at start. — format pve-qm-cicustom
cipasswordstringcloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.
citypeconfigdrive2 | nocloud | opennebulaSpecifies the cloud-init configuration format. The default depends on the configured operating system type (ostype. We use the nocloud format for Linux, and configdrive2 for windows.
ciupgradebooleancloud-init: do an automatic package upgrade after the first boot. — default 1
ciuserstringcloud-init: User name to change ssh keys and password for instead of the image's configured default user.
coresnumberThe number of cores per socket. — min 1, default 1
cpustringEmulated CPU type. — format pve-vm-cpu-conf
cpulimitnumberLimit of CPU usage. — min 0, max 128, default 0
cpuunitsnumberCPU weight for a VM, will be clamped to [1, 10000] in cgroup v2. — min 1, max 262144, default "cgroup v1: 1024, cgroup v2: 100"
deletestringA list of settings you want to delete. — format pve-configid-list
descriptionstringDescription for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file. — ≤ 8192 chars
digeststringPrevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. — ≤ 40 chars
efidisk0stringConfigure a disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
forcebooleanForce physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.
freezebooleanFreeze CPU at startup (use 'c' monitor command to start execution).
hookscriptstringScript that will be executed during various steps in the vms lifetime. — format pve-volume-id
hostpci0…hostpci15stringMap host PCI devices into guest. — format pve-qm-hostpci
hotplugstringSelectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default network,disk,usb. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7. — format pve-hotplug-features, default "network,disk,usb"
hugepagesany | 2 | 1024Enables hugepages memory. Sets the size of hugepages in MiB. If the value is set to 'any' then 1 GiB hugepages will be used if possible, otherwise the size will fall back to 2 MiB.
ide0…ide3stringUse volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
intel-tdxstringTrusted Domain Extension (TDX) features by Intel CPUs — format pve-qemu-tdx-fmt
ipconfig0…ipconfig31stringcloud-init: Specify IP addresses and gateways for the corresponding interface. IP addresses use CIDR notation, gateways are optional but need an IP of the same type specified. The special string 'dhcp' can be used for IP addresses to use DHCP, in which case no explicit gateway should be provided. For IPv6 the special string 'auto' can be used to use stateless autoconfiguration. This requires cloud-init 19.4 or newer. If cloud-init is enabled and neither an IPv4 nor an IPv6 address is specified, it defaults to using dhcp on IPv4. — format pve-qm-ipconfig
ivshmemstringInter-VM shared memory. Useful for direct communication between VMs, or to the host.
keephugepagesbooleanUse together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts. — default 0
keyboardde | de-ch | da | en-gb | en-us | es | fi | fr | … (17 more)Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS. — default null
kvmbooleanEnable/disable KVM hardware virtualization. — default 1
localtimebooleanSet the real time clock (RTC) to local time. This is enabled by default if the ostype indicates a Microsoft Windows OS.
lockbackup | clone | create | migrate | rollback | snapshot | snapshot-delete | suspending | … (1 more)Lock/unlock the VM.
machinestringSpecify the QEMU machine.
memorystringMemory properties.
migrate_downtimenumberSet maximum tolerated downtime (in seconds) for migrations. Should the migration not be able to converge in the very end, because too much newly dirtied RAM needs to be transferred, the limit will be increased automatically step-by-step until migration can converge. Will be capped to 2000 seconds (maximum in QEMU). — min 0, default 0.1
migrate_speednumberSet maximum speed (in MB/s) for migrations. Value 0 is no limit. — min 0, default 0
namestringSet a name for the VM. Only used on the configuration web interface. — format dns-name
nameserverstringcloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set. — format address-list
net0…net31stringSpecify network devices.
nodestringyesThe cluster node name. — format pve-node
numabooleanEnable/disable NUMA. — default 0
numa0…numa7stringNUMA topology.
onbootbooleanSpecifies whether a VM will be started during system bootup. — default 0
ostypeother | wxp | w2k | w2k3 | w2k8 | wvista | win7 | win8 | … (5 more)Specify guest operating system. — default "other"
parallel0…parallel2stringMap host parallel devices (n is 0 to 2).
protectionbooleanSets the protection flag of the VM. This will disable the remove VM and remove disk operations. — default 0
rebootbooleanAllow reboot. If set to '0' the VM exit on reboot. — default 1
revertstringRevert a pending change. — format pve-configid-list
rng0stringConfigure a VirtIO-based Random Number Generator. — format pve-qm-rng
sata0…sata5stringUse volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
scsi0…scsi30stringUse volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
scsihwlsi | lsi53c810 | virtio-scsi-pci | virtio-scsi-single | megasas | pvscsiSCSI controller model — default "lsi"
searchdomainstringcloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.
serial0…serial3stringCreate a serial device inside the VM (n is 0 to 3)
sharesnumberAmount of memory shares for auto-ballooning. The larger the number is, the more memory this VM gets. Number is relative to weights of all other running VMs. Using zero disables auto-ballooning. Auto-ballooning is done by pvestatd. — min 0, max 50000, default 1000
skiplockbooleanIgnore locks - only root is allowed to use this option.
smbios1stringSpecify SMBIOS type 1 fields. — format pve-qm-smbios1, ≤ 512 chars
smpnumberThe number of CPUs. Please use option -sockets instead. — min 1, default 1
socketsnumberThe number of CPU sockets. — min 1, default 1
spice_enhancementsstringConfigure additional enhancements for SPICE.
sshkeysstringcloud-init: Setup public SSH keys (one key per line, OpenSSH format). — format urlencoded
startdatestringSet the initial date of the real time clock. Valid format for date are:'now' or '2006-06-17T16:01:21' or '2006-06-17'. — default "now"
startupstringStartup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped. — format pve-startup-order
tabletbooleanEnable/disable the USB tablet device. — default 1
tagsstringTags of the VM. This is only meta information. — format pve-tag-list
tdfbooleanEnable/disable time drift fix. — default 0
templatebooleanEnable/disable Template. — default 0
tpmstate0stringConfigure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
unused0…unused255stringReference to unused volumes. This is used internally, and should not be modified manually.
usb0…usb13stringConfigure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).
vcpusnumberNumber of hotplugged vcpus. — min 1, default 0
vgastringConfigure the VGA hardware.
virtio0…virtio15stringUse volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.
virtiofs0…virtiofs9stringConfiguration for sharing a directory between host and guest using Virtio-fs.
vmgenidstringSet VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. — default "1 (autogenerated)"
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
vmstatestoragestringDefault storage for VM state volumes/files. — format pve-storage-id
watchdogstringCreate a virtual hardware watchdog device. — format pve-qm-watchdog

POST /nodes/{node}/qemu/{vmid}/dbus-vmstate ​

ts
proxmox.nodes.$(node).qemu.$(vmid)["dbus-vmstate"].$post()

Control the dbus-vmstate helper for a given running VM.

Returns nothing.

ParameterTypeRequiredNotes
actionstart | stopyesAction to perform on the DBus VMState helper.
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/feature ​

ts
proxmox.nodes.$(node).qemu.$(vmid).feature.$get()

Check if feature for virtual machine is available.

Returns object.

ParameterTypeRequiredNotes
featuresnapshot | clone | copyyesFeature to check.
nodestringyesThe cluster node name. — format pve-node
snapnamestringThe name of the snapshot. — format pve-configid, ≤ 40 chars
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.$get()

Directory index.

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall/aliases ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.aliases.$get()

List aliases

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/firewall/aliases ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.aliases.$post()

Create IP or Network Alias.

Returns nothing.

ParameterTypeRequiredNotes
cidrstringyesNetwork/IP specification in CIDR format. — format IPorCIDR
commentstringformat pve-fw-comment-spec
namestringyesAlias name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall/aliases/{name} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.aliases.$(name).$get()

Read alias.

Returns object.

ParameterTypeRequiredNotes
namestringyesAlias name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

PUT /nodes/{node}/qemu/{vmid}/firewall/aliases/{name} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.aliases.$(name).$put()

Update IP or Network alias.

Returns nothing.

ParameterTypeRequiredNotes
cidrstringyesNetwork/IP specification in CIDR format. — format IPorCIDR
commentstringformat pve-fw-comment-spec
digeststringPrevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars
namestringyesAlias name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
renamestringRename an existing alias. — ≤ 64 chars
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

DELETE /nodes/{node}/qemu/{vmid}/firewall/aliases/{name} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.aliases.$(name).$delete()

Remove IP or Network alias.

Returns nothing.

ParameterTypeRequiredNotes
digeststringPrevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars
namestringyesAlias name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall/ipset ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$get()

List IPSets

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/firewall/ipset ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$post()

Create new IPSet

Returns nothing.

ParameterTypeRequiredNotes
commentstringformat pve-fw-comment-spec
digeststringPrevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars
namestringyesIP set name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
renamestringRename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet. — ≤ 64 chars
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall/ipset/{name} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$get()

List IPSet content

Returns an array of object.

ParameterTypeRequiredNotes
namestringyesIP set name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/firewall/ipset/{name} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$post()

Add IP or Network to IPSet.

Returns nothing.

ParameterTypeRequiredNotes
cidrstringyesNetwork/IP specification in CIDR format. — format IPorCIDRorAlias
commentstringformat pve-fw-comment-spec
namestringyesIP set name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
nomatchboolean
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

DELETE /nodes/{node}/qemu/{vmid}/firewall/ipset/{name} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$delete()

Delete IPSet

Returns nothing.

ParameterTypeRequiredNotes
forcebooleanDelete all members of the IPSet, if there are any.
namestringyesIP set name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$(cidr).$get()

Read IP or Network settings from IPSet.

Returns object.

ParameterTypeRequiredNotes
cidrstringyesNetwork/IP specification in CIDR format. — format IPorCIDRorAlias
namestringyesIP set name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

PUT /nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$(cidr).$put()

Update IP or Network settings

Returns nothing.

ParameterTypeRequiredNotes
cidrstringyesNetwork/IP specification in CIDR format. — format IPorCIDRorAlias
commentstringformat pve-fw-comment-spec
digeststringPrevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars
namestringyesIP set name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
nomatchboolean
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

DELETE /nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$(cidr).$delete()

Remove IP or Network from IPSet.

Returns nothing.

ParameterTypeRequiredNotes
cidrstringyesNetwork/IP specification in CIDR format. — format IPorCIDRorAlias
digeststringPrevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars
namestringyesIP set name. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall/log ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.log.$get()

Read firewall log

Returns an array of object.

ParameterTypeRequiredNotes
limitnumbermin 0
nodestringyesThe cluster node name. — format pve-node
sincenumberDisplay log since this UNIX epoch. — min 0
startnumbermin 0
untilnumberDisplay log until this UNIX epoch. — min 0
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall/options ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.options.$get()

Get VM firewall options.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

PUT /nodes/{node}/qemu/{vmid}/firewall/options ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.options.$put()

Set Firewall options.

Returns nothing.

ParameterTypeRequiredNotes
deletestringA list of settings you want to delete. — format pve-configid-list
dhcpbooleanEnable DHCP. — default 0
digeststringPrevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars
enablebooleanEnable/disable firewall rules. — default 0
ipfilterbooleanEnable default IP filters. This is equivalent to adding an empty ipfilter-net<id> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added.
log_level_inemerg | alert | crit | err | warning | notice | info | debug | … (1 more)Log level for incoming traffic.
log_level_outemerg | alert | crit | err | warning | notice | info | debug | … (1 more)Log level for outgoing traffic.
macfilterbooleanEnable/disable MAC address filter. — default 1
ndpbooleanEnable NDP (Neighbor Discovery Protocol). — default 1
nodestringyesThe cluster node name. — format pve-node
policy_inACCEPT | REJECT | DROPInput policy.
policy_outACCEPT | REJECT | DROPOutput policy.
radvbooleanAllow sending Router Advertisement.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall/refs ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.refs.$get()

Lists possible IPSet/Alias reference which are allowed in source/dest properties.

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
typealias | ipsetOnly list references of specified type.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall/rules ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.rules.$get()

List rules.

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/firewall/rules ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.rules.$post()

Create new rule.

Returns nothing.

ParameterTypeRequiredNotes
actionstringyesRule action ('ACCEPT', 'DROP', 'REJECT') or security group name. — ≤ 20 chars
commentstringDescriptive comment. — format pve-fw-comment-spec
deststringRestrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists. — format pve-fw-addr-spec, ≤ 512 chars
digeststringPrevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars
dportstringRestrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\d+:\d+', for example '80:85', and you can use comma separated list to match several ports or ranges. — format pve-fw-dport-spec
enablenumberFlag to enable/disable a rule. — min 0
icmp-typestringSpecify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'. — format pve-fw-icmp-type-spec
ifacestringNetwork interface name. You have to use network configuration key names for VMs and containers ('net\d+'). Host related rules can use arbitrary strings. — format pve-iface, ≤ 20 chars
logemerg | alert | crit | err | warning | notice | info | debug | … (1 more)Log level for firewall rule.
macrostringUse predefined standard macro. — ≤ 128 chars
nodestringyesThe cluster node name. — format pve-node
posnumberUpdate rule at position <pos>. — min 0
protostringIP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'. — format pve-fw-protocol-spec
sourcestringRestrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists. — format pve-fw-addr-spec, ≤ 512 chars
sportstringRestrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\d+:\d+', for example '80:85', and you can use comma separated list to match several ports or ranges. — format pve-fw-sport-spec
typein | out | forward | groupyesRule type.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/firewall/rules/{pos} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.rules.$(pos).$get()

Get single rule data.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
posnumberUpdate rule at position <pos>. — min 0
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

PUT /nodes/{node}/qemu/{vmid}/firewall/rules/{pos} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.rules.$(pos).$put()

Modify rule data.

Returns nothing.

ParameterTypeRequiredNotes
actionstringRule action ('ACCEPT', 'DROP', 'REJECT') or security group name. — ≤ 20 chars
commentstringDescriptive comment. — format pve-fw-comment-spec
deletestringA list of settings you want to delete. — format pve-configid-list
deststringRestrict packet destination address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists. — format pve-fw-addr-spec, ≤ 512 chars
digeststringPrevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars
dportstringRestrict TCP/UDP destination port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\d+:\d+', for example '80:85', and you can use comma separated list to match several ports or ranges. — format pve-fw-dport-spec
enablenumberFlag to enable/disable a rule. — min 0
icmp-typestringSpecify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'. — format pve-fw-icmp-type-spec
ifacestringNetwork interface name. You have to use network configuration key names for VMs and containers ('net\d+'). Host related rules can use arbitrary strings. — format pve-iface, ≤ 20 chars
logemerg | alert | crit | err | warning | notice | info | debug | … (1 more)Log level for firewall rule.
macrostringUse predefined standard macro. — ≤ 128 chars
movetonumberMove rule to new position <moveto>. Other arguments are ignored. — min 0
nodestringyesThe cluster node name. — format pve-node
posnumberUpdate rule at position <pos>. — min 0
protostringIP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'. — format pve-fw-protocol-spec
sourcestringRestrict packet source address. This can refer to a single IP address, an IP set ('+ipsetname') or an IP alias definition. You can also specify an address range like '20.34.101.207-201.3.9.99', or a list of IP addresses and networks (entries are separated by comma). Please do not mix IPv4 and IPv6 addresses inside such lists. — format pve-fw-addr-spec, ≤ 512 chars
sportstringRestrict TCP/UDP source port. You can use service names or simple numbers (0-65535), as defined in '/etc/services'. Port ranges can be specified with '\d+:\d+', for example '80:85', and you can use comma separated list to match several ports or ranges. — format pve-fw-sport-spec
typein | out | forward | groupRule type.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

DELETE /nodes/{node}/qemu/{vmid}/firewall/rules/{pos} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).firewall.rules.$(pos).$delete()

Delete rule.

Returns nothing.

ParameterTypeRequiredNotes
digeststringPrevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars
nodestringyesThe cluster node name. — format pve-node
posnumberUpdate rule at position <pos>. — min 0
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/migrate ​

ts
proxmox.nodes.$(node).qemu.$(vmid).migrate.$get()

Get preconditions for migration.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
targetstringTarget node. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/migrate ​

ts
proxmox.nodes.$(node).qemu.$(vmid).migrate.$post()

Migrate virtual machine. Creates a new migration task.

Returns string.

ParameterTypeRequiredNotes
bwlimitnumberOverride I/O bandwidth limit (in KiB/s). — min 0, default "migrate limit from datacenter or storage config"
forcebooleanAllow to migrate VMs which use local devices. Only root may use this option.
migration_networkstringCIDR of the (sub) network that is used for migration. — format CIDR
migration_typesecure | insecureMigration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.
nodestringyesThe cluster node name. — format pve-node
onlinebooleanUse online/live migration if VM is running. Ignored if VM is stopped.
targetstringyesTarget node. — format pve-node
targetstoragestringMapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself. — format storage-pair-list
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
with-conntrack-statebooleanWhether to migrate conntrack entries for running VMs. — default 0
with-local-disksbooleanEnable live storage migration for local disk

POST /nodes/{node}/qemu/{vmid}/monitor ​

ts
proxmox.nodes.$(node).qemu.$(vmid).monitor.$post()

Execute QEMU monitor commands.

Returns string.

ParameterTypeRequiredNotes
commandstringyesThe monitor command.
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/move_disk ​

ts
proxmox.nodes.$(node).qemu.$(vmid).move_disk.$post()

Move volume to different storage or to a different VM.

Returns string.

ParameterTypeRequiredNotes
bwlimitnumberOverride I/O bandwidth limit (in KiB/s). — min 0, default "move limit from datacenter or storage config"
deletebooleanDelete the original disk after successful copy. By default the original disk is kept as unused disk. — default 0
digeststringPrevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. — ≤ 40 chars
diskide0 | ide1 | ide2 | ide3 | scsi0 | scsi1 | scsi2 | scsi3 | … (307 more)yesThe disk you want to move.
formatraw | qcow2 | vmdkTarget disk format. Only used when moving to a different storage. If the target storage does not support the format, the storage's default format is used instead.
nodestringyesThe cluster node name. — format pve-node
storagestringTarget storage. — format pve-storage-id
target-digeststringPrevent changes if the current config file of the target VM has a different SHA1 digest. This can be used to detect concurrent modifications. — ≤ 40 chars
target-diskide0 | ide1 | ide2 | ide3 | scsi0 | scsi1 | scsi2 | scsi3 | … (307 more)The config key the disk will be moved to on the target VM (for example, ide0 or scsi1). Default is the source disk key.
target-vmidnumberThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/mtunnel ​

ts
proxmox.nodes.$(node).qemu.$(vmid).mtunnel.$post()

Migration tunnel endpoint - only for internal use by VM migration.

Returns any.

ParameterTypeRequiredNotes
bridgesstringList of network bridges to check availability. Will be checked again for actually used bridges during migration. — format pve-bridge-id-list
nodestringyesThe cluster node name. — format pve-node
storagesstringList of storages to check permission and availability. Will be checked again for all actually used storages during migration. — format pve-storage-id-list
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/mtunnelwebsocket ​

ts
proxmox.nodes.$(node).qemu.$(vmid).mtunnelwebsocket.$get()

Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
socketstringyesunix socket to forward to
ticketstringyesticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/pending ​

ts
proxmox.nodes.$(node).qemu.$(vmid).pending.$get()

Get the virtual machine configuration with both current and pending values.

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/remote_migrate ​

ts
proxmox.nodes.$(node).qemu.$(vmid).remote_migrate.$post()

Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!

Returns string.

ParameterTypeRequiredNotes
bwlimitnumberOverride I/O bandwidth limit (in KiB/s). — min 0, default "migrate limit from datacenter or storage config"
deletebooleanDelete the original VM and related data after successful migration. By default the original VM is kept on the source cluster in a stopped state. — default 0
nodestringyesThe cluster node name. — format pve-node
onlinebooleanUse online/live migration if VM is running. Ignored if VM is stopped.
target-bridgestringyesMapping from source to target bridges. Providing only a single bridge ID maps all source bridges to that bridge. Providing the special value '1' will map each source bridge to itself. — format bridge-pair-list
target-endpointstringyesRemote target endpoint — format proxmox-remote
target-storagestringyesMapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself. — format storage-pair-list
target-vmidnumberThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

PUT /nodes/{node}/qemu/{vmid}/resize ​

ts
proxmox.nodes.$(node).qemu.$(vmid).resize.$put()

Extend volume size.

Returns string.

ParameterTypeRequiredNotes
digeststringPrevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. — ≤ 40 chars
diskide0 | ide1 | ide2 | ide3 | scsi0 | scsi1 | scsi2 | scsi3 | … (51 more)yesThe disk you want to resize.
nodestringyesThe cluster node name. — format pve-node
sizestringyesThe new size. With the + sign the value is added to the actual size of the volume and without it, the value is taken as an absolute one. Shrinking disk size is not supported.
skiplockbooleanIgnore locks - only root is allowed to use this option.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/rrd ​

ts
proxmox.nodes.$(node).qemu.$(vmid).rrd.$get()

Read VM RRD statistics (returns PNG)

Returns object.

ParameterTypeRequiredNotes
cfAVERAGE | MAXThe RRD consolidation function
dsstringyesThe list of datasources you want to display. — format pve-configid-list
nodestringyesThe cluster node name. — format pve-node
timeframehour | day | week | month | yearyesSpecify the time frame you are interested in.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/rrddata ​

ts
proxmox.nodes.$(node).qemu.$(vmid).rrddata.$get()

Read VM RRD statistics

Returns an array of object.

ParameterTypeRequiredNotes
cfAVERAGE | MAXThe RRD consolidation function
nodestringyesThe cluster node name. — format pve-node
timeframehour | day | week | month | yearyesSpecify the time frame you are interested in.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

PUT /nodes/{node}/qemu/{vmid}/sendkey ​

ts
proxmox.nodes.$(node).qemu.$(vmid).sendkey.$put()

Send key event to virtual machine.

Returns nothing.

ParameterTypeRequiredNotes
keystringyesThe key (qemu monitor encoding).
nodestringyesThe cluster node name. — format pve-node
skiplockbooleanIgnore locks - only root is allowed to use this option.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/snapshot ​

ts
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$get()

List all snapshots.

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/snapshot ​

ts
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$post()

Snapshot a VM.

Returns string.

ParameterTypeRequiredNotes
descriptionstringA textual description or comment.
nodestringyesThe cluster node name. — format pve-node
snapnamestringyesThe name of the snapshot. — format pve-configid, ≤ 40 chars
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
vmstatebooleanSave the vmstate

GET /nodes/{node}/qemu/{vmid}/snapshot/{snapname} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$(snapname).$get()

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
snapnamestringyesThe name of the snapshot. — format pve-configid, ≤ 40 chars
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

DELETE /nodes/{node}/qemu/{vmid}/snapshot/{snapname} ​

ts
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$(snapname).$delete()

Delete a VM snapshot.

Returns string.

ParameterTypeRequiredNotes
forcebooleanFor removal from config file, even if removing disk snapshots fails.
nodestringyesThe cluster node name. — format pve-node
snapnamestringyesThe name of the snapshot. — format pve-configid, ≤ 40 chars
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config ​

ts
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$(snapname).config.$get()

Get snapshot configuration

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
snapnamestringyesThe name of the snapshot. — format pve-configid, ≤ 40 chars
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

PUT /nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config ​

ts
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$(snapname).config.$put()

Update snapshot metadata.

Returns nothing.

ParameterTypeRequiredNotes
descriptionstringA textual description or comment.
nodestringyesThe cluster node name. — format pve-node
snapnamestringyesThe name of the snapshot. — format pve-configid, ≤ 40 chars
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback ​

ts
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$(snapname).rollback.$post()

Rollback VM state to specified snapshot.

Returns string.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
snapnamestringyesThe name of the snapshot. — format pve-configid, ≤ 40 chars
startbooleanWhether the VM should get started after rolling back successfully. (Note: VMs will be automatically started if the snapshot includes RAM.) — default 0
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/spiceproxy ​

ts
proxmox.nodes.$(node).qemu.$(vmid).spiceproxy.$post()

Returns a SPICE configuration to connect to the VM.

Returns any.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
proxystringSPICE proxy server. This can be used by the client to specify the proxy server. All nodes in a cluster runs 'spiceproxy', so it is up to the client to choose one. By default, we return the node where the VM is currently running. As reasonable setting is to use same node you use to connect to the API (This is window.location.hostname for the JS GUI). — format address
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/status ​

ts
proxmox.nodes.$(node).qemu.$(vmid).status.$get()

Directory index

Returns an array of object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

GET /nodes/{node}/qemu/{vmid}/status/current ​

ts
proxmox.nodes.$(node).qemu.$(vmid).status.current.$get()

Get virtual machine status.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/status/reboot ​

ts
proxmox.nodes.$(node).qemu.$(vmid).status.reboot.$post()

Reboot the VM by shutting it down, and starting it again. Applies pending changes.

Returns string.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
timeoutnumberWait maximal timeout seconds for the shutdown. — min 0
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/status/reset ​

ts
proxmox.nodes.$(node).qemu.$(vmid).status.reset.$post()

Reset virtual machine.

Returns string.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
skiplockbooleanIgnore locks - only root is allowed to use this option.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/status/resume ​

ts
proxmox.nodes.$(node).qemu.$(vmid).status.resume.$post()

Resume virtual machine.

Returns string.

ParameterTypeRequiredNotes
nocheckbooleanDo not check whether the VM is running, used internally during migration. Only root may use this option.
nodestringyesThe cluster node name. — format pve-node
skiplockbooleanIgnore locks - only root is allowed to use this option.
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/status/shutdown ​

ts
proxmox.nodes.$(node).qemu.$(vmid).status.shutdown.$post()

Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.

Returns string.

ParameterTypeRequiredNotes
forceStopbooleanMake sure the VM stops. — default 0
keepActivebooleanDo not deactivate storage volumes. — default 0
nodestringyesThe cluster node name. — format pve-node
skiplockbooleanIgnore locks - only root is allowed to use this option.
timeoutnumberWait maximal timeout seconds. — min 0
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/status/start ​

ts
proxmox.nodes.$(node).qemu.$(vmid).status.start.$post()

Start virtual machine.

Returns string.

ParameterTypeRequiredNotes
force-cpustringOverride QEMU's -cpu argument with the given string.
machinestringSpecify the QEMU machine.
migratedfromstringThe cluster node name. — format pve-node
migration_networkstringCIDR of the (sub) network that is used for migration. — format CIDR
migration_typesecure | insecureMigration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.
nets-host-mtustringUsed for migration compat. List of VirtIO network devices and their effective host_mtu setting according to the QEMU object model on the source side of the migration. A value of 0 means that the host_mtu parameter is to be avoided for the corresponding device.
nodestringyesThe cluster node name. — format pve-node
skiplockbooleanIgnore locks - only root is allowed to use this option.
stateuristringSome command save/restore state from this location. — ≤ 128 chars
targetstoragestringMapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself. — format storage-pair-list
timeoutnumberWait maximal timeout seconds. — min 0, default "max(30, vm memory in GiB)"
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
with-conntrack-statebooleanWhether to migrate conntrack entries for running VMs. — default 0

POST /nodes/{node}/qemu/{vmid}/status/stop ​

ts
proxmox.nodes.$(node).qemu.$(vmid).status.stop.$post()

Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.

Returns string.

ParameterTypeRequiredNotes
keepActivebooleanDo not deactivate storage volumes. — default 0
migratedfromstringThe cluster node name. — format pve-node
nodestringyesThe cluster node name. — format pve-node
overrule-shutdownbooleanTry to abort active 'qmshutdown' tasks before stopping. — default 0
skiplockbooleanIgnore locks - only root is allowed to use this option.
timeoutnumberWait maximal timeout seconds. — min 0
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/status/suspend ​

ts
proxmox.nodes.$(node).qemu.$(vmid).status.suspend.$post()

Suspend virtual machine.

Returns string.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
skiplockbooleanIgnore locks - only root is allowed to use this option.
statestoragestringThe storage for the VM state — format pve-storage-id
todiskbooleanIf set, suspends the VM to disk. Will be resumed on next VM start. — default 0
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/template ​

ts
proxmox.nodes.$(node).qemu.$(vmid).template.$post()

Create a Template.

Returns string.

ParameterTypeRequiredNotes
diskide0 | ide1 | ide2 | ide3 | scsi0 | scsi1 | scsi2 | scsi3 | … (51 more)If you want to convert only 1 disk to base image.
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/termproxy ​

ts
proxmox.nodes.$(node).qemu.$(vmid).termproxy.$post()

Creates a TCP proxy connections.

Returns any.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
serialserial0 | serial1 | serial2 | serial3opens a serial terminal (defaults to display)
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
ts
proxmox.nodes.$(node).qemu.$(vmid).unlink.$put()

Unlink/delete disk images.

Returns nothing.

ParameterTypeRequiredNotes
forcebooleanForce physical removal. Without this, we simple remove the disk from the config file and create an additional configuration entry called 'unused[n]', which contains the volume ID. Unlink of unused[n] always cause physical removal.
idliststringyesA list of disk IDs you want to delete. — format pve-configid-list
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999

POST /nodes/{node}/qemu/{vmid}/vncproxy ​

ts
proxmox.nodes.$(node).qemu.$(vmid).vncproxy.$post()

Creates a TCP VNC proxy connections.

Returns any.

ParameterTypeRequiredNotes
generate-passwordbooleanDeprecated, do not use. Password is generated when required. — default 0
nodestringyesThe cluster node name. — format pve-node
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
websocketbooleanPrepare for websocket upgrade (only required when using serial terminal, otherwise upgrade is always possible).

GET /nodes/{node}/qemu/{vmid}/vncwebsocket ​

ts
proxmox.nodes.$(node).qemu.$(vmid).vncwebsocket.$get()

Opens a websocket for VNC traffic.

Returns object.

ParameterTypeRequiredNotes
nodestringyesThe cluster node name. — format pve-node
portnumberyesPort number returned by previous vncproxy call. — min 5900, max 5999
vmidnumberyesThe (unique) ID of the VM. — format pve-vmid, min 100, max 999999999
vncticketstringyesTicket from previous call to vncproxy. — ≤ 512 chars