Get an extension
const url = 'http://localhost:8000/extensions/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';
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/extensions/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'API-Key: <API-Key>' \
--header 'API-Version: 2026-06-01.beta'Required scope: 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
Friendly name shown in place of name when set. name never changes once an extension is catalogued; display_name lets the shown label change independently. Absent or null when the extension has none, in which case clients should fall back to name.
Set for platform extensions only: private marks an early-access extension your workspace has been granted. Absent for custom extensions.
Active version of the extension. For platform extensions this is the newest release across its supported Keycloak versions; the version a given cluster gets is available_version on its cluster extension. For custom extensions it is the uploader-supplied version.
Previously published versions, ordered from oldest to newest.
object
Supported Keycloak major versions (e.g. ["25", "26"]).
object
Unique parameter identifier within the extension.
Available choices. Only applicable when type is dropdown.
object
When true, the parameter value is write-only and omitted from read responses.
Malware scan result. Only set for custom extensions.
Human-readable scan result. Present when scan_status is rejected (names the detected signature) or failed (says the scan could not complete).
Original JAR filename provided at upload time. Only set for custom extensions.
JAR file size in bytes. Only set for custom extensions.
When the extension was first uploaded. Only set for custom extensions.
Example
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Social Login Bundle",
"description": "Adds social login providers for Google, GitHub, and Microsoft.",
"source": "platform",
"version": "3.1.0",
"previous_versions": [],
"keycloak_versions": [
"25",
"26"
],
"parameter_type": "env",
"parameters": [],
"repository_url": null,
"icon_url": null,
"documentation_url": null,
"quick_start_steps": null,
"usage_notes": null,
"scan_status": null,
"scan_message": null,
"original_jar_name": null,
"file_size_bytes": null,
"uploaded_at": "2025-01-15T10:00:00Z",
"created_at": "2025-01-15T10:00:00Z",
"updated_at": "2025-03-20T14:30: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"
}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"
}