Skip to content
OpenRelay is in early access, and the /v1 API is stable. New capabilities ship in the changelog.
API ReferenceProvidersReservations

List a node's reservable GPU units

Returns the allocatable GPU units on one node, with the unit ids that create, release, and reclaim take, and whether each unit can be reserved. Without this those calls are unusable: they are unit-scoped by design, and nothing else on the API returns a unit id, so the first reservation on a node could not be written at all. Each unit is one IOMMU group and is indivisible: a paired unit sells its GPUs together. Sellable units of a reservable class (vfio-group for VMs, device-request for pods) are reservable, and the response says which, and why not, rather than leaving the caller to infer it from a rejection. Readable by a platform operator, the org that owns the node, and any org managing a reservation on it. Anyone else gets 404, so the fleet stays unenumerable.

Required permission

Requires the reservation.read permission. A caller without it gets 404. See Permissions for the roles and API key permissions that include it.

Command line

The orl CLI wraps this endpoint:

orl reservations unit list <node-id>
GET
/v1/nodes/{nodeId}/reservations/units

Authorization

apiKey
headerAuthorizationBearer <token>

OpenRelay API key. Send it as Authorization: Bearer or_… (legacy vl_… keys still work).

Path Parameters

nodeId*string

Response Body

OK

application/json
  1. response
[index: integer]?

One allocatable GPU unit on a node: the thing a reservation is scoped to. The id is what create/release/reclaim take.

Example Request
curl -X GET 'https://api.openrelay.inc/v1/nodes/string/reservations/units'
Example Response
[  {    "id": "string",    "gpuModelId": "string",    "gpuModelName": "string",    "sellableGpus": 0,    "allocClass": "string",    "state": "string",    "claimedBy": "string",    "reservable": true,    "notReservableReason": "string",    "reservationId": "string",    "released": true  }]