Logo
OpenScaler

Create a New VM

POST
/v1/vms

Create a virtual machine with the given parameters.

The request waits until the VM is ready, then returns the VM as JSON.

Progress is a separate Server-Sent Events stream. Subscribe with the same sequence_id from this request body at GET /v1/events/create-vm/{sequence_id}.

Authorization

bearer_auth
AuthorizationBearer <token>

OAuth Authentication

OpenScaler API uses OAuth, a standard for secure authorization. To access the API, obtain a token via the OpenScaler Platform.

Use the access_token in the Authorization header for requests:

Authorization: Bearer <token>

Always keep your token secure and do not share it with anyone.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Create a VM using a predefined size flavor.

Response Body

application/json

application/json

text/pain

application/json

application/json

curl -X POST "https://example.com/v1/vms" \  -H "Content-Type: application/json" \  -d '{    "size": "b-1-500mb-10",    "project_id": "default",    "name": "my-example-computer",    "sequence_id": 123456,    "description": "My example computer (generated from API)",    "region": "alg1",    "distro": "debian-13",    "ssh_key_ids": [      "key_abc123"    ],    "password": "strong_password",    "allow_root_ssh_password_access": false,    "cloud_init_user_data": "",    "attached_disks": [      {        "sizeGB": 5      }    ]  }'
{  "id": "cc3ccab2-0ae2-11ef-9136-6a0922f6458b",  "name": "my-example-computer",  "user_id": "7247ba6a-b17d-4c72-94f1-a36108aee56d",  "project_id": "default",  "uuid": "cc8b9d3c-fe4d-11ee-91c9-6aca7850c3b4",  "region": "alg1",  "description": "My example computer (generated from API)",  "distro": "debian-13",  "size": "b-1-500mb-10",  "memoryMB": 1024,  "vcpus": 1,  "storageGB": 161061273600,  "transferGB": 1000,  "vpc_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",  "node_type": "VM",  "created_at": "2024-04-19T13:07:39",  "updated_at": "2024-04-19T13:07:39"}
{  "errors": [    {      "message": "'vcpus' field must be an integer",      "field": "resource_id"    }  ]}
"Access denied"
{  "errors": [    {      "message": "User not initialized (missing required fields in token), please init user by sending POST request to `/v1/init` then refresh your token\n"    }  ]}
{  "errors": [    {      "message": "VM with ID 23 not found"    }  ]}