v32

latestOpenAPI 3.1.0raw.githubusercontent.com2026-05-151,1412,2144.5 MB
Bare Metal

Create bare metal server

Create a new bare metal server with the specified configuration.

How to get access:

For Linux,

  • Use the user_data field to provide a cloud-init script in base64 to apply configurations to the instance.
  • Specify the username and password to create a new user.
  • When only password is provided, it is set as the password for the default user of the image.
  • The user_data is ignored when the password is specified.

For Windows,

  • Use the user_data field to provide a cloudbase-init script in base64 to create new users on Windows.
  • Use the password field to set the password for the 'Admin' user on Windows.
  • The password of the Admin user cannot be updated via user_data.
  • The username cannot be specified in the request.
post/cloud/v1/bminstances/{project_id}/{region_id}

Path parameters

project_idinteger required

Project ID

Example:1

Project ID

region_idinteger required

Region ID

Example:1

Region ID

Request body

app_configobject nullable

Parameters for the application template if creating the instance from an apptemplate.

apptemplate_idstring

Apptemplate ID. Either image_id or apptemplate_id is required.

flavorstring required

The flavor of the instance.

image_idstring uuid4

Image ID. Either image_id or apptemplate_id is required.

namestring

Server name.

name_templatestring

If you want server names to be automatically generated based on IP addresses, you can provide a name template instead of specifying the name manually. The template should include a placeholder that will be replaced during provisioning. Supported placeholders are: {ip_octets} (last 3 octets of the IP), {two_ip_octets}, and {one_ip_octet}.

passwordstring

For Linux instances, 'username' and 'password' are used to create a new user. When only 'password' is provided, it is set as the password for the default user of the image. For Windows instances, 'username' cannot be specified. Use the 'password' field to set the password for the 'Admin' user on Windows. Use the 'user_data' field to provide a script to create new users on Windows. The password of the Admin user cannot be updated via 'user_data'.

ssh_key_namestring nullable

Specifies the name of the SSH keypair, created via the /v1/ssh_keys endpoint.

tagsCreateTagsSerializer

A tag is a key-value pair that can be associated with a resource, enabling efficient filtering and grouping for better organization and management. Some tags are read-only and cannot be modified by the user. Tags are also integrated with cost reports, allowing cost data to be filtered based on tag keys or values.

user_datastring

String in base64 format. For Linux instances, 'user_data' is ignored when 'password' field is provided. For Windows instances, Admin user password is set by 'password' field and cannot be updated via 'user_data'. Examples of the user_data: https://cloudinit.readthedocs.io/en/latest/topics/examples.html

usernamestring

For Linux instances, 'username' and 'password' are used to create a new user. For Windows instances, 'username' cannot be specified. Use 'password' field to set the password for the 'Admin' user on Windows.

Example request

{
  "flavor": "bm2-hf-medium",
  "image_id": "b5b4d65d-945f-4b98-ab6f-332319c724ef",
  "interfaces": [
    {
      "type": "external"
    }
  ],
  "name": "my-bare-metal",
  "ssh_key_name": "my-ssh-key"
}

Response

OK

tasksstring[] required

List of task IDs representing asynchronous operations. Use these IDs to monitor operation progress:

  • GET /v1/tasks/{task_id} - Check individual task status and details Poll task status until completion (FINISHED/ERROR) before proceeding with dependent operations.
idstring required

Example response

{
  "tasks": [
    "d478ae29-dedc-4869-82f0-96104425f565"
  ]
}