List installed extensions
const url = 'http://localhost:8000/clusters/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/extensions';
const options = {
method: 'GET',
headers: {'API-Version': '2026-06-01.beta', 'API-Key': '<API-Key>'}
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}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
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”Responses
Section titled “Responses”The request has succeeded.
object
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.
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.
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.
Current parameter values. Values for sensitive parameters are omitted (null).
object
When the installation status last changed.
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.
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Access is forbidden.
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}The server cannot find the requested resource.
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Client error
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Headers
Section titled “Headers”Server error
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}Server error
RFC 9457 Problem Details object.
object
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com"
}