---
title: "Get a list of past rentals"
method: GET
path: "/v2/alpha/on-demand/rental-history"
tags: ["rentals"]
deprecated: true
---

# Get a list of past rentals

`GET /v2/alpha/on-demand/rental-history`

> **Deprecated.**

**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/rental-history` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/rental-history`.

Get a list of past rentals

## Response `200`

Successful response

- union[]
  - union
    - object
      - `id` integer, required
      - `createdAt` string, required
      - `updatedAt` string, nullable, required
      - `deletedAt` string, nullable, required
      - `userId` string, required
      - `orgId` string, nullable, required
      - `startedAt` string, nullable, required
      - `terminatedAt` string, required
      - `rentalId` string, required
      - `providerData` object, required
        - `sshNetworking` object[]
          - `host` string, required
          - `port` number, required
          - `user` string, required
        - `nodeNetworking` object[]
          - `publicIp` string, required
          - `privateIp` string, required
        - `networkType` 'infiniband' | 'ethernet'
        - `gpuFormFactor` 'sxm5' | 'sxm6' | 'pcie'
        - `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
        - `portForwards` object[]
          - `externalPort` number, required
          - `internalPort` number, required
        - `customPorts` integer[]
        - `nodes` object[]
          - `role` 'login' | 'head' | 'compute', required
          - `hostname` string
          - `publicIp` string
          - `privateIp` string, required
        - `sshUser` string
        - `sshPort` number
        - `gpuModel` string
        - `location` string
        - `benchmark` object
        - `extra` object
      - `name` string, nullable, required
      - `label` string, nullable, required
      - `convertToOnDemandOnExpiry` boolean, nullable, required
      - `managedK8sClusterId` integer, nullable, required
      - `meta` object, nullable
        - `monitoring_enabled` boolean
        - `termination_reason` string
        - `attached_storage` object[]
          - `id` integer, required
          - `cost_per_hour` number, required
          - `size_in_gb` integer, required
          - `label` string, required
          - `vip` string, required
          - `attached_instance_ids` number[], required
        - `rental_type` string
      - `gpuType` 'h100' | 'h200' | 'b200' | 'rtx-6000-pro', required
      - `gpuCount` integer, required
      - `currentTerm` union, required
        - object
          - `effectiveAt` string, required
          - `termType` 'on-demand', required
          - `costPerHour` number, required
          - `reservedUntil` unknown, required
          - `reservationEndsAt` unknown, required
          - `termPeriodDays` unknown, required
          - `discountPercentage` unknown, required
          - `originalCostPerHour` unknown, required
        - object
          - `effectiveAt` string, required
          - `termType` 'reserved', required
          - `costPerHour` number, required
          - `reservedUntil` string, nullable, required
          - `reservationEndsAt` string, nullable, required
          - `termPeriodDays` number, required
          - `discountPercentage` number, required
          - `originalCostPerHour` number, required
        - object
          - `effectiveAt` string, required
          - `termType` 'private-cloud', required
          - `costPerHour` number, required
          - `reservedUntil` unknown, required
          - `reservationEndsAt` unknown, required
          - `termPeriodDays` unknown, required
          - `discountPercentage` unknown, required
          - `originalCostPerHour` unknown, required
      - `rentalType` 'virtual-machine', required
      - `gpuFormFactor` 'sxm5' | 'sxm6' | 'pcie', required
      - `nodes` object[], required
        - `cpuModel` string, required
        - `gpuCount` number, required
        - `ramGb` number, required
        - `storageGb` number, required
        - `vcpuCount` number, required
      - `connectionType` 'infiniband' | 'ethernet', required
      - `ethernetVariant` 'normal' | 'rocev2'
      - `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' | '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' | '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
      - `createdBy` object, required
        - `id` string, required
        - `name` string, nullable, required
        - `email` string, required
        - `picture` string, nullable, required
      - `supportsFeature` object, required
        - `attachedStorage` boolean, required
        - `portForwarding` boolean, required
        - `customPorts` boolean, required
      - `managedCluster` object, nullable, required
        - `name` string, required
        - `label` string, nullable, required
      - `status` 'Terminated' | 'Failed', required
      - `totalCost` number, required
    - object
      - `id` integer, required
      - `createdAt` string, required
      - `updatedAt` string, nullable, required
      - `deletedAt` string, nullable, required
      - `userId` string, required
      - `orgId` string, nullable, required
      - `startedAt` string, nullable, required
      - `terminatedAt` string, required
      - `rentalId` string, required
      - `providerData` object, required
        - `sshNetworking` object[]
          - `host` string, required
          - `port` number, required
          - `user` string, required
        - `nodeNetworking` object[]
          - `publicIp` string, required
          - `privateIp` string, required
        - `networkType` 'infiniband' | 'ethernet'
        - `gpuFormFactor` 'sxm5' | 'sxm6' | 'pcie'
        - `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
        - `portForwards` object[]
          - `externalPort` number, required
          - `internalPort` number, required
        - `customPorts` integer[]
        - `nodes` object[]
          - `role` 'login' | 'head' | 'compute', required
          - `hostname` string
          - `publicIp` string
          - `privateIp` string, required
        - `sshUser` string
        - `sshPort` number
        - `gpuModel` string
        - `location` string
        - `benchmark` object
        - `extra` object
      - `name` string, nullable, required
      - `label` string, nullable, required
      - `convertToOnDemandOnExpiry` boolean, nullable, required
      - `managedK8sClusterId` integer, nullable, required
      - `gpuType` 'h100' | 'h200' | 'b200' | 'rtx-6000-pro', required
      - `gpuCount` integer, required
      - `currentTerm` union, required
        - object
          - `effectiveAt` string, required
          - `termType` 'on-demand', required
          - `costPerHour` number, required
          - `reservedUntil` unknown, required
          - `reservationEndsAt` unknown, required
          - `termPeriodDays` unknown, required
          - `discountPercentage` unknown, required
          - `originalCostPerHour` unknown, required
        - object
          - `effectiveAt` string, required
          - `termType` 'reserved', required
          - `costPerHour` number, required
          - `reservedUntil` string, nullable, required
          - `reservationEndsAt` string, nullable, required
          - `termPeriodDays` number, required
          - `discountPercentage` number, required
          - `originalCostPerHour` number, required
        - object
          - `effectiveAt` string, required
          - `termType` 'private-cloud', required
          - `costPerHour` number, required
          - `reservedUntil` unknown, required
          - `reservationEndsAt` unknown, required
          - `termPeriodDays` unknown, required
          - `discountPercentage` unknown, required
          - `originalCostPerHour` unknown, required
      - `rentalType` 'bare-metal', required
      - `meta` object, nullable
        - `monitoring_enabled` boolean
        - `termination_reason` string
        - `attached_storage` object[]
          - `id` integer, required
          - `cost_per_hour` number, required
          - `size_in_gb` integer, required
          - `label` string, required
          - `vip` string, required
          - `attached_instance_ids` number[], required
        - `rental_type` string
      - `attachedStorage` object[]
        - `id` integer, required
        - `cost_per_hour` number, required
        - `size_in_gb` integer, required
        - `label` string, required
        - `vip` string, required
        - `attached_instance_ids` number[], required
      - `gpuFormFactor` 'sxm5' | 'sxm6' | 'pcie', required
      - `nodes` object[], required
        - `cpuModel` string, required
        - `gpuCount` number, required
        - `ramGb` number, required
        - `storageGb` number, required
        - `cpuCount` number, required
      - `connectionType` 'infiniband' | 'ethernet', required
      - `ethernetVariant` 'normal' | 'rocev2'
      - `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' | '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' | '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
      - `createdBy` object, required
        - `id` string, required
        - `name` string, nullable, required
        - `email` string, required
        - `picture` string, nullable, required
      - `supportsFeature` object, required
        - `attachedStorage` boolean, required
        - `portForwarding` boolean, required
        - `customPorts` boolean, required
      - `status` 'Terminated' | 'Failed', required
      - `totalCost` number, required

