Virtual Machines API
Create and manage VMs, power state, resizing, and snapshots.
The VM API covers the full machine lifecycle. Create operations are asynchronous and return a task; all endpoints require a bearer token.
GET
/v1/vmsList virtual machines. Filter with ?resource_group=, ?status=, or ?tag=.
Response
{
"vms": [
{
"id": "vm-0a3f8b2c",
"name": "web-01",
"status": "running",
"vcpus": 2,
"memory_gb": 4,
"image": "ubuntu-24.04",
"subnet_id": "subnet-a1b2c3",
"private_ip": "10.0.1.15",
"elastic_ip": "41.210.55.12",
"resource_group": "production",
"created_at": "2026-06-01T10:30:00Z"
}
],
"total": 1, "page": 1
}POST
/v1/vmsCreate a virtual machine. Returns a provisioning task.
Request Body
{
"name": "app-01",
"vcpus": 4,
"memory_gb": 8,
"image": "ubuntu-24.04",
"system_disk_gb": 40,
"data_disks": [{"size_gb": 200, "tier": "performance"}],
"subnet_id": "subnet-a1b2c3",
"security_group_ids": ["sg-app"],
"ssh_key_ids": ["key-9f21"],
"tags": {"environment": "prod", "role": "app"}
}Response
{
"id": "vm-1b4c9d0e",
"status": "provisioning",
"task_id": "task-88a1"
}POST
/v1/vms/{id}/powerChange power state.
Request Body
{
"action": "shutdown" // start | shutdown | poweroff | restart
}Response
{
"task_id": "task-90b2"
}POST
/v1/vms/{id}/resizeChange vCPU/memory. Hot-add applies without reboot when the guest OS supports it.
Request Body
{
"vcpus": 8,
"memory_gb": 16,
"hot_add": true
}Response
{
"task_id": "task-91c3"
}POST
/v1/vms/{id}/snapshotsTake a snapshot of the VM.
Request Body
{
"name": "pre-upgrade",
"include_memory": false
}Response
{
"snapshot_id": "snap-3e8f",
"task_id": "task-92d4"
}DELETE
/v1/vms/{id}Delete a VM. Attached data disks are kept unless ?delete_disks=true.
Response
{
"task_id": "task-93e5"
}