List clusters API Reference
const url = 'https://api.kupe.cloud/api/v1/tenants/acme/clusters';const options = {method: 'GET', headers: {Authorization: '<Authorization>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.kupe.cloud/api/v1/tenants/acme/clusters \ --header 'Authorization: <Authorization>'List all managed Kubernetes clusters belonging to the tenant. Returns cluster metadata, resource allocations, and current status for each cluster.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Tenant name
Responses
Section titled “ Responses ”List of clusters
object
object
object
Deprecated: always equal to name (the CRD has no display name; the cluster name is the identifier).
object
object
object
HAConfigured is true once the operator has confirmed both 3/3 apiserver replicas AND 3/3 deployed-etcd replicas are Ready for the first time. Etcd readiness is required because in the OSS deployed-etcd path etcd runs in its own StatefulSet — quorum loss with healthy apiserver pods would block writes, so HA is not “operationally ready” until both tiers report 3/3.
HAEnabledAt is the moment HAConfigured first became true and acts as the billing anchor. Stamped once, never updated, never cleared (v1 has no HA->single transition).
HAEtcdReplicasDesired is the target HA etcd replica count (3 when HA is enabled, 0 otherwise).
HAEtcdReplicasReady is the count of deployed-etcd replicas currently Ready. Exposed separately from HAReplicasReady because in the OSS deployed-etcd path the etcd StatefulSet is independent of the apiserver StatefulSet, and etcd quorum loss with healthy CP can leave the cluster unable to serve writes.
HAPhase is the consumer-friendly HA rollup. One of pending, ha-healthy, ha-degraded, ha-unavailable. Empty for non-HA clusters.
HAReplicasDesired is the target HA replica count (3 when HA is enabled, 0 otherwise).
HAReplicasReady is the count of HA control-plane (apiserver) replicas currently Ready.
object
Warnings is an array of structured advisory messages. Always present (empty array when none). Populated today only by CREATE when a non-blocking advisory applies (e.g. HA_K8S_VERSION_RETIRING when HA is enabled on the oldest supported k8s minor). Each entry shares the same shape as a structured error envelope.
object
Example
{ "items": [ { "createdAt": "2026-02-01T14:00:00Z", "displayName": "production", "highAvailability": true, "name": "production", "resourceVersion": "294810", "resources": { "cpu": "4", "memory": "16Gi", "storage": "100Gi" }, "status": { "endpoint": "https://production.acme.clusters.kupe.cloud", "haConfigured": true, "haEnabledAt": "2026-05-25T14:32:11Z", "haEtcdReplicasDesired": 3, "haEtcdReplicasReady": 3, "haPhase": "ha-healthy", "haReplicasDesired": 3, "haReplicasReady": 3, "kubernetesVersion": "v1.32.3", "phase": "Running" }, "type": "shared", "version": "1.32", "warnings": [ { "code": "HA_K8S_VERSION_RETIRING", "field": "spec.highAvailability", "message": "Cluster's Kubernetes version (1.33) is approaching end-of-life on the current vCluster chart. Plan an upgrade before enabling HA.", "severity": "warning" } ] } ]}Invalid tenant name
object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}Missing or invalid authentication
object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}Not a member of this tenant
object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}Rate limit exceeded
object
Example generated
{ "code": "example", "error": "example", "field": "example", "message": "example", "severity": "example"}