nodes / qemu
97 operations.
GET /nodes/{node}/qemu
proxmox.nodes.$(node).qemu.$get()Virtual machine index (per node).
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
full | boolean | Determine the full status of active VMs. | |
node | string | yes | The cluster node name. — format pve-node |
POST /nodes/{node}/qemu
proxmox.nodes.$(node).qemu.$post()Create or restore a virtual machine.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
acpi | boolean | Enable/disable ACPI. — default 1 | |
affinity | string | List of host cores used to execute guest processes, for example: 0,5,8-11 — format pve-cpuset | |
agent | string | Enable/disable communication with the QEMU Guest Agent and its properties. | |
allow-ksm | boolean | Allow memory pages of this guest to be merged via KSM (Kernel Samepage Merging). — default 1 | |
amd-sev | string | Secure Encrypted Virtualization (SEV) features by AMD CPUs — format pve-qemu-sev-fmt | |
arch | x86_64 | aarch64 | Virtual processor architecture. Defaults to the host architecture. | |
archive | string | The 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 | |
args | string | Arbitrary arguments passed to kvm. | |
audio0 | string | Configure a audio device, useful in combination with QXL/Spice. | |
autostart | boolean | Automatic restart after crash (currently ignored). — default 0 | |
balloon | number | Amount 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 | |
bios | seabios | ovmf | Select BIOS implementation. — default "seabios" | |
boot | string | Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated. — format pve-qm-boot | |
bootdisk | string | Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead. — format pve-qm-bootdisk | |
bwlimit | number | Override I/O bandwidth limit (in KiB/s). — min 0, default "restore limit from datacenter or storage config" | |
cdrom | string | This is an alias for option -ide2 — format pve-qm-ide | |
cicustom | string | cloud-init: Specify custom files to replace the automatically generated ones at start. — format pve-qm-cicustom | |
cipassword | string | cloud-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. | |
citype | configdrive2 | nocloud | opennebula | Specifies 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. | |
ciupgrade | boolean | cloud-init: do an automatic package upgrade after the first boot. — default 1 | |
ciuser | string | cloud-init: User name to change ssh keys and password for instead of the image's configured default user. | |
cores | number | The number of cores per socket. — min 1, default 1 | |
cpu | string | Emulated CPU type. — format pve-vm-cpu-conf | |
cpulimit | number | Limit of CPU usage. — min 0, max 128, default 0 | |
cpuunits | number | CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2. — min 1, max 262144, default "cgroup v1: 1024, cgroup v2: 100" | |
description | string | Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file. — ≤ 8192 chars | |
efidisk0 | string | Configure 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. | |
force | boolean | Allow to overwrite existing VM. | |
freeze | boolean | Freeze CPU at startup (use 'c' monitor command to start execution). | |
ha-managed | boolean | Add the VM as a HA resource after it was created. — default 0 | |
hookscript | string | Script that will be executed during various steps in the vms lifetime. — format pve-volume-id | |
hostpci0…hostpci15 | string | Map host PCI devices into guest. — format pve-qm-hostpci | |
hotplug | string | Selectively 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" | |
hugepages | any | 2 | 1024 | Enables 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…ide3 | string | Use 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-storage | string | A 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-tdx | string | Trusted Domain Extension (TDX) features by Intel CPUs — format pve-qemu-tdx-fmt | |
ipconfig0…ipconfig31 | string | cloud-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 | |
ivshmem | string | Inter-VM shared memory. Useful for direct communication between VMs, or to the host. | |
keephugepages | boolean | Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts. — default 0 | |
keyboard | de | 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 | |
kvm | boolean | Enable/disable KVM hardware virtualization. — default 1 | |
live-restore | boolean | Start the VM immediately while importing or restoring in the background. | |
localtime | boolean | Set the real time clock (RTC) to local time. This is enabled by default if the ostype indicates a Microsoft Windows OS. | |
lock | backup | clone | create | migrate | rollback | snapshot | snapshot-delete | suspending | … (1 more) | Lock/unlock the VM. | |
machine | string | Specify the QEMU machine. | |
memory | string | Memory properties. | |
migrate_downtime | number | Set 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_speed | number | Set maximum speed (in MB/s) for migrations. Value 0 is no limit. — min 0, default 0 | |
name | string | Set a name for the VM. Only used on the configuration web interface. — format dns-name | |
nameserver | string | cloud-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…net31 | string | Specify network devices. | |
node | string | yes | The cluster node name. — format pve-node |
numa | boolean | Enable/disable NUMA. — default 0 | |
numa0…numa7 | string | NUMA topology. | |
onboot | boolean | Specifies whether a VM will be started during system bootup. — default 0 | |
ostype | other | wxp | w2k | w2k3 | w2k8 | wvista | win7 | win8 | … (5 more) | Specify guest operating system. — default "other" | |
parallel0…parallel2 | string | Map host parallel devices (n is 0 to 2). | |
pool | string | Add the VM to the specified pool. — format pve-poolid | |
protection | boolean | Sets the protection flag of the VM. This will disable the remove VM and remove disk operations. — default 0 | |
reboot | boolean | Allow reboot. If set to '0' the VM exit on reboot. — default 1 | |
rng0 | string | Configure a VirtIO-based Random Number Generator. — format pve-qm-rng | |
sata0…sata5 | string | Use 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…scsi30 | string | Use 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. | |
scsihw | lsi | lsi53c810 | virtio-scsi-pci | virtio-scsi-single | megasas | pvscsi | SCSI controller model — default "lsi" | |
searchdomain | string | cloud-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…serial3 | string | Create a serial device inside the VM (n is 0 to 3) | |
shares | number | Amount 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 | |
smbios1 | string | Specify SMBIOS type 1 fields. — format pve-qm-smbios1, ≤ 512 chars | |
smp | number | The number of CPUs. Please use option -sockets instead. — min 1, default 1 | |
sockets | number | The number of CPU sockets. — min 1, default 1 | |
spice_enhancements | string | Configure additional enhancements for SPICE. | |
sshkeys | string | cloud-init: Setup public SSH keys (one key per line, OpenSSH format). — format urlencoded | |
start | boolean | Start VM after it was created successfully. — default 0 | |
startdate | string | Set 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" | |
startup | string | Startup 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 | |
storage | string | Default storage. — format pve-storage-id | |
tablet | boolean | Enable/disable the USB tablet device. — default 1 | |
tags | string | Tags of the VM. This is only meta information. — format pve-tag-list | |
tdf | boolean | Enable/disable time drift fix. — default 0 | |
template | boolean | Enable/disable Template. — default 0 | |
tpmstate0 | string | Configure 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. | |
unique | boolean | Assign a unique random ethernet address. | |
unused0…unused255 | string | Reference to unused volumes. This is used internally, and should not be modified manually. | |
usb0…usb13 | string | Configure 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). | |
vcpus | number | Number of hotplugged vcpus. — min 1, default 0 | |
vga | string | Configure the VGA hardware. | |
virtio0…virtio15 | string | Use 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…virtiofs9 | string | Configuration for sharing a directory between host and guest using Virtio-fs. | |
vmgenid | string | Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. — default "1 (autogenerated)" | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
vmstatestorage | string | Default storage for VM state volumes/files. — format pve-storage-id | |
watchdog | string | Create a virtual hardware watchdog device. — format pve-qm-watchdog |
GET /nodes/{node}/qemu/{vmid}
proxmox.nodes.$(node).qemu.$(vmid).$get()Directory index
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
DELETE /nodes/{node}/qemu/{vmid}
proxmox.nodes.$(node).qemu.$(vmid).$delete()Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
destroy-unreferenced-disks | boolean | If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages. — default 0 | |
node | string | yes | The cluster node name. — format pve-node |
purge | boolean | Remove VMID from configurations, like backup & replication jobs and HA. | |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent
proxmox.nodes.$(node).qemu.$(vmid).agent.$get()QEMU Guest Agent command index.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent
proxmox.nodes.$(node).qemu.$(vmid).agent.$post()Execute QEMU Guest Agent commands.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
command | fsfreeze-freeze | fsfreeze-status | fsfreeze-thaw | fstrim | get-fsinfo | get-host-name | get-memory-block-info | get-memory-blocks | … (12 more) | yes | The QGA command. |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/exec
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
command | string[] | yes | The command as a list of program + arguments. |
input-data | string | Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'. — ≤ 65536 chars | |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/exec-status
proxmox.nodes.$(node).qemu.$(vmid).agent["exec-status"].$get()Gets the status of the given pid started by the guest-agent
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
pid | number | yes | The PID to query |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/file-read
proxmox.nodes.$(node).qemu.$(vmid).agent["file-read"].$get()Reads the given file via guest agent. Is limited to 16777216 bytes.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
count | number | Number of bytes to read. — min 1, max 16777216, default "16777216" | |
decode | boolean | Data 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 | |
file | string | yes | The path to the file |
node | string | yes | The cluster node name. — format pve-node |
offset | number | Offset to start reading at — min 0, default 0 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/file-write
proxmox.nodes.$(node).qemu.$(vmid).agent["file-write"].$post()Writes the given file via guest agent.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
content | string | yes | The content to write into the file. — ≤ 61440 chars |
encode | boolean | If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true. — default 1 | |
file | string | yes | The path to the file. |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze
proxmox.nodes.$(node).qemu.$(vmid).agent["fsfreeze-freeze"].$post()Execute fsfreeze-freeze.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/fsfreeze-status
proxmox.nodes.$(node).qemu.$(vmid).agent["fsfreeze-status"].$post()Execute fsfreeze-status.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw
proxmox.nodes.$(node).qemu.$(vmid).agent["fsfreeze-thaw"].$post()Execute fsfreeze-thaw.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/fstrim
proxmox.nodes.$(node).qemu.$(vmid).agent.fstrim.$post()Execute fstrim.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/get-fsinfo
proxmox.nodes.$(node).qemu.$(vmid).agent["get-fsinfo"].$get()Execute get-fsinfo.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/get-host-name
proxmox.nodes.$(node).qemu.$(vmid).agent["get-host-name"].$get()Execute get-host-name.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/get-memory-block-info
proxmox.nodes.$(node).qemu.$(vmid).agent["get-memory-block-info"].$get()Execute get-memory-block-info.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/get-memory-blocks
proxmox.nodes.$(node).qemu.$(vmid).agent["get-memory-blocks"].$get()Execute get-memory-blocks.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/get-osinfo
proxmox.nodes.$(node).qemu.$(vmid).agent["get-osinfo"].$get()Execute get-osinfo.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/get-time
proxmox.nodes.$(node).qemu.$(vmid).agent["get-time"].$get()Execute get-time.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/get-timezone
proxmox.nodes.$(node).qemu.$(vmid).agent["get-timezone"].$get()Execute get-timezone.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/get-users
proxmox.nodes.$(node).qemu.$(vmid).agent["get-users"].$get()Execute get-users.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/get-vcpus
proxmox.nodes.$(node).qemu.$(vmid).agent["get-vcpus"].$get()Execute get-vcpus.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/info
proxmox.nodes.$(node).qemu.$(vmid).agent.info.$get()Execute info.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/agent/network-get-interfaces
proxmox.nodes.$(node).qemu.$(vmid).agent["network-get-interfaces"].$get()Execute network-get-interfaces.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/ping
proxmox.nodes.$(node).qemu.$(vmid).agent.ping.$post()Execute ping.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/set-user-password
proxmox.nodes.$(node).qemu.$(vmid).agent["set-user-password"].$post()Sets the password for the given user to the given password
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
crypted | boolean | set to 1 if the password has already been passed through crypt() — default 0 | |
node | string | yes | The cluster node name. — format pve-node |
password | string | yes | The new password. — ≤ 1024 chars |
username | string | yes | The user to set the password for. |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/shutdown
proxmox.nodes.$(node).qemu.$(vmid).agent.shutdown.$post()Execute shutdown.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/suspend-disk
proxmox.nodes.$(node).qemu.$(vmid).agent["suspend-disk"].$post()Execute suspend-disk.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/suspend-hybrid
proxmox.nodes.$(node).qemu.$(vmid).agent["suspend-hybrid"].$post()Execute suspend-hybrid.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/agent/suspend-ram
proxmox.nodes.$(node).qemu.$(vmid).agent["suspend-ram"].$post()Execute suspend-ram.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/clone
proxmox.nodes.$(node).qemu.$(vmid).clone.$post()Create a copy of virtual machine/template.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
bwlimit | number | Override I/O bandwidth limit (in KiB/s). — min 0, default "clone limit from datacenter or storage config" | |
description | string | Description for the new VM. | |
format | raw | qcow2 | vmdk | Target disk format. Only valid for full clone. If the target storage does not support the format, the storage's default format is used instead. | |
full | boolean | Create 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. | |
name | string | Set a name for the new VM. — format dns-name | |
newid | number | yes | VMID for the clone. — format pve-vmid, min 100, max 999999999 |
node | string | yes | The cluster node name. — format pve-node |
pool | string | Add the new VM to the specified pool. — format pve-poolid | |
snapname | string | The name of the snapshot. — format pve-configid, ≤ 40 chars | |
storage | string | Target storage for full clone. — format pve-storage-id | |
target | string | Target node. Only allowed if the original VM is on shared storage. — format pve-node | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/cloudinit
proxmox.nodes.$(node).qemu.$(vmid).cloudinit.$get()Get the cloudinit configuration with both current and pending values.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
PUT /nodes/{node}/qemu/{vmid}/cloudinit
proxmox.nodes.$(node).qemu.$(vmid).cloudinit.$put()Regenerate and change cloudinit config drive.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/cloudinit/dump
proxmox.nodes.$(node).qemu.$(vmid).cloudinit.dump.$get()Get automatically generated cloudinit config.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
type | user | network | meta | yes | Config type. |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/config
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
current | boolean | Get current values (instead of pending values). — default 0 | |
node | string | yes | The cluster node name. — format pve-node |
snapshot | string | Fetch config values from given snapshot. — format pve-configid, ≤ 40 chars | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/config
proxmox.nodes.$(node).qemu.$(vmid).config.$post()Set virtual machine options (asynchronous API).
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
acpi | boolean | Enable/disable ACPI. — default 1 | |
affinity | string | List of host cores used to execute guest processes, for example: 0,5,8-11 — format pve-cpuset | |
agent | string | Enable/disable communication with the QEMU Guest Agent and its properties. | |
allow-ksm | boolean | Allow memory pages of this guest to be merged via KSM (Kernel Samepage Merging). — default 1 | |
amd-sev | string | Secure Encrypted Virtualization (SEV) features by AMD CPUs — format pve-qemu-sev-fmt | |
arch | x86_64 | aarch64 | Virtual processor architecture. Defaults to the host architecture. | |
args | string | Arbitrary arguments passed to kvm. | |
audio0 | string | Configure a audio device, useful in combination with QXL/Spice. | |
autostart | boolean | Automatic restart after crash (currently ignored). — default 0 | |
background_delay | number | Time to wait for the task to finish. We return 'null' if the task finish within that time. — min 1, max 30 | |
balloon | number | Amount 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 | |
bios | seabios | ovmf | Select BIOS implementation. — default "seabios" | |
boot | string | Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated. — format pve-qm-boot | |
bootdisk | string | Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead. — format pve-qm-bootdisk | |
cdrom | string | This is an alias for option -ide2 — format pve-qm-ide | |
cicustom | string | cloud-init: Specify custom files to replace the automatically generated ones at start. — format pve-qm-cicustom | |
cipassword | string | cloud-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. | |
citype | configdrive2 | nocloud | opennebula | Specifies 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. | |
ciupgrade | boolean | cloud-init: do an automatic package upgrade after the first boot. — default 1 | |
ciuser | string | cloud-init: User name to change ssh keys and password for instead of the image's configured default user. | |
cores | number | The number of cores per socket. — min 1, default 1 | |
cpu | string | Emulated CPU type. — format pve-vm-cpu-conf | |
cpulimit | number | Limit of CPU usage. — min 0, max 128, default 0 | |
cpuunits | number | CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2. — min 1, max 262144, default "cgroup v1: 1024, cgroup v2: 100" | |
delete | string | A list of settings you want to delete. — format pve-configid-list | |
description | string | Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file. — ≤ 8192 chars | |
digest | string | Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. — ≤ 40 chars | |
efidisk0 | string | Configure 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. | |
force | boolean | Force 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. | |
freeze | boolean | Freeze CPU at startup (use 'c' monitor command to start execution). | |
hookscript | string | Script that will be executed during various steps in the vms lifetime. — format pve-volume-id | |
hostpci0…hostpci15 | string | Map host PCI devices into guest. — format pve-qm-hostpci | |
hotplug | string | Selectively 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" | |
hugepages | any | 2 | 1024 | Enables 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…ide3 | string | Use 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-storage | string | A 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-tdx | string | Trusted Domain Extension (TDX) features by Intel CPUs — format pve-qemu-tdx-fmt | |
ipconfig0…ipconfig31 | string | cloud-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 | |
ivshmem | string | Inter-VM shared memory. Useful for direct communication between VMs, or to the host. | |
keephugepages | boolean | Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts. — default 0 | |
keyboard | de | 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 | |
kvm | boolean | Enable/disable KVM hardware virtualization. — default 1 | |
localtime | boolean | Set the real time clock (RTC) to local time. This is enabled by default if the ostype indicates a Microsoft Windows OS. | |
lock | backup | clone | create | migrate | rollback | snapshot | snapshot-delete | suspending | … (1 more) | Lock/unlock the VM. | |
machine | string | Specify the QEMU machine. | |
memory | string | Memory properties. | |
migrate_downtime | number | Set 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_speed | number | Set maximum speed (in MB/s) for migrations. Value 0 is no limit. — min 0, default 0 | |
name | string | Set a name for the VM. Only used on the configuration web interface. — format dns-name | |
nameserver | string | cloud-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…net31 | string | Specify network devices. | |
node | string | yes | The cluster node name. — format pve-node |
numa | boolean | Enable/disable NUMA. — default 0 | |
numa0…numa7 | string | NUMA topology. | |
onboot | boolean | Specifies whether a VM will be started during system bootup. — default 0 | |
ostype | other | wxp | w2k | w2k3 | w2k8 | wvista | win7 | win8 | … (5 more) | Specify guest operating system. — default "other" | |
parallel0…parallel2 | string | Map host parallel devices (n is 0 to 2). | |
protection | boolean | Sets the protection flag of the VM. This will disable the remove VM and remove disk operations. — default 0 | |
reboot | boolean | Allow reboot. If set to '0' the VM exit on reboot. — default 1 | |
revert | string | Revert a pending change. — format pve-configid-list | |
rng0 | string | Configure a VirtIO-based Random Number Generator. — format pve-qm-rng | |
sata0…sata5 | string | Use 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…scsi30 | string | Use 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. | |
scsihw | lsi | lsi53c810 | virtio-scsi-pci | virtio-scsi-single | megasas | pvscsi | SCSI controller model — default "lsi" | |
searchdomain | string | cloud-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…serial3 | string | Create a serial device inside the VM (n is 0 to 3) | |
shares | number | Amount 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 | |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
smbios1 | string | Specify SMBIOS type 1 fields. — format pve-qm-smbios1, ≤ 512 chars | |
smp | number | The number of CPUs. Please use option -sockets instead. — min 1, default 1 | |
sockets | number | The number of CPU sockets. — min 1, default 1 | |
spice_enhancements | string | Configure additional enhancements for SPICE. | |
sshkeys | string | cloud-init: Setup public SSH keys (one key per line, OpenSSH format). — format urlencoded | |
startdate | string | Set 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" | |
startup | string | Startup 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 | |
tablet | boolean | Enable/disable the USB tablet device. — default 1 | |
tags | string | Tags of the VM. This is only meta information. — format pve-tag-list | |
tdf | boolean | Enable/disable time drift fix. — default 0 | |
template | boolean | Enable/disable Template. — default 0 | |
tpmstate0 | string | Configure 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…unused255 | string | Reference to unused volumes. This is used internally, and should not be modified manually. | |
usb0…usb13 | string | Configure 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). | |
vcpus | number | Number of hotplugged vcpus. — min 1, default 0 | |
vga | string | Configure the VGA hardware. | |
virtio0…virtio15 | string | Use 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…virtiofs9 | string | Configuration for sharing a directory between host and guest using Virtio-fs. | |
vmgenid | string | Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. — default "1 (autogenerated)" | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
vmstatestorage | string | Default storage for VM state volumes/files. — format pve-storage-id | |
watchdog | string | Create a virtual hardware watchdog device. — format pve-qm-watchdog |
PUT /nodes/{node}/qemu/{vmid}/config
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
acpi | boolean | Enable/disable ACPI. — default 1 | |
affinity | string | List of host cores used to execute guest processes, for example: 0,5,8-11 — format pve-cpuset | |
agent | string | Enable/disable communication with the QEMU Guest Agent and its properties. | |
allow-ksm | boolean | Allow memory pages of this guest to be merged via KSM (Kernel Samepage Merging). — default 1 | |
amd-sev | string | Secure Encrypted Virtualization (SEV) features by AMD CPUs — format pve-qemu-sev-fmt | |
arch | x86_64 | aarch64 | Virtual processor architecture. Defaults to the host architecture. | |
args | string | Arbitrary arguments passed to kvm. | |
audio0 | string | Configure a audio device, useful in combination with QXL/Spice. | |
autostart | boolean | Automatic restart after crash (currently ignored). — default 0 | |
balloon | number | Amount 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 | |
bios | seabios | ovmf | Select BIOS implementation. — default "seabios" | |
boot | string | Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated. — format pve-qm-boot | |
bootdisk | string | Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead. — format pve-qm-bootdisk | |
cdrom | string | This is an alias for option -ide2 — format pve-qm-ide | |
cicustom | string | cloud-init: Specify custom files to replace the automatically generated ones at start. — format pve-qm-cicustom | |
cipassword | string | cloud-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. | |
citype | configdrive2 | nocloud | opennebula | Specifies 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. | |
ciupgrade | boolean | cloud-init: do an automatic package upgrade after the first boot. — default 1 | |
ciuser | string | cloud-init: User name to change ssh keys and password for instead of the image's configured default user. | |
cores | number | The number of cores per socket. — min 1, default 1 | |
cpu | string | Emulated CPU type. — format pve-vm-cpu-conf | |
cpulimit | number | Limit of CPU usage. — min 0, max 128, default 0 | |
cpuunits | number | CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2. — min 1, max 262144, default "cgroup v1: 1024, cgroup v2: 100" | |
delete | string | A list of settings you want to delete. — format pve-configid-list | |
description | string | Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file. — ≤ 8192 chars | |
digest | string | Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. — ≤ 40 chars | |
efidisk0 | string | Configure 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. | |
force | boolean | Force 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. | |
freeze | boolean | Freeze CPU at startup (use 'c' monitor command to start execution). | |
hookscript | string | Script that will be executed during various steps in the vms lifetime. — format pve-volume-id | |
hostpci0…hostpci15 | string | Map host PCI devices into guest. — format pve-qm-hostpci | |
hotplug | string | Selectively 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" | |
hugepages | any | 2 | 1024 | Enables 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…ide3 | string | Use 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-tdx | string | Trusted Domain Extension (TDX) features by Intel CPUs — format pve-qemu-tdx-fmt | |
ipconfig0…ipconfig31 | string | cloud-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 | |
ivshmem | string | Inter-VM shared memory. Useful for direct communication between VMs, or to the host. | |
keephugepages | boolean | Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts. — default 0 | |
keyboard | de | 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 | |
kvm | boolean | Enable/disable KVM hardware virtualization. — default 1 | |
localtime | boolean | Set the real time clock (RTC) to local time. This is enabled by default if the ostype indicates a Microsoft Windows OS. | |
lock | backup | clone | create | migrate | rollback | snapshot | snapshot-delete | suspending | … (1 more) | Lock/unlock the VM. | |
machine | string | Specify the QEMU machine. | |
memory | string | Memory properties. | |
migrate_downtime | number | Set 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_speed | number | Set maximum speed (in MB/s) for migrations. Value 0 is no limit. — min 0, default 0 | |
name | string | Set a name for the VM. Only used on the configuration web interface. — format dns-name | |
nameserver | string | cloud-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…net31 | string | Specify network devices. | |
node | string | yes | The cluster node name. — format pve-node |
numa | boolean | Enable/disable NUMA. — default 0 | |
numa0…numa7 | string | NUMA topology. | |
onboot | boolean | Specifies whether a VM will be started during system bootup. — default 0 | |
ostype | other | wxp | w2k | w2k3 | w2k8 | wvista | win7 | win8 | … (5 more) | Specify guest operating system. — default "other" | |
parallel0…parallel2 | string | Map host parallel devices (n is 0 to 2). | |
protection | boolean | Sets the protection flag of the VM. This will disable the remove VM and remove disk operations. — default 0 | |
reboot | boolean | Allow reboot. If set to '0' the VM exit on reboot. — default 1 | |
revert | string | Revert a pending change. — format pve-configid-list | |
rng0 | string | Configure a VirtIO-based Random Number Generator. — format pve-qm-rng | |
sata0…sata5 | string | Use 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…scsi30 | string | Use 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. | |
scsihw | lsi | lsi53c810 | virtio-scsi-pci | virtio-scsi-single | megasas | pvscsi | SCSI controller model — default "lsi" | |
searchdomain | string | cloud-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…serial3 | string | Create a serial device inside the VM (n is 0 to 3) | |
shares | number | Amount 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 | |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
smbios1 | string | Specify SMBIOS type 1 fields. — format pve-qm-smbios1, ≤ 512 chars | |
smp | number | The number of CPUs. Please use option -sockets instead. — min 1, default 1 | |
sockets | number | The number of CPU sockets. — min 1, default 1 | |
spice_enhancements | string | Configure additional enhancements for SPICE. | |
sshkeys | string | cloud-init: Setup public SSH keys (one key per line, OpenSSH format). — format urlencoded | |
startdate | string | Set 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" | |
startup | string | Startup 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 | |
tablet | boolean | Enable/disable the USB tablet device. — default 1 | |
tags | string | Tags of the VM. This is only meta information. — format pve-tag-list | |
tdf | boolean | Enable/disable time drift fix. — default 0 | |
template | boolean | Enable/disable Template. — default 0 | |
tpmstate0 | string | Configure 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…unused255 | string | Reference to unused volumes. This is used internally, and should not be modified manually. | |
usb0…usb13 | string | Configure 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). | |
vcpus | number | Number of hotplugged vcpus. — min 1, default 0 | |
vga | string | Configure the VGA hardware. | |
virtio0…virtio15 | string | Use 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…virtiofs9 | string | Configuration for sharing a directory between host and guest using Virtio-fs. | |
vmgenid | string | Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. — default "1 (autogenerated)" | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
vmstatestorage | string | Default storage for VM state volumes/files. — format pve-storage-id | |
watchdog | string | Create a virtual hardware watchdog device. — format pve-qm-watchdog |
POST /nodes/{node}/qemu/{vmid}/dbus-vmstate
proxmox.nodes.$(node).qemu.$(vmid)["dbus-vmstate"].$post()Control the dbus-vmstate helper for a given running VM.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
action | start | stop | yes | Action to perform on the DBus VMState helper. |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/feature
proxmox.nodes.$(node).qemu.$(vmid).feature.$get()Check if feature for virtual machine is available.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
feature | snapshot | clone | copy | yes | Feature to check. |
node | string | yes | The cluster node name. — format pve-node |
snapname | string | The name of the snapshot. — format pve-configid, ≤ 40 chars | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall
proxmox.nodes.$(node).qemu.$(vmid).firewall.$get()Directory index.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall/aliases
proxmox.nodes.$(node).qemu.$(vmid).firewall.aliases.$get()List aliases
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/firewall/aliases
proxmox.nodes.$(node).qemu.$(vmid).firewall.aliases.$post()Create IP or Network Alias.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
cidr | string | yes | Network/IP specification in CIDR format. — format IPorCIDR |
comment | string | format pve-fw-comment-spec | |
name | string | yes | Alias name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall/aliases/{name}
proxmox.nodes.$(node).qemu.$(vmid).firewall.aliases.$(name).$get()Read alias.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
name | string | yes | Alias name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
PUT /nodes/{node}/qemu/{vmid}/firewall/aliases/{name}
proxmox.nodes.$(node).qemu.$(vmid).firewall.aliases.$(name).$put()Update IP or Network alias.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
cidr | string | yes | Network/IP specification in CIDR format. — format IPorCIDR |
comment | string | format pve-fw-comment-spec | |
digest | string | Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars | |
name | string | yes | Alias name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
rename | string | Rename an existing alias. — ≤ 64 chars | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
DELETE /nodes/{node}/qemu/{vmid}/firewall/aliases/{name}
proxmox.nodes.$(node).qemu.$(vmid).firewall.aliases.$(name).$delete()Remove IP or Network alias.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
digest | string | Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars | |
name | string | yes | Alias name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall/ipset
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$get()List IPSets
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/firewall/ipset
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$post()Create new IPSet
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
comment | string | format pve-fw-comment-spec | |
digest | string | Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars | |
name | string | yes | IP set name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
rename | string | Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet. — ≤ 64 chars | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall/ipset/{name}
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$get()List IPSet content
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
name | string | yes | IP set name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/firewall/ipset/{name}
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$post()Add IP or Network to IPSet.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
cidr | string | yes | Network/IP specification in CIDR format. — format IPorCIDRorAlias |
comment | string | format pve-fw-comment-spec | |
name | string | yes | IP set name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
nomatch | boolean | ||
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
DELETE /nodes/{node}/qemu/{vmid}/firewall/ipset/{name}
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$delete()Delete IPSet
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
force | boolean | Delete all members of the IPSet, if there are any. | |
name | string | yes | IP set name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$(cidr).$get()Read IP or Network settings from IPSet.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
cidr | string | yes | Network/IP specification in CIDR format. — format IPorCIDRorAlias |
name | string | yes | IP set name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
PUT /nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$(cidr).$put()Update IP or Network settings
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
cidr | string | yes | Network/IP specification in CIDR format. — format IPorCIDRorAlias |
comment | string | format pve-fw-comment-spec | |
digest | string | Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars | |
name | string | yes | IP set name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
nomatch | boolean | ||
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
DELETE /nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}
proxmox.nodes.$(node).qemu.$(vmid).firewall.ipset.$(name).$(cidr).$delete()Remove IP or Network from IPSet.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
cidr | string | yes | Network/IP specification in CIDR format. — format IPorCIDRorAlias |
digest | string | Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars | |
name | string | yes | IP set name. — ≤ 64 chars |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall/log
proxmox.nodes.$(node).qemu.$(vmid).firewall.log.$get()Read firewall log
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
limit | number | min 0 | |
node | string | yes | The cluster node name. — format pve-node |
since | number | Display log since this UNIX epoch. — min 0 | |
start | number | min 0 | |
until | number | Display log until this UNIX epoch. — min 0 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall/options
proxmox.nodes.$(node).qemu.$(vmid).firewall.options.$get()Get VM firewall options.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
PUT /nodes/{node}/qemu/{vmid}/firewall/options
proxmox.nodes.$(node).qemu.$(vmid).firewall.options.$put()Set Firewall options.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
delete | string | A list of settings you want to delete. — format pve-configid-list | |
dhcp | boolean | Enable DHCP. — default 0 | |
digest | string | Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars | |
enable | boolean | Enable/disable firewall rules. — default 0 | |
ipfilter | boolean | Enable 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_in | emerg | alert | crit | err | warning | notice | info | debug | … (1 more) | Log level for incoming traffic. | |
log_level_out | emerg | alert | crit | err | warning | notice | info | debug | … (1 more) | Log level for outgoing traffic. | |
macfilter | boolean | Enable/disable MAC address filter. — default 1 | |
ndp | boolean | Enable NDP (Neighbor Discovery Protocol). — default 1 | |
node | string | yes | The cluster node name. — format pve-node |
policy_in | ACCEPT | REJECT | DROP | Input policy. | |
policy_out | ACCEPT | REJECT | DROP | Output policy. | |
radv | boolean | Allow sending Router Advertisement. | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall/refs
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
type | alias | ipset | Only list references of specified type. | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall/rules
proxmox.nodes.$(node).qemu.$(vmid).firewall.rules.$get()List rules.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/firewall/rules
proxmox.nodes.$(node).qemu.$(vmid).firewall.rules.$post()Create new rule.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
action | string | yes | Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name. — ≤ 20 chars |
comment | string | Descriptive comment. — format pve-fw-comment-spec | |
dest | string | Restrict 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 | |
digest | string | Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars | |
dport | string | Restrict 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 | |
enable | number | Flag to enable/disable a rule. — min 0 | |
icmp-type | string | Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'. — format pve-fw-icmp-type-spec | |
iface | string | Network 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 | |
log | emerg | alert | crit | err | warning | notice | info | debug | … (1 more) | Log level for firewall rule. | |
macro | string | Use predefined standard macro. — ≤ 128 chars | |
node | string | yes | The cluster node name. — format pve-node |
pos | number | Update rule at position <pos>. — min 0 | |
proto | string | IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'. — format pve-fw-protocol-spec | |
source | string | Restrict 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 | |
sport | string | Restrict 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 | |
type | in | out | forward | group | yes | Rule type. |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/firewall/rules/{pos}
proxmox.nodes.$(node).qemu.$(vmid).firewall.rules.$(pos).$get()Get single rule data.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
pos | number | Update rule at position <pos>. — min 0 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
PUT /nodes/{node}/qemu/{vmid}/firewall/rules/{pos}
proxmox.nodes.$(node).qemu.$(vmid).firewall.rules.$(pos).$put()Modify rule data.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
action | string | Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name. — ≤ 20 chars | |
comment | string | Descriptive comment. — format pve-fw-comment-spec | |
delete | string | A list of settings you want to delete. — format pve-configid-list | |
dest | string | Restrict 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 | |
digest | string | Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars | |
dport | string | Restrict 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 | |
enable | number | Flag to enable/disable a rule. — min 0 | |
icmp-type | string | Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'. — format pve-fw-icmp-type-spec | |
iface | string | Network 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 | |
log | emerg | alert | crit | err | warning | notice | info | debug | … (1 more) | Log level for firewall rule. | |
macro | string | Use predefined standard macro. — ≤ 128 chars | |
moveto | number | Move rule to new position <moveto>. Other arguments are ignored. — min 0 | |
node | string | yes | The cluster node name. — format pve-node |
pos | number | Update rule at position <pos>. — min 0 | |
proto | string | IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'. — format pve-fw-protocol-spec | |
source | string | Restrict 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 | |
sport | string | Restrict 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 | |
type | in | out | forward | group | Rule type. | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
DELETE /nodes/{node}/qemu/{vmid}/firewall/rules/{pos}
proxmox.nodes.$(node).qemu.$(vmid).firewall.rules.$(pos).$delete()Delete rule.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
digest | string | Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications. — ≤ 64 chars | |
node | string | yes | The cluster node name. — format pve-node |
pos | number | Update rule at position <pos>. — min 0 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/migrate
proxmox.nodes.$(node).qemu.$(vmid).migrate.$get()Get preconditions for migration.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
target | string | Target node. — format pve-node | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/migrate
proxmox.nodes.$(node).qemu.$(vmid).migrate.$post()Migrate virtual machine. Creates a new migration task.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
bwlimit | number | Override I/O bandwidth limit (in KiB/s). — min 0, default "migrate limit from datacenter or storage config" | |
force | boolean | Allow to migrate VMs which use local devices. Only root may use this option. | |
migration_network | string | CIDR of the (sub) network that is used for migration. — format CIDR | |
migration_type | secure | insecure | Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance. | |
node | string | yes | The cluster node name. — format pve-node |
online | boolean | Use online/live migration if VM is running. Ignored if VM is stopped. | |
target | string | yes | Target node. — format pve-node |
targetstorage | string | Mapping 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 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
with-conntrack-state | boolean | Whether to migrate conntrack entries for running VMs. — default 0 | |
with-local-disks | boolean | Enable live storage migration for local disk |
POST /nodes/{node}/qemu/{vmid}/monitor
proxmox.nodes.$(node).qemu.$(vmid).monitor.$post()Execute QEMU monitor commands.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
command | string | yes | The monitor command. |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/move_disk
proxmox.nodes.$(node).qemu.$(vmid).move_disk.$post()Move volume to different storage or to a different VM.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
bwlimit | number | Override I/O bandwidth limit (in KiB/s). — min 0, default "move limit from datacenter or storage config" | |
delete | boolean | Delete the original disk after successful copy. By default the original disk is kept as unused disk. — default 0 | |
digest | string | Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. — ≤ 40 chars | |
disk | ide0 | ide1 | ide2 | ide3 | scsi0 | scsi1 | scsi2 | scsi3 | … (307 more) | yes | The disk you want to move. |
format | raw | qcow2 | vmdk | Target 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. | |
node | string | yes | The cluster node name. — format pve-node |
storage | string | Target storage. — format pve-storage-id | |
target-digest | string | Prevent 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-disk | ide0 | 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-vmid | number | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/mtunnel
proxmox.nodes.$(node).qemu.$(vmid).mtunnel.$post()Migration tunnel endpoint - only for internal use by VM migration.
Returns any.
| Parameter | Type | Required | Notes |
|---|---|---|---|
bridges | string | List of network bridges to check availability. Will be checked again for actually used bridges during migration. — format pve-bridge-id-list | |
node | string | yes | The cluster node name. — format pve-node |
storages | string | List of storages to check permission and availability. Will be checked again for all actually used storages during migration. — format pve-storage-id-list | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/mtunnelwebsocket
proxmox.nodes.$(node).qemu.$(vmid).mtunnelwebsocket.$get()Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
socket | string | yes | unix socket to forward to |
ticket | string | yes | ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/pending
proxmox.nodes.$(node).qemu.$(vmid).pending.$get()Get the virtual machine configuration with both current and pending values.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/remote_migrate
proxmox.nodes.$(node).qemu.$(vmid).remote_migrate.$post()Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
bwlimit | number | Override I/O bandwidth limit (in KiB/s). — min 0, default "migrate limit from datacenter or storage config" | |
delete | boolean | Delete 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 | |
node | string | yes | The cluster node name. — format pve-node |
online | boolean | Use online/live migration if VM is running. Ignored if VM is stopped. | |
target-bridge | string | yes | Mapping 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-endpoint | string | yes | Remote target endpoint — format proxmox-remote |
target-storage | string | yes | Mapping 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-vmid | number | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
PUT /nodes/{node}/qemu/{vmid}/resize
proxmox.nodes.$(node).qemu.$(vmid).resize.$put()Extend volume size.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
digest | string | Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications. — ≤ 40 chars | |
disk | ide0 | ide1 | ide2 | ide3 | scsi0 | scsi1 | scsi2 | scsi3 | … (51 more) | yes | The disk you want to resize. |
node | string | yes | The cluster node name. — format pve-node |
size | string | yes | The 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. |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/rrd
proxmox.nodes.$(node).qemu.$(vmid).rrd.$get()Read VM RRD statistics (returns PNG)
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
cf | AVERAGE | MAX | The RRD consolidation function | |
ds | string | yes | The list of datasources you want to display. — format pve-configid-list |
node | string | yes | The cluster node name. — format pve-node |
timeframe | hour | day | week | month | year | yes | Specify the time frame you are interested in. |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/rrddata
proxmox.nodes.$(node).qemu.$(vmid).rrddata.$get()Read VM RRD statistics
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
cf | AVERAGE | MAX | The RRD consolidation function | |
node | string | yes | The cluster node name. — format pve-node |
timeframe | hour | day | week | month | year | yes | Specify the time frame you are interested in. |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
PUT /nodes/{node}/qemu/{vmid}/sendkey
proxmox.nodes.$(node).qemu.$(vmid).sendkey.$put()Send key event to virtual machine.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
key | string | yes | The key (qemu monitor encoding). |
node | string | yes | The cluster node name. — format pve-node |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/snapshot
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$get()List all snapshots.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/snapshot
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$post()Snapshot a VM.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
description | string | A textual description or comment. | |
node | string | yes | The cluster node name. — format pve-node |
snapname | string | yes | The name of the snapshot. — format pve-configid, ≤ 40 chars |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
vmstate | boolean | Save the vmstate |
GET /nodes/{node}/qemu/{vmid}/snapshot/{snapname}
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$(snapname).$get()Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
snapname | string | yes | The name of the snapshot. — format pve-configid, ≤ 40 chars |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
DELETE /nodes/{node}/qemu/{vmid}/snapshot/{snapname}
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$(snapname).$delete()Delete a VM snapshot.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
force | boolean | For removal from config file, even if removing disk snapshots fails. | |
node | string | yes | The cluster node name. — format pve-node |
snapname | string | yes | The name of the snapshot. — format pve-configid, ≤ 40 chars |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$(snapname).config.$get()Get snapshot configuration
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
snapname | string | yes | The name of the snapshot. — format pve-configid, ≤ 40 chars |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
PUT /nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$(snapname).config.$put()Update snapshot metadata.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
description | string | A textual description or comment. | |
node | string | yes | The cluster node name. — format pve-node |
snapname | string | yes | The name of the snapshot. — format pve-configid, ≤ 40 chars |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback
proxmox.nodes.$(node).qemu.$(vmid).snapshot.$(snapname).rollback.$post()Rollback VM state to specified snapshot.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
snapname | string | yes | The name of the snapshot. — format pve-configid, ≤ 40 chars |
start | boolean | Whether the VM should get started after rolling back successfully. (Note: VMs will be automatically started if the snapshot includes RAM.) — default 0 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/spiceproxy
proxmox.nodes.$(node).qemu.$(vmid).spiceproxy.$post()Returns a SPICE configuration to connect to the VM.
Returns any.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
proxy | string | SPICE 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 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/status
proxmox.nodes.$(node).qemu.$(vmid).status.$get()Directory index
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
GET /nodes/{node}/qemu/{vmid}/status/current
proxmox.nodes.$(node).qemu.$(vmid).status.current.$get()Get virtual machine status.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/status/reboot
proxmox.nodes.$(node).qemu.$(vmid).status.reboot.$post()Reboot the VM by shutting it down, and starting it again. Applies pending changes.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
timeout | number | Wait maximal timeout seconds for the shutdown. — min 0 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/status/reset
proxmox.nodes.$(node).qemu.$(vmid).status.reset.$post()Reset virtual machine.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/status/resume
proxmox.nodes.$(node).qemu.$(vmid).status.resume.$post()Resume virtual machine.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
nocheck | boolean | Do not check whether the VM is running, used internally during migration. Only root may use this option. | |
node | string | yes | The cluster node name. — format pve-node |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/status/shutdown
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
forceStop | boolean | Make sure the VM stops. — default 0 | |
keepActive | boolean | Do not deactivate storage volumes. — default 0 | |
node | string | yes | The cluster node name. — format pve-node |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
timeout | number | Wait maximal timeout seconds. — min 0 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/status/start
proxmox.nodes.$(node).qemu.$(vmid).status.start.$post()Start virtual machine.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
force-cpu | string | Override QEMU's -cpu argument with the given string. | |
machine | string | Specify the QEMU machine. | |
migratedfrom | string | The cluster node name. — format pve-node | |
migration_network | string | CIDR of the (sub) network that is used for migration. — format CIDR | |
migration_type | secure | insecure | Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance. | |
nets-host-mtu | string | Used 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. | |
node | string | yes | The cluster node name. — format pve-node |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
stateuri | string | Some command save/restore state from this location. — ≤ 128 chars | |
targetstorage | string | Mapping 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 | |
timeout | number | Wait maximal timeout seconds. — min 0, default "max(30, vm memory in GiB)" | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
with-conntrack-state | boolean | Whether to migrate conntrack entries for running VMs. — default 0 |
POST /nodes/{node}/qemu/{vmid}/status/stop
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
keepActive | boolean | Do not deactivate storage volumes. — default 0 | |
migratedfrom | string | The cluster node name. — format pve-node | |
node | string | yes | The cluster node name. — format pve-node |
overrule-shutdown | boolean | Try to abort active 'qmshutdown' tasks before stopping. — default 0 | |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
timeout | number | Wait maximal timeout seconds. — min 0 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/status/suspend
proxmox.nodes.$(node).qemu.$(vmid).status.suspend.$post()Suspend virtual machine.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
skiplock | boolean | Ignore locks - only root is allowed to use this option. | |
statestorage | string | The storage for the VM state — format pve-storage-id | |
todisk | boolean | If set, suspends the VM to disk. Will be resumed on next VM start. — default 0 | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/template
proxmox.nodes.$(node).qemu.$(vmid).template.$post()Create a Template.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
disk | ide0 | ide1 | ide2 | ide3 | scsi0 | scsi1 | scsi2 | scsi3 | … (51 more) | If you want to convert only 1 disk to base image. | |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/termproxy
proxmox.nodes.$(node).qemu.$(vmid).termproxy.$post()Creates a TCP proxy connections.
Returns any.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
serial | serial0 | serial1 | serial2 | serial3 | opens a serial terminal (defaults to display) | |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
PUT /nodes/{node}/qemu/{vmid}/unlink
proxmox.nodes.$(node).qemu.$(vmid).unlink.$put()Unlink/delete disk images.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
force | boolean | Force 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. | |
idlist | string | yes | A list of disk IDs you want to delete. — format pve-configid-list |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
POST /nodes/{node}/qemu/{vmid}/vncproxy
proxmox.nodes.$(node).qemu.$(vmid).vncproxy.$post()Creates a TCP VNC proxy connections.
Returns any.
| Parameter | Type | Required | Notes |
|---|---|---|---|
generate-password | boolean | Deprecated, do not use. Password is generated when required. — default 0 | |
node | string | yes | The cluster node name. — format pve-node |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
websocket | boolean | Prepare for websocket upgrade (only required when using serial terminal, otherwise upgrade is always possible). |
GET /nodes/{node}/qemu/{vmid}/vncwebsocket
proxmox.nodes.$(node).qemu.$(vmid).vncwebsocket.$get()Opens a websocket for VNC traffic.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
port | number | yes | Port number returned by previous vncproxy call. — min 5900, max 5999 |
vmid | number | yes | The (unique) ID of the VM. — format pve-vmid, min 100, max 999999999 |
vncticket | string | yes | Ticket from previous call to vncproxy. — ≤ 512 chars |