Skip to content

List installed extensions

GET
/clusters/{cluster_id}/extensions
curl --request GET \
  --url http://localhost:8000/clusters/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/extensions \
  --header 'API-Key: <API-Key>' \
  --header 'API-Version: 2026-06-01.beta'

Returns all extensions installed on the cluster.

Required scope: clusters:extensions:read

cluster_id
required
string format: uuid
API-Version
required
string
Allowed values: 2026-06-01.beta

The request has succeeded.

Media typeapplication/json
Array<object>
object
extension_id
required
string format: uuid
extension_name
required
string
extension_source
required
string
Allowed values: platform custom
status
required
string
Allowed values: installing active failed removing
installed_version
required

Version currently running on the cluster. For platform extensions this is the upstream release string of the installed build (not necessarily semver, for example 1.4.1-SNAPSHOT), or unknown when it cannot be determined. For custom extensions it is the uploader-supplied version.

string
available_version
required

Version the cluster would get by upgrading now. For platform extensions it is the build published for the cluster’s Keycloak version (unknown when that build states no version), and null when no build supports the cluster’s Keycloak version. For custom extensions it is the latest uploaded version.

string
nullable
upgrade_available
required

Whether upgrading would install a different build. For platform extensions it compares the installed build with the one published for the cluster’s Keycloak version, so republishing an unchanged catalog never sets it. For custom extensions it is set when a version was published after the install. Always false when the install is not active or is pinned by Skycloak support.

boolean
parameters
required

Current parameter values. Values for sensitive parameters are omitted (null).

object
key
additional properties
string
nullable
installed_at
required
string format: date-time
last_status_change_at
required

When the installation status last changed.

string format: date-time
nullable

Example

[
  {
    "extension_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "extension_name": "Social Login Bundle",
    "extension_source": "platform",
    "status": "active",
    "installed_version": "3.0.0",
    "available_version": "3.1.0",
    "upgrade_available": true,
    "parameters": {},
    "installed_at": "2025-02-01T09:00:00Z",
    "last_status_change_at": "2025-02-01T09:05:00Z"
  }
]

Access is unauthorized.

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}

Access is forbidden.

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}

The server cannot find the requested resource.

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}

Client error

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}
Retry-After
integer
RateLimit-Limit
integer
RateLimit-Remaining
integer
RateLimit-Reset
integer
X-RateLimit-Limit-Second
integer
X-RateLimit-Remaining-Second
integer
X-RateLimit-Limit-Minute
integer
X-RateLimit-Remaining-Minute
integer
X-RateLimit-Limit-Hour
integer
X-RateLimit-Remaining-Hour
integer
X-RateLimit-Limit-Day
integer
X-RateLimit-Remaining-Day
integer

Server error

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}

Server error

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}