rentals

Create a rental

Changed on

Rent a virtual machine or a bare metal server. rentalType decides which machine-type-specific fields apply; sending a field for the other type is a BAD_REQUEST (INVALID_INPUT_FOR_RENTAL_TYPE).

post/v2/on-demand/rentals

Request

  • Base URL
    https://api.hyperbolic.ai
  • Auth
    HTTP bearer

Request body

rentalType'virtual-machine' | 'bare-metal' required

The machine type to rent. Fields marked for one machine type are rejected for the other.

gpuCountnumber required

GPUs to rent. Bare metal rents whole nodes, so a multiple of 8.

networkType'infiniband' | 'ethernet'

Required for bare metal. Virtual machines default to ethernet.

gpuType'h100' | 'h200' | 'b200' | 'rtx-6000-pro'
labelstring
termType'on-demand' | 'reserved'
termPeriodDaysinteger

Any whole number of days from 1 to 30 where custom reservation lengths are enabled for your account; otherwise one of the standard terms in options from GET /v2/on-demand/reserve-options.

discountPercentagenumber
convertToOnDemandOnExpiryboolean
monitoringEnabledboolean
sshPublicKeyIdinteger

The saved SSH key to authorize on the rental. Defaults to the most recently added key.

sshPublicKeyIdsinteger[]

The saved SSH keys to authorize on the rental.

customPortsinteger[]

Virtual machines only.

monitoringOptOutboolean

Virtual machines only. Opt the rental out of Hyperbolic telemetry: the GPU health and system metrics (CPU, memory, root filesystem, network interfaces) Hyperbolic collects from inside the virtual machine to detect hardware faults. No logs, process lists or file contents are collected. Omitted or false leaves collection on. Only standalone virtual machine rentals in supported regions can opt out; elsewhere true gets a 400.

cudaVersion'cuda12.8' | 'cuda12.9'

Bare metal only.

Response

Successful response

rentalIdstring required
namestring nullable required
labelstring nullable required
rentalType'virtual-machine' | 'bare-metal' 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' | 'ca-east-3' | 'eu-north-6' | 'eu-north-7' | 'eu-north-8' | 'eu-north-9' | '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' | 'us-southeast-3' | 'eu-west-5' | 'jp-east-2' | 'us-east-3' | 'uk-central-3' | 'uk-southeast-3' | 'eu-southwest-3' | 'eu-southwest-3-1' | 'eu-west-3' | 'eu-west-4' | 'private-cloud' required
gpuType'h100' | 'h200' | 'b200' | 'rtx-6000-pro' required
gpuCountinteger required
gpuFormFactor'sxm5' | 'sxm6' | 'pcie' required
connectionType'infiniband' | 'ethernet' required
ethernetVariant'normal' | 'rocev2' nullable required
supportsPortForwardingboolean required
exposedPortsnumber[] required
supportsCustomPortsboolean required
supportsMultipleSshKeysboolean required
supportsSshKeyUpdatesboolean required
supportsAttachedStorageboolean required
monitoringEnabledboolean required
convertToOnDemandOnExpiryboolean nullable required
terminationReasonstring nullable required
createdAtstring date-time required
updatedAtstring date-time nullable required
startedAtstring date-time nullable required
terminatedAtstring date-time nullable required
userIdstring required
orgIdstring nullable required

Example response

{
  "currentTerm": {
    "effectiveAt": "2025-01-31T12:00:00.000Z"
  },
  "createdAt": "2025-01-31T12:00:00.000Z",
  "updatedAt": "2025-01-31T12:00:00.000Z",
  "startedAt": "2025-01-31T12:00:00.000Z",
  "terminatedAt": "2025-01-31T12:00:00.000Z"
}

Changes

    • breaking

      the request property's max was decreased to 30.00

    • warning

      added the new jp-east-2 enum value to the response property for the response status

    • info

      added the new jp-east-2 enum value to the request property /