---
title: "List cluster upgrades"
method: GET
path: "/clusters/{cluster_id}/upgrades"
tags: ["Cluster Operations"]
---

# List cluster upgrades

`GET /clusters/{cluster_id}/upgrades`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/clusters/{cluster_id}/upgrades`
- Auth: API key in header `API-Key`

Returns the upgrade history for the cluster, including any in-progress upgrade.

Required scope: `clusters:read`

## Path parameters

- `cluster_id` string, uuid, required

## Headers

- `API-Version` '2026-06-01.beta', required

## Response `200`

The request has succeeded.

- ClusterUpgrade[]
  - `id` string, required: Unique upgrade identifier.
  - `from_version` string, required: Cluster version in semver format. Check the documentation for the latest supported versions.
  - `to_version` string, required: Cluster version in semver format. Check the documentation for the latest supported versions.
  - `phase` string, required: Current upgrade phase. One of: `initiated`, `completed`, `cancelled`, `failed`, `timed_out`.
  - `started_at` string, date-time, required: When the upgrade was initiated.
  - `completed_at` string, date-time, nullable, required: When the upgrade completed or was cancelled. Absent if the upgrade is still in progress.

## Other responses

- `401`: Access is unauthorized.
- `404`: The server cannot find the requested resource.
- `429`: Client error
- `500`: Server error
- `501`: Server error

---

[API](https://skmtc.dev/skycloak/apis/skycloak-public-api.md) · [All operations](https://skmtc.dev/skycloak/apis/skycloak-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/skycloak/apis/skycloak-public-api/revisions/33a69e2ce35f?raw)
