Create Virtual Machine Instances
Provision new virtual machine instances with custom specifications and configurations defined in the request parameters.
HTTP Request
POST
{API_URL}virtual-machines
Body Parameters
Parameter | Requirement | Type | Description |
---|---|---|---|
name | Required | string | Instance identifier for the deployed virtual machine |
image_id | Required | string | Operating system image identifier. Available images can be retrieved via the /images endpoint |
flavor_id | Required | string | Hardware configuration identifier specifying CPU, memory, GPU, storage, and network specifications. Available configurations can be retrieved via the /flavors endpoint |
ssh_key | Required | Object | SSH authentication credentials for secure instance access. Format: {"name":"key_identifier","public_key":"ssh-ed25519 AAAA..."} |
init_script | Optional | string | Initialization script for automated instance configuration |
NOTE
Region compatibility is required between image_id
and flavor_id
to ensure successful instance creation.
Initialization Script Example
The init_script
parameter accepts cloud-init configuration for automated instance setup. Example configuration for Docker and NVIDIA GPU support:
bash
#!/bin/bash
# Update package repository
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
# Configure Docker repository
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --yes --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add Docker repository
echo \
"deb [arch=\"$(dpkg --print-architecture)\" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
\"$(. /etc/os-release && echo \"$VERSION_CODENAME\")\" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker and NVIDIA components
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker ubuntu
sudo apt-get install nvidia-container-toolkit -y
# Configure NVIDIA runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
Response Structure
status boolean
Operation result indicator. Returns true
for successful execution, false
when encountering an error.
message string
Descriptive response indicating the outcome of the instance creation request.
data object
Contains instance details including:
name
: Assigned instance identifierid
: Unique instance identifier
For comprehensive documentation of instance attributes, please refer to our Instance Object Documentation.
Implementation Example
Request
bash
curl -X POST '{API_URL}virtual-machines' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'refresh-token: {REFRESH_TOKEN}' \
-H 'Content-Type: application/json' \
-d '{
"name": "rtx4090vm",
"image_id": "66b2d63c9e793247704c5a01",
"flavor_id": "66b9ca8f6523790d00fea3ca",
"ssh_key": {
"name": "sshkey",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGBtAhxR75dYv1t3NuQ4lUVNKGVwf4Y/GEXCz4AZIR6 sshusername"
}
}'
Response
json
{
"status": true,
"message": "Virtual machine provisioning initiated successfully",
"data": {
"name": "VM-dhSqfrqh",
"id": "676cf147e39574b1e3149831"
}
}