Create VM
Creates a virtual machine. if you do not have all of the privileges described as follows: - The resource Folder referenced by the attribute VM.InventoryPlacementSpec.folder requires VirtualMachine.Inventory.Create. - The resource ResourcePool referenced by the attribute VM.ComputePlacementSpec.resource-pool requires Resource.AssignVMToPool. - The resource Datastore referenced by the attribute VM.StoragePlacementSpec.datastore requires Datastore.AllocateSpace. - The resource Network referenced by the attribute Ethernet.BackingSpec.network requires Network.Assign.
Request
URLURL
Header Parameters
Header Parameters
Required session ID, acquired from Create Session API under CIS product
vmware-api-session-id example
"b00db39f948d13ea1e59b4d6fce56389"
Request Body
{
"guest_OS": "DOS",
"placement": {
"datastore": "string",
"folder": "string"
}
}
The GuestOS enumerated type defines the valid guest operating system types used for configuring a virtual machine.
DOS : MS-DOS.
WIN_31 : Windows 3.1
WIN_95 : Windows 95
WIN_98 : Windows 98
WIN_ME : Windows Millennium Edition
WIN_NT : Windows NT 4
WIN_2000_PRO : Windows 2000 Professional
WIN_2000_SERV : Windows 2000 Server
WIN_2000_ADV_SERV : Windows 2000 Advanced Server
WIN_XP_HOME : Windows XP Home Edition
WIN_XP_PRO : Windows XP Professional
WIN_XP_PRO_64 : Windows XP Professional Edition (64 bit)
WIN_NET_WEB : Windows Server 2003, Web Edition
WIN_NET_STANDARD : Windows Server 2003, Standard Edition
WIN_NET_ENTERPRISE : Windows Server 2003, Enterprise Edition
WIN_NET_DATACENTER : Windows Server 2003, Datacenter Edition
WIN_NET_BUSINESS : Windows Small Business Server 2003
WIN_NET_STANDARD_64 : Windows Server 2003, Standard Edition (64 bit)
WIN_NET_ENTERPRISE_64 : Windows Server 2003, Enterprise Edition (64 bit)
WIN_LONGHORN : Windows Longhorn
WIN_LONGHORN_64 : Windows Longhorn (64 bit)
WIN_NET_DATACENTER_64 : Windows Server 2003, Datacenter Edition (64 bit)
WIN_VISTA : Windows Vista
WIN_VISTA_64 : Windows Vista (64 bit)
WINDOWS_7 : Windows 7
WINDOWS_7_64 : Windows 7 (64 bit)
WINDOWS_7_SERVER_64 : Windows Server 2008 R2 (64 bit)
WINDOWS_8 : Windows 8
WINDOWS_8_64 : Windows 8 (64 bit)
WINDOWS_8_SERVER_64 : Windows 8 Server (64 bit)
WINDOWS_9 : Windows 10
WINDOWS_9_64 : Windows 10 (64 bit)
WINDOWS_9_SERVER_64 : Windows 10 Server (64 bit)
WINDOWS_11_64 : Windows 11 (64 bit)
WINDOWS_12_64 : Windows 12 (64 bit)
WINDOWS_HYPERV : Windows Hyper-V
WINDOWS_SERVER_2019 : Windows Server 2019
WINDOWS_SERVER_2021 : Windows Server 2022
WINDOWS_SERVER_2025 : Windows Server 2025
FREEBSD : FreeBSD 10 or earlier
FREEBSD_64 : FreeBSD 10 x64 or earlier
FREEBSD_11 : FreeBSD 11
FREEBSD_12 : FreeBSD 12
FREEBSD_13 : FreeBSD 13
FREEBSD_14 : FreeBSD 14 or later
FREEBSD_11_64 : FreeBSD 11 x64
FREEBSD_12_64 : FreeBSD 12 x64
FREEBSD_13_64 : FreeBSD 13 x64
FREEBSD_14_64 : FreeBSD 14 x64 or later
REDHAT : Red Hat Linux 2.1
RHEL_2 : Red Hat Enterprise Linux 2
RHEL_3 : Red Hat Enterprise Linux 3
RHEL_3_64 : Red Hat Enterprise Linux 3 (64 bit)
RHEL_4 : Red Hat Enterprise Linux 4
RHEL_4_64 : Red Hat Enterprise Linux 4 (64 bit)
RHEL_5 : Red Hat Enterprise Linux 5
RHEL_5_64 : Red Hat Enterprise Linux 5 (64 bit)
RHEL_6 : Red Hat Enterprise Linux 6
RHEL_6_64 : Red Hat Enterprise Linux 6 (64 bit)
RHEL_7 : Red Hat Enterprise Linux 7
RHEL_7_64 : Red Hat Enterprise Linux 7 (64 bit)
RHEL_8_64 : Red Hat Enterprise Linux 8 (64 bit)
RHEL_9_64 : Red Hat Enterprise Linux 9 (64 bit)
CENTOS : CentOS 4⁄5
CENTOS_64 : CentOS 4⁄5 (64-bit)
CENTOS_6 : CentOS 6
CENTOS_6_64 : CentOS 6 (64-bit)
CENTOS_7 : CentOS 7
CENTOS_7_64 : CentOS 7 (64-bit)
CENTOS_8_64 : CentOS 8 (64-bit)
CENTOS_9_64 : CentOS 9 (64-bit)
ORACLE_LINUX : Oracle Linux 4⁄5
ORACLE_LINUX_64 : Oracle Linux 4⁄5 (64-bit)
ORACLE_LINUX_6 : Oracle Linux 6
ORACLE_LINUX_6_64 : Oracle Linux 6 (64-bit)
ORACLE_LINUX_7 : Oracle Linux 7
ORACLE_LINUX_7_64 : Oracle Linux 7 (64-bit)
ORACLE_LINUX_8_64 : Oracle Linux 8 (64-bit)
ORACLE_LINUX_9_64 : Oracle Linux 9 (64-bit)
SUSE : Suse Linux
SUSE_64 : Suse Linux (64 bit)
SLES : Suse Linux Enterprise Server 9
SLES_64 : Suse Linux Enterprise Server 9 (64 bit)
SLES_10 : Suse linux Enterprise Server 10
SLES_10_64 : Suse Linux Enterprise Server 10 (64 bit)
SLES_11 : Suse linux Enterprise Server 11
SLES_11_64 : Suse Linux Enterprise Server 11 (64 bit)
SLES_12 : Suse linux Enterprise Server 12
SLES_12_64 : Suse Linux Enterprise Server 12 (64 bit)
SLES_15_64 : Suse Linux Enterprise Server 15 (64 bit)
SLES_16_64 : Suse Linux Enterprise Server 16 (64 bit)
NLD_9 : Novell Linux Desktop 9
OES : Open Enterprise Server
SJDS : Sun Java Desktop System
MANDRAKE : Mandrake Linux
MANDRIVA : Mandriva Linux
MANDRIVA_64 : Mandriva Linux (64 bit)
TURBO_LINUX : Turbolinux
TURBO_LINUX_64 : Turbolinux (64 bit)
UBUNTU : Ubuntu Linux
UBUNTU_64 : Ubuntu Linux (64 bit)
DEBIAN_4 : Debian GNU/Linux 4
DEBIAN_4_64 : Debian GNU/Linux 4 (64 bit)
DEBIAN_5 : Debian GNU/Linux 5
DEBIAN_5_64 : Debian GNU/Linux 5 (64 bit)
DEBIAN_6 : Debian GNU/Linux 6
DEBIAN_6_64 : Debian GNU/Linux 6 (64 bit)
DEBIAN_7 : Debian GNU/Linux 7
DEBIAN_7_64 : Debian GNU/Linux 7 (64 bit)
DEBIAN_8 : Debian GNU/Linux 8
DEBIAN_8_64 : Debian GNU/Linux 8 (64 bit)
DEBIAN_9 : Debian GNU/Linux 9
DEBIAN_9_64 : Debian GNU/Linux 9 (64 bit)
DEBIAN_10 : Debian GNU/Linux 10
DEBIAN_10_64 : Debian GNU/Linux 10 (64 bit)
DEBIAN_11 : Debian GNU/Linux 11
DEBIAN_11_64 : Debian GNU/Linux 11 (64 bit)
DEBIAN_12 : Debian GNU/Linux 12
DEBIAN_12_64 : Debian GNU/Linux 12 (64 bit)
ASIANUX_3 : Asianux Server 3
ASIANUX_3_64 : Asianux Server 3 (64 bit)
ASIANUX_4 : Asianux Server 4
ASIANUX_4_64 : Asianux Server 4 (64 bit)
ASIANUX_5_64 : Asianux Server 5 (64 bit)
ASIANUX_7_64 : Asianux Server 7 (64 bit)
ASIANUX_8_64 : Asianux Server 8 (64 bit)
ASIANUX_9_64 : Asianux Server 9 (64 bit)
OPENSUSE : OpenSUSE Linux
OPENSUSE_64 : OpenSUSE Linux (64 bit)
FEDORA : Fedora Linux
FEDORA_64 : Fedora Linux (64 bit)
COREOS_64 : CoreOS Linux (64 bit)
VMWARE_PHOTON_64 : VMware Photon (64 bit)
OTHER_24X_LINUX : Linux 2.4x Kernel
OTHER_24X_LINUX_64 : Linux 2.4x Kernel (64 bit)
OTHER_26X_LINUX : Linux 2.6x Kernel
OTHER_26X_LINUX_64 : Linux 2.6x Kernel (64 bit)
OTHER_3X_LINUX : Linux 3.x Kernel
OTHER_3X_LINUX_64 : Linux 3.x Kernel (64 bit)
OTHER_4X_LINUX : Linux 4.x Kernel
OTHER_4X_LINUX_64 : Linux 4.x Kernel (64 bit)
OTHER_5X_LINUX : Linux 5.x Kernel
OTHER_5X_LINUX_64 : Linux 5.x Kernel (64 bit)
OTHER_6X_LINUX : Linux 6.x Kernel
OTHER_6X_LINUX_64 : Linux 6.x Kernel (64 bit)
OTHER_LINUX : Linux 2.2x Kernel
GENERIC_LINUX : Other Linux
OTHER_LINUX_64 : Linux (64 bit)
SOLARIS_6 : Solaris 6
SOLARIS_7 : Solaris 7
SOLARIS_8 : Solaris 8
SOLARIS_9 : Solaris 9
SOLARIS_10 : Solaris 10 (32 bit)
SOLARIS_10_64 : Solaris 10 (64 bit)
SOLARIS_11_64 : Solaris 11 (64 bit)
OS2 : OS/2
ECOMSTATION : eComStation 1.x
ECOMSTATION_2 : eComStation 2.0
NETWARE_4 : Novell NetWare 4
NETWARE_5 : Novell NetWare 5.1
NETWARE_6 : Novell NetWare 6.x
OPENSERVER_5 : SCO OpenServer 5
OPENSERVER_6 : SCO OpenServer 6
UNIXWARE_7 : SCO UnixWare 7
DARWIN : Mac OS 10.5
DARWIN_64 : Mac OS 10.5 (64 bit)
DARWIN_10 : Mac OS 10.6
DARWIN_10_64 : Mac OS 10.6 (64 bit)
DARWIN_11 : Mac OS 10.7
DARWIN_11_64 : Mac OS 10.7 (64 bit)
DARWIN_12_64 : Mac OS 10.8 (64 bit)
DARWIN_13_64 : Mac OS 10.9 (64 bit)
DARWIN_14_64 : Mac OS 10.10 (64 bit)
DARWIN_15_64 : Mac OS 10.11 (64 bit)
DARWIN_16_64 : Mac OS 10.12 (64 bit)
DARWIN_17_64 : Mac OS 10.13 (64 bit)
DARWIN_18_64 : Mac OS 10.14 (64 bit)
DARWIN_19_64 : Mac OS 10.15 (64 bit)
DARWIN_20_64 : Mac OS 11 (64 bit)
DARWIN_21_64 : Mac OS 12 (64 bit)
DARWIN_22_64 : Mac OS 13 (64 bit)
DARWIN_23_64 : Mac OS 14 (64 bit)
VMKERNEL : VMware ESX 4
VMKERNEL_5 : VMware ESX 5
VMKERNEL_6 : VMware ESX 6
VMKERNEL_65 : VMware ESXi 6.5 AND ESXi 6.7.
VMKERNEL_7 : VMware ESX 7
VMKERNEL_8 : VMware ESX 8
AMAZONLINUX2_64 : Amazon Linux 2 (64 bit)
AMAZONLINUX3_64 : Amazon Linux 3 (64 bit)
CRXPOD_1 : CRX Pod 1
ROCKYLINUX_64 : Rocky Linux (64-bit)
ALMALINUX_64 : AlmaLinux (64-bit)
OTHER : Other Operating System
OTHER_64 : Other Operating System (64 bit)
Possible values are: DOS , WIN_31 , WIN_95 , WIN_98 , WIN_ME , more...
Virtual machine placement information. This field is currently required. In the future, if this field is unset, the system will attempt to choose suitable resources on which to place the virtual machine.
Boot configuration. If unset, guest-specific default values will be used.
CPU configuration. If unset, guest-specific default values will be used.
List of disks. If unset, a single blank virtual disk of a guest-specific size will be created on the same storage as the virtual machine configuration, and will use a guest-specific host bus adapter type. If the guest-specific size is 0, no virtual disk will be created.
List of floppy drives. If unset, no floppy drives will be created.
List of CD-ROMs. If unset, no CD-ROM devices will be created.
The Hardware.Version enumerated type defines the valid virtual hardware versions for a virtual machine. See https://kb.vmware.com/s/article/1003746 (Virtual machine hardware versions (1003746)).
VMX_03 : Hardware version 3, first supported in ESXi 2.5.
VMX_04 : Hardware version 4, first supported in ESXi 3.0.
VMX_06 : Hardware version 6, first supported in WS 6.0.
VMX_07 : Hardware version 7, first supported in ESXi 4.0.
VMX_08 : Hardware version 8, first supported in ESXi 5.0.
VMX_09 : Hardware version 9, first supported in ESXi 5.1.
VMX_10 : Hardware version 10, first supported in ESXi 5.5.
VMX_11 : Hardware version 11, first supported in ESXi 6.0.
VMX_12 : Hardware version 12, first supported in Workstation 12.0.
VMX_13 : Hardware version 13, first supported in ESXi 6.5.
VMX_14 : Hardware version 14, first supported in ESXi 6.7.
VMX_15 : Hardware version 15, first supported in ESXi 6.7 Update 2.
VMX_16 : Hardware version 16, first supported in Workstation 15.0.
VMX_17 : Hardware version 17, first supported in ESXi 7.0.0-0.
VMX_18 : Hardware version 18, first supported in ESXi 7.0 U1.
VMX_19 : Hardware version 19, first supported in ESXi 7.0 U2.
VMX_20 : Hardware version 20, first supported in ESXi 8.0.0.1.
Possible values are: VMX_03 , VMX_04 , VMX_06 , VMX_07 , VMX_08 , more...
Memory configuration. If unset, guest-specific default values will be used.
Virtual machine name. If unset, a default name will be generated by the server.
List of Ethernet adapters. If unset, no Ethernet adapters will be created.
List of NVMe adapters. If unset, any adapters necessary to connect the virtual machine’s storage devices will be created; this includes any devices that explicitly specify a NVMe host bus adapter, as well as any devices that do not specify a host bus adapter if the guest’s preferred adapter type is NVMe.
List of parallel ports. If unset, no parallel ports will be created.
Boot device configuration. If unset, a server-specific boot sequence will be used.
List of SATA adapters. If unset, any adapters necessary to connect the virtual machine’s storage devices will be created; this includes any devices that explicitly specify a SATA host bus adapter, as well as any devices that do not specify a host bus adapter if the guest’s preferred adapter type is SATA.
List of SCSI adapters. If unset, any adapters necessary to connect the virtual machine’s storage devices will be created; this includes any devices that explicitly specify a SCSI host bus adapter, as well as any devices that do not specify a host bus adapter if the guest’s preferred adapter type is SCSI. The type of the SCSI adapter will be a guest-specific default type.
List of serial ports. If unset, no serial ports will be created.
The VM.StoragePolicySpec structure contains information about the storage policy that is to be associated with the virtual machine home (which contains the configuration and log files). If unset the datastore default storage policy (if applicable) is applied. Currently a default storage policy is only supported by object datastores : VVol and vSAN. For non-object datastores, if unset then no storage policy would be associated with the virtual machine home.
Authentication
Response
Response BodyResponse Body
ID of newly-created virtual machine. The result will be an identifier for the resource type: VirtualMachine.
Errors
com.vmware.vapi.std.errors.already_exists : if a virtual machine with the specified name already exists. | com.vmware.vapi.std.errors.invalid_argument : if any of the specified parameters are invalid. | com.vmware.vapi.std.errors.resource_in_use : if any of the specified storage addresses (eg. IDE, SATA, SCSI, NVMe) result in a storage address conflict. | com.vmware.vapi.std.errors.unsupported : if VM.CreateSpec.guest-os is not supported for the requested virtual hardware version and spec includes unset fields that default to guest-specific values.
com.vmware.vapi.std.errors.unauthorized : if the user doesn’t have the required privileges.
com.vmware.vapi.std.errors.not_found : if any of the resources specified in spec could not be found
com.vmware.vapi.std.errors.error : if the system reports an error while responding to the request. | com.vmware.vapi.std.errors.resource_inaccessible : if a specified resource (eg. host) is not accessible. | com.vmware.vapi.std.errors.unable_to_allocate_resource : if any of the resources needed to create the virtual machine could not be allocated.
com.vmware.vapi.std.errors.service_unavailable : if the system is unable to communicate with a service to complete the request.
‘Default’ means this response is used for all HTTP codes that are not covered individually for this operation.
Code Samples
PowerCLI Client SDK Example
PowerCLI Client SDK All Parameters Example
cURL Command
Vendor Extensions
x-vmw-doc-deprecated-method: post
x-vmw-doc-deprecated-path: /rest/vcenter/vm
x-vmw-doc-operation: create