Skip to content
Get started

Create empty volume

client.volumes.create(VolumeCreateParams { name, size_gb, id } body, RequestOptionsoptions?): Volume { id, created_at, name, 2 more }
post/volumes

Creates a new empty volume of the specified size.

ParametersExpand Collapse
body: VolumeCreateParams { name, size_gb, id }
name: string

Volume name

size_gb: number

Size in gigabytes

id?: string

Optional custom identifier (auto-generated if not provided)

ReturnsExpand Collapse
Volume { id, created_at, name, 2 more }
id: string

Unique identifier

created_at: string

Creation timestamp (RFC3339)

formatdate-time
name: string

Volume name

size_gb: number

Size in gigabytes

attachments?: Array<VolumeAttachment { instance_id, mount_path, readonly } >

List of current attachments (empty if not attached)

instance_id: string

ID of the instance this volume is attached to

mount_path: string

Mount path in the guest

readonly: boolean

Whether the attachment is read-only

Create empty volume
import Hypeman from '@onkernel/hypeman';

const client = new Hypeman({
  apiKey: 'My API Key',
});

const volume = await client.volumes.create({ name: 'my-data-volume', size_gb: 10 });

console.log(volume.id);
{
  "id": "vol-data-1",
  "created_at": "2025-01-15T09:00:00Z",
  "name": "my-data-volume",
  "size_gb": 10,
  "attachments": [
    {
      "instance_id": "inst-abc123",
      "mount_path": "/mnt/data",
      "readonly": false
    }
  ]
}
Returns Examples
{
  "id": "vol-data-1",
  "created_at": "2025-01-15T09:00:00Z",
  "name": "my-data-volume",
  "size_gb": 10,
  "attachments": [
    {
      "instance_id": "inst-abc123",
      "mount_path": "/mnt/data",
      "readonly": false
    }
  ]
}