## Other responses

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

## Changes

- **2026-09-22** `119b1ecbb0b2` — 1 breaking, 1 info
  - added `subschema #1, subschema #2` to the `items/` response property `oneOf` list for the response status `200`
  - removed `subschema #1, subschema #2` from the `items/` response property `oneOf` list for the response status `200`
- **2026-09-17** `258ebb032c4a` — 1 breaking, 1 info
  - added `subschema #1, subschema #2` to the `items/` response property `oneOf` list for the response status `200`
  - removed `subschema #1, subschema #2` from the `items/` response property `oneOf` list for the response status `200`
- **2026-09-16** `1875a16896e1` — 1 breaking, 2 info
  - added `subschema #1, subschema #2` to the `items/` response property `oneOf` list for the response status `200`
  - api tag `rentals` added
  - removed `subschema #1, subschema #2` from the `items/` response property `oneOf` list for the response status `200`
- **2026-09-15** `35ac283ae04f` — 1 breaking, 1 info
  - added `subschema #1, subschema #2` to the `items/` response property `oneOf` list for the response status `200`
  - removed `subschema #1, subschema #2` from the `items/` response property `oneOf` list for the response status `200`
- **2026-09-08** `e16451dac634` — 1 breaking, 1 info
  - added `subschema #1, subschema #2` to the `items/` response property `oneOf` list for the response status `200`
  - removed `subschema #1, subschema #2` from the `items/` response property `oneOf` list for the response status `200`

[Full history](https://skmtc.dev/hyperbolic/apis/castle-api/changes/v2/alpha/on-demand/rental-history/get.md)

---

[API](https://skmtc.dev/hyperbolic/apis/castle-api.md) · [All operations](https://skmtc.dev/hyperbolic/apis/castle-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hyperbolic/apis/castle-api/revisions/6b22302ea98a?raw)
