Virtual machines

Explore this section for comprehensive information on endpoints related to the deployment, management, and operation of virtual machines within our cloud software API environment.

Get a list of virtual machines

get
Query parameters
ClusterstringOptional
Responses
200

Success

get
/api/v1/servers/virtual/GetServers
GET /api/v1/servers/virtual/GetServers HTTP/1.1
Host: 
Accept: */*
{
  "items": [
    {
      "username": "[email protected]",
      "tenancy_name": "denvr",
      "rpool": "on-demand",
      "directAttachedStoragePersisted": true,
      "id": "my-denvr-vm",
      "namespace": "text",
      "configuration": "15",
      "storage": 13600,
      "gpu_type": "nvidia.com/A100PCIE40GB",
      "gpus": 8,
      "vcpus": 120,
      "memory": 940,
      "ip": "123.45.67.89",
      "privateIp": "120.77.3.21",
      "image": "Ubuntu_22.04.4_LTS",
      "cluster": "Msc1",
      "status": "ONLINE",
      "storageType": "text",
      "rootDiskSize": "text",
      "lastUpdated": "2025-10-23T16:34:04.312Z"
    }
  ]
}

Get detailed information about a specific virtual machine

get
Query parameters
IdstringRequired

The virtual machine id

Example: vm-2024093009357617
NamespacestringRequired

The namespace/vpc where the virtual machine lives. Default one is same as tenant name.

Example: denvr
ClusterstringRequired

The cluster you're operating on

Example: Hou1
Responses
200

Success

get
/api/v1/servers/virtual/GetServer
GET /api/v1/servers/virtual/GetServer?Id=vm-2024093009357617&Namespace=denvr&Cluster=Hou1 HTTP/1.1
Host: 
Accept: */*
{
  "username": "[email protected]",
  "tenancy_name": "denvr",
  "rpool": "on-demand",
  "directAttachedStoragePersisted": true,
  "id": "my-denvr-vm",
  "namespace": "text",
  "configuration": "15",
  "storage": 13600,
  "gpu_type": "nvidia.com/A100PCIE40GB",
  "gpus": 8,
  "vcpus": 120,
  "memory": 940,
  "ip": "123.45.67.89",
  "privateIp": "120.77.3.21",
  "image": "Ubuntu_22.04.4_LTS",
  "cluster": "Msc1",
  "status": "ONLINE",
  "storageType": "text",
  "rootDiskSize": "text",
  "lastUpdated": "2025-10-23T16:34:04.312Z"
}

Create a new virtual machine using a pre-defined configuration

post
Body
namestring | nullableOptional

Name of virtual server to be created. If not provided, name will be auto-generated.

Example: my-denvr-vm
rpoolstring | nullableOptional

Name of the pool to be used. If not provided, first pool assigned to a tenant will be used. In case of no pool assigned, 'on-demand' will be used.

Example: reserved-denvr
vpcstring · min: 1Required

Name of the VPC to be used. Usually this will match the tenant name.

Example: denvr
configurationstring · min: 1Required

Name of the configuration to be used. For possible values, refer to the otput of api/v1/servers/virtual/GetConfigurations, field 'name' DenvrDashboard.Servers.Dtos.ServerConfiguration.Name

Example: A100_40GB_PCIe_1x
clusterstring · min: 1Required

Cluster to be used. For possible values, refer to the otput of api/v1/clusters/GetAll"/>

Example: Hou1
ssh_keysstring[] · min: 1Required
snapshotNamestring | nullableOptional

Snapshot name.

operatingSystemImagestring | nullableOptional

Name of the Operating System image to be used.

Example: Ubuntu 22.04.4 LTS
personalStorageMountPathstring | nullableOptional

Personal storage file system mount path.

Example: /home/ubuntu/personal
tenantSharedAdditionalStoragestring | nullableOptional

Tenant shared storage file system mount path.

Example: /home/ubuntu/tenant-shared
persistStoragebooleanOptional

Whether direct attached storage should be persistant or ephemeral.

directStorageMountPathstring | nullableOptional

Direct attached storage mount path.

Example: /home/ubuntu/direct-attached
rootDiskSizeinteger · int32Optional

Size of root disk to be created (Gi).

Example: 500
Responses
202

Accepted

post
/api/v1/servers/virtual/CreateServer
POST /api/v1/servers/virtual/CreateServer HTTP/1.1
Host: 
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 409

{
  "name": "my-denvr-vm",
  "rpool": "reserved-denvr",
  "vpc": "denvr",
  "configuration": "A100_40GB_PCIe_1x",
  "cluster": "Hou1",
  "ssh_keys": [
    "text"
  ],
  "snapshotName": "text",
  "operatingSystemImage": "Ubuntu 22.04.4 LTS",
  "personalStorageMountPath": "/home/ubuntu/personal",
  "tenantSharedAdditionalStorage": "/home/ubuntu/tenant-shared",
  "persistStorage": true,
  "directStorageMountPath": "/home/ubuntu/direct-attached",
  "rootDiskSize": 500
}
{
  "username": "[email protected]",
  "tenancy_name": "denvr",
  "rpool": "on-demand",
  "directAttachedStoragePersisted": true,
  "id": "my-denvr-vm",
  "namespace": "text",
  "configuration": "15",
  "storage": 13600,
  "gpu_type": "nvidia.com/A100PCIE40GB",
  "gpus": 8,
  "vcpus": 120,
  "memory": 940,
  "ip": "123.45.67.89",
  "privateIp": "120.77.3.21",
  "image": "Ubuntu_22.04.4_LTS",
  "cluster": "Msc1",
  "status": "ONLINE",
  "storageType": "text",
  "rootDiskSize": "text",
  "lastUpdated": "2025-10-23T16:34:04.312Z"
}

