Set a VM's endpoint visibility
Makes a VM's HTTP endpoint public (no data-plane auth) or private (the org's API key required) and returns the VM; a running VM's route changes at once.
Required permission
Requires the compute.operate permission. See Permissions for the roles and API key permissions that include it.
Command line
The orl CLI wraps this endpoint:
orl vms visibility set <id> --publicapiKeyAuthorizationBearer <token>OpenRelay API key. Send it as Authorization: Bearer or_… (legacy vl_… keys still work).
id*stringapplication/json- body
public*booleantrue = open endpoint (no data-plane auth); false = require an org API key
OK
application/json- response
id*stringorganizationId*stringname*stringstatus*stringdeploying, running, stopped, failed, terminated, or interrupted; a row can also carry the queued status pending. interrupted means it served and is not serving now: it keeps its node, GPU and disk, and is not billed. A VM is interrupted while its node is offline and resumes when the node returns; a pod is interrupted for that and for losing its supervisor or its job on a live node, which the platform recovers by re-submitting it. After 7 days interrupted a VM is stopped (disk kept) and a pod is deleted.
statusReason?stringCause of the current status. The machine-readable values are "node_lost" (the host went offline and is expected back, so the disk is preserved), "node_removed" (the host was decommissioned, so the disk is gone and a restart deploys fresh elsewhere), "vm_exited", "user_stopped", "user_terminated", "user_restarted", "spot_reclaimed_by_capacity_owner", "spot_preempted_for_reservation_tenant", "auto_stopped_insufficient_balance", "auto_stopped_account_suspended", "auto_stopped_organization_deleted", the prefix "container failed to start: " followed by the container runtime's own message, and on a running workload the prefix "node leaving at " followed by the RFC 3339 time its host is removed, when the workload ends with node_removed. Anything else is free text for a human to read.
gpuModelId?stringgpuCount?integerendpointUrl?stringvolumeGb?integerpods only: size in GB of the pod's persistent /workspace volume.
public?booleantrue = open endpoint (no data-plane auth); false = require an org API key
createdAt?stringprovisioningStage?stringresourceSize?stringtier?stringdiskSizeGb?integergpuModelName?stringgpuManufacturer?stringGPU vendor from the catalog, the same value as GpuModel.manufacturer (NVIDIA, AMD); absent on a CPU-only row
pricePerHourCents?integerserviceType?stringmanaged-service tag; empty for a plain VM
managedBy?stringplatform owner of this row ("serving" = inference serving replica, read-only on customer surfaces); empty for a customer-launched VM
capabilityTier?stringcompute-fabric capability tier (e.g. "pod"); empty for a plain VM
computeClass?stringcompute-fabric purchase option (on_demand; pods created before the rename carry the legacy reserved or interruptible values); empty for a plain VM
imageUrl?stringtenant container image (pods)
curl -X POST 'https://api.openrelay.inc/v1/vms/string/visibility' \ -H 'Content-Type: application/json' \ -d '{ "public": true}'{ "id": "string", "organizationId": "string", "name": "string", "status": "string", "statusReason": "string", "gpuModelId": "string", "gpuCount": 0, "endpointUrl": "string", "volumeGb": 0, "public": true, "createdAt": "string", "provisioningStage": "string", "resourceSize": "string", "tier": "string", "diskSizeGb": 0, "gpuModelName": "string", "gpuManufacturer": "string", "pricePerHourCents": 0, "serviceType": "string", "managedBy": "string", "capabilityTier": "string", "computeClass": "string", "imageUrl": "string"}Reboot a VM (beta, not yet executed) POST
Beta: the reboot request is validated and accepted, but the in-guest reboot is not yet executed by the data plane.
Resize a stopped VM's disk POST
Beta: a stopped VM's new disk size is validated and recorded, but the disk is not yet resized on the node. The disk can grow, never shrink. A pod's volume cannot be resized.