Skip to content
Docs

    Create VM

    POST/v1/compute/vms

    Create a VM

    Body ParametersJSONExpand Collapse
    boot_volume: object { size, type, tags }

    Boot volume for the VM.

    size: number

    Size of the Volume in GB.

    Type of the Volume.

    One of the following:
    "nvme"
    "abs"
    tags: optional array of string

    Tags to attach to the Volume.

    instance_type: string

    Instance type name.

    name: string

    Name of the VM.

    os_image_name: string

    Name of the OS Image to use for the VM.

    project_id: string

    Project ID to create the VM in.

    public_ip_enabled: boolean

    Whether to enable public IP for the VM.

    region: RegionName

    Region the resource is in.

    ssh_key: SSHKeyRequest { public_key }

    Public SSH key configuration for the VM.

    public_key: string

    Public key to and use to access the VM.

    subnet_id: string

    ID of the subnet to use for the VM.

    data_volumes: optional array of object { name, size, type, tags }

    Data volumes for the VM.

    name: string

    Name of the Volume.

    size: number

    Size of the Volume in GB.

    Type of the Volume.

    One of the following:
    "nvme"
    "abs"
    tags: optional array of string

    Tags to attach to the Volume.

    tags: optional array of string

    Tags to attach to the VM.

    ReturnsExpand Collapse
    Operation object { id, created_at, details, 6 more }

    Operation details.

    id: string

    Unique identifier for the Operation.

    created_at: string

    When the Operation was created.

    formatdate-time
    details: OperationDetails { changes }

    Structured details about what an operation is changing.

    changes: OperationChanges { from, to }

    Map of changed field names to their from/to diffs. Keys depend on the parent operation’s kind+type.

    from: string or number or boolean or array of string

    Previous value.

    One of the following:
    string
    number
    boolean
    array of string
    to: string or number or boolean or array of string

    New value.

    One of the following:
    string
    number
    boolean
    array of string

    Kind of Operation.

    One of the following:
    "vm"
    "volume"
    "vpc"
    "firewall_rule"
    "nks_cluster"
    "nks_node_pool"
    project_id: string

    Project ID the Operation belongs to.

    resource_id: string

    ID of the resource that the Operation is acting on.

    Status of the Operation.

    One of the following:
    "pending"
    "running"
    "done"
    "failed"
    "unknown"

    Type of Operation.

    One of the following:
    "create"
    "update"
    "delete"
    "restart"
    updated_at: string

    When the Operation was updated.

    formatdate-time

    Create VM

    curl https://api.nirvanalabs.io/v1/compute/vms \
        -H 'Content-Type: application/json' \
        -H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \
        -d '{
              "boot_volume": {
                "size": 100,
                "type": "abs"
              },
              "instance_type": "n1-standard-8",
              "name": "my-vm",
              "os_image_name": "ubuntu-noble-2026-05-18",
              "project_id": "123e4567-e89b-12d3-a456-426614174000",
              "public_ip_enabled": true,
              "region": "us-sva-2",
              "ssh_key": {
                "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBIASkmwNiLcdlW6927Zjt1Hf7Kw/PpEZ4Zm+wU9wn2"
              },
              "subnet_id": "123e4567-e89b-12d3-a456-426614174000",
              "tags": [
                "production",
                "ethereum"
              ]
            }'
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "details": {
        "changes": {
          "foo": {
            "from": "string",
            "to": "string"
          }
        }
      },
      "kind": "vm",
      "project_id": "123e4567-e89b-12d3-a456-426614174000",
      "resource_id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "pending",
      "type": "create",
      "updated_at": "2025-01-01T00:00:00Z"
    }
    Returns Examples
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "created_at": "2025-01-01T00:00:00Z",
      "details": {
        "changes": {
          "foo": {
            "from": "string",
            "to": "string"
          }
        }
      },
      "kind": "vm",
      "project_id": "123e4567-e89b-12d3-a456-426614174000",
      "resource_id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "pending",
      "type": "create",
      "updated_at": "2025-01-01T00:00:00Z"
    }