Start a virtual machine that has been previously set up and provisioned, but is currently OFFLINE

post
Body
idstring · min: 1Required

The virtual machine id

Example: vm-2024093009357617
namespacestring · min: 1Required

The namespace/vpc where the virtual machine lives. Default one is same as tenant name.

Example: denvr
clusterstring · min: 1Required

The cluster you're operating on

Example: Hou1
Responses
202

Accepted

post
/api/v1/servers/virtual/StartServer
POST /api/v1/servers/virtual/StartServer HTTP/1.1
Host: 
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 65

{
  "id": "vm-2024093009357617",
  "namespace": "denvr",
  "cluster": "Hou1"
}
{
  "id": "text",
  "cluster": "text",
  "status": "text"
}

Stop a virtual machine, ensuring a secure and orderly shutdown of its operations within the cloud environment

post
Body
idstring · min: 1Required

The virtual machine id

Example: vm-2024093009357617
namespacestring · min: 1Required

The namespace/vpc where the virtual machine lives. Default one is same as tenant name.

Example: denvr
clusterstring · min: 1Required

The cluster you're operating on

Example: Hou1
Responses
202

Accepted

post
/api/v1/servers/virtual/StopServer
POST /api/v1/servers/virtual/StopServer HTTP/1.1
Host: 
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 65

{
  "id": "vm-2024093009357617",
  "namespace": "denvr",
  "cluster": "Hou1"
}
{
  "id": "text",
  "cluster": "text",
  "status": "text"
}

Permanently delete a specified virtual machine, effectively wiping all its data and freeing up resources for other uses

delete
Query parameters
DeleteSnapshotsbooleanOptional

Should also delete snapshots with virtual machine.

IdstringRequired

The virtual machine id

Example: vm-2024093009357617
NamespacestringRequired

The namespace/vpc where the virtual machine lives. Default one is same as tenant name.

Example: denvr
ClusterstringRequired

The cluster you're operating on

Example: Hou1
Responses
202

Accepted

delete
/api/v1/servers/virtual/DestroyServer
DELETE /api/v1/servers/virtual/DestroyServer?Id=vm-2024093009357617&Namespace=denvr&Cluster=Hou1 HTTP/1.1
Host: 
Accept: */*
{
  "id": "text",
  "cluster": "text",
  "status": "text"
}

Get detailed information on available configurations for virtual machines

get
Responses
200

Success

get
/api/v1/servers/virtual/GetConfigurations
GET /api/v1/servers/virtual/GetConfigurations HTTP/1.1
Host: 
Accept: */*
{
  "items": [
    {
      "id": 1,
      "user_friendly_name": "text",
      "name": "text",
      "description": "text",
      "storage": 1,
      "type": "text",
      "brand_family": "text",
      "brand": "text",
      "text_name": "text",
      "gpus": 1,
      "vcpus": 1,
      "memory": 1,
      "price": 1,
      "compute_network": "text",
      "is_gpu_platform": true,
      "clusters": [
        "text"
      ]
    }
  ]
}

Get information about the current availability of different virtual machine configurations

get
Query parameters
clusterstringRequiredExample: Hou1
resourcePoolstringOptionalExample: reserved-denvr
reportNodesbooleanOptional

controls if Count and MaxCount is calculated and returned in the response. If they are not needed, use 'false' to improve response time of the endpoint.

Default: true
Responses
200

Success

get
/api/v1/servers/virtual/GetAvailability
GET /api/v1/servers/virtual/GetAvailability?cluster=text HTTP/1.1
Host: 
Accept: */*
{
  "items": [
    {
      "configuration": "text",
      "cluster": "text",
      "rpool": "text",
      "price": 1,
      "available": true,
      "count": 1,
      "maxCount": 1
    }
  ]
}

Get boot logs for a specific virtual machine

get
Query parameters
IdstringRequired

The virtual machine id

Example: vm-2024093009357617
NamespacestringRequired

The namespace/vpc where the virtual machine lives. Default one is same as tenant name.

Example: denvr
ClusterstringRequired

The cluster you're operating on

Example: Hou1
Limitinteger · int32 · min: 1 · max: 10000Required

The maximum number of log entries to return. Defaults to 2000.

Example: 2000
Responses
200

Success

get
/api/v1/servers/virtual/GetVirtualMachineBootLogs
GET /api/v1/servers/virtual/GetVirtualMachineBootLogs?Id=vm-2024093009357617&Namespace=denvr&Cluster=Hou1&Limit=2000 HTTP/1.1
Host: 
Accept: */*
{
  "id": "text",
  "namespace": "text",
  "cluster": "text",
  "bootLogs": "text"
}

Last updated