---
title: "Create a bare metal rental"
method: POST
path: "/v2/alpha/on-demand/bare-metal-rentals"
---

# Create a bare metal rental

`POST /v2/alpha/on-demand/bare-metal-rentals`

Create a bare metal rental

## Request body

- object
  - `networkType` 'infiniband' | 'ethernet', required
  - `gpuCount` number, required
  - `storageVolume` union
    - object
      - `isNew` false, required
      - `id` integer, required
    - object
      - `isNew` true, required
      - `label` string, required
      - `sizeInGb` integer, required
  - `region` 'us-central-1' | 'uk-central-3' | 'uk-southeast-3' | 'eu-southwest-3' | 'eu-southwest-3-1' | 'eu-west-3' | 'eu-west-4'
  - `gpuType` 'h100' | 'h200' | 'b200'
  - `cudaVersion` 'cuda12.8' | 'cuda12.9'
  - `label` string
  - `termType` 'on-demand' | 'reserved'
  - `discountPercentage` number
  - `termPeriodDays` number
  - `monitoringEnabled` boolean
  - `convertToOnDemandOnExpiry` boolean

## Response `200`

Successful response

- object
  - `id` integer, required
  - `createdAt` string, required
  - `updatedAt` string, nullable, required
  - `deletedAt` string, nullable, required
  - `userId` string, required
  - `orgId` unknown, required
  - `startedAt` string, nullable, required
  - `terminatedAt` string, nullable, required
  - `externalId` string, required
  - `rentalId` unknown, required
  - `providerData` union, required
    - object
      - `externalId` string
      - `sshNetworking` object[]
        - `host` string, required
        - `port` number, required
        - `user` string, required
      - `nodeNetworking` object[]
        - `publicIp` string, required
        - `privateIp` string, required
      - `providerId` 'nebius', required
      - `resources` object, required
        - `cpuModel` string, required
        - `gpuCount` number, required
        - `ramGb` number, required
        - `storageGb` number, required
        - `vcpuCount` number, required
    - object
      - `externalId` string
      - `sshNetworking` object[]
        - `host` string, required
        - `port` number, required
        - `user` string, required
      - `nodeNetworking` object[]
        - `publicIp` string, required
        - `privateIp` string, required
      - `providerId` 'voltage-park', required
      - `resources` union, required
        - object
          - `cpuModel` string, required
          - `gpuCount` number, required
          - `ramGb` number, required
          - `storageGb` number, required
          - `cpuCount` number, required
        - object
          - `cpuModel` string, required
          - `gpuCount` number, required
          - `ramGb` number, required
          - `storageGb` number, required
          - `vcpuCount` number, required
      - `networkType` 'infiniband' | 'ethernet', required
      - `subOrder` string
      - `portForwards` object[]
        - `externalPort` number, required
        - `internalPort` number, required
    - object
      - `externalId` string
      - `sshNetworking` object[]
        - `host` string, required
        - `port` number, required
        - `user` string, required
      - `nodeNetworking` object[]
        - `publicIp` string, required
        - `privateIp` string, required
      - `providerId` 'gcore', required
      - `resources` object, required
        - `cpuModel` string, required
        - `gpuCount` number, required
        - `ramGb` number, required
        - `storageGb` number, required
        - `cpuCount` number, required
    - object
      - `externalId` string
      - `sshNetworking` object[]
        - `host` string, required
        - `port` number, required
        - `user` string, required
      - `nodeNetworking` object[]
        - `publicIp` string, required
        - `privateIp` string, required
      - `providerId` 'horizon', required
      - `publicIpAddressId` string
      - `resources` object, required
        - `cpuModel` string, required
        - `gpuCount` number, required
        - `ramGb` number, required
        - `storageGb` number, required
        - `vcpuCount` number, required
    - object
      - `externalId` string
      - `sshNetworking` object[]
        - `host` string, required
        - `port` number, required
        - `user` string, required
      - `nodeNetworking` object[]
        - `publicIp` string, required
        - `privateIp` string, required
      - `providerId` 'digital-ocean', required
      - `resources` object, required
        - `cpuModel` string, required
        - `gpuCount` number, required
        - `ramGb` number, required
        - `storageGb` number, required
        - `vcpuCount` number, required
    - object
      - `externalId` string
      - `sshNetworking` object[]
        - `host` string, required
        - `port` number, required
        - `user` string, required
      - `nodeNetworking` object[]
        - `publicIp` string, required
        - `privateIp` string, required
      - `providerId` 'verda', required
      - `resources` object, required
        - `cpuModel` string, required
        - `gpuCount` number, required
        - `ramGb` number, required
        - `storageGb` number, required
        - `vcpuCount` number, required
    - object
      - `externalId` string
      - `sshNetworking` object[]
        - `host` string, required
        - `port` number, required
        - `user` string, required
      - `nodeNetworking` object[]
        - `publicIp` string, required
        - `privateIp` string, required
      - `providerId` 'hyperstack', required
      - `resources` object, required
        - `cpuModel` string, required
        - `gpuCount` number, required
        - `ramGb` number, required
        - `storageGb` number, required
        - `vcpuCount` number, required
    - object
      - `externalId` string
      - `sshNetworking` object[]
        - `host` string, required
        - `port` number, required
        - `user` string, required
      - `nodeNetworking` object[]
        - `publicIp` string, required
        - `privateIp` string, required
      - `providerId` 'forge', required
      - `resources` union, required
        - object
          - `cpuModel` string, required
          - `gpuCount` number, required
          - `ramGb` number, required
          - `storageGb` number, required
          - `cpuCount` number, required
        - object
          - `cpuModel` string, required
          - `gpuCount` number, required
          - `ramGb` number, required
          - `storageGb` number, required
          - `vcpuCount` number, required
      - `networkType` 'infiniband' | 'ethernet'
      - `customPorts` integer[]
    - object
      - `externalId` string
      - `sshNetworking` object[]
        - `host` string, required
        - `port` number, required
        - `user` string, required
      - `nodeNetworking` object[]
        - `publicIp` string, required
        - `privateIp` string, required
      - `providerId` 'private-cloud', required
      - `gpuModel` string
      - `location` string
      - `benchmark` object
      - `networkType` 'infiniband' | 'ethernet'
      - `resources` union, required
        - object
          - `cpuModel` string, required
          - `gpuCount` number, required
          - `ramGb` number, required
          - `storageGb` number, required
          - `cpuCount` number, required
        - object
          - `cpuModel` string, required
          - `gpuCount` number, required
          - `ramGb` number, required
          - `storageGb` number, required
          - `vcpuCount` number, required
      - `nodes` object[], required
        - `role` 'login' | 'head' | 'compute', required
        - `hostname` string
        - `publicIp` string
        - `privateIp` string, required
      - `sshUser` string, required
      - `sshPort` number
      - `extra` object
    - object
      - `externalId` string
      - `sshNetworking` object[]
        - `host` string, required
        - `port` number, required
        - `user` string, required
      - `nodeNetworking` object[]
        - `publicIp` string, required
        - `privateIp` string, required
      - `providerId` 'mock', required
      - `resources` object, required
        - `cpuModel` string, required
        - `gpuCount` number, required
        - `ramGb` number, required
        - `storageGb` number, required
        - `vcpuCount` number, required
      - `customPorts` integer[]
  - `rentalType` 'bare-metal' | 'virtual-machine', required
  - `name` string, nullable, required
  - `label` string, nullable, required
  - `region` 'us-central-1' | 'us-central-2' | 'eu-north-2' | 'eu-west-2' | 'eu-north-4' | 'eu-north-5' | 'us-east-1' | 'us-east-2' | 'eu-north-6' | 'eu-north-7' | 'eu-north-8' | 'ca-west-1' | 'ca-east-1' | 'us-central-3' | 'us-southeast-1' | 'me-central-1' | 'ca-east-2' | 'eu-west-1' | 'us-southeast-2' | 'jp-east-1' | 'mock-region' | 'uk-central-3' | 'uk-southeast-3' | 'eu-southwest-3' | 'eu-southwest-3-1' | 'eu-west-3' | 'eu-west-4' | 'private-cloud', nullable, required
  - `convertToOnDemandOnExpiry` boolean, nullable, required
  - `gpuType` 'h100' | 'h200' | 'b200', required
  - `gpuCount` integer, required
  - `meta` unknown

## Other responses

- `400` — Invalid input data
- `401` — Authorization not provided
- `403` — Insufficient access
- `500` — Internal server error

---

[API](https://skmtc.net/hyperbolic/apis/castle-api.md) · [All operations](https://skmtc.net/hyperbolic/apis/castle-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hyperbolic/castle-api/revisions/fd9320b4b13d/schema)
