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

Set a node's operator lifecycle status (drain / maintenance / remove / online)

Command line

The orl CLI wraps this endpoint:

orl provider node update <node-id> --status <status>
PATCH
/v1/orgs/{orgId}/provider/nodes/{nodeId}
AuthorizationBearer <token>

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

In: header

Path Parameters

orgId*string
nodeId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/orgs/string/provider/nodes/string" \  -H "Content-Type: application/json" \  -d '{    "status": "online"  }'
{  "id": "string",  "hostname": "string",  "nodeType": "string",  "runtime": "string",  "tdxEnabled": true,  "status": "string",  "cpuModel": "string",  "cpuCores": 0,  "ramGb": 0,  "createdAt": "string",  "locationCity": "string",  "locationCountry": "string",  "gpus": [    {      "gpuName": "string",      "vramGb": 0,      "quantity": 0    }  ],  "reservation": {    "reservedUnitCount": 0,    "releasedUnitCount": 0,    "reservations": [      {        "id": "string",        "nodeId": "string",        "reservedUnitIds": [          "string"        ],        "releasedUnitIds": [          "string"        ],        "allowedOrgIds": [          "string"        ],        "managingOrgIds": [          "string"        ],        "startsAt": "string",        "endsAt": "string",        "status": "pending",        "topologyGen": 0,        "contractRef": "string",        "reason": "string",        "createdAt": "string",        "updatedAt": "string",        "terminated": [          "string"        ],        "skipped": [          "string"        ],        "wouldTerminate": [          "string"        ],        "wouldSkip": [          "string"        ]      }    ]  }}