Keycloak Clients API

Manage OAuth/OIDC clients within a realm

GitHub OpenAPI
Business capability
Identity & Access Management BC-620.20

Operations 35

GET /admin/realms/{realm}/clients Get clients belonging to the realm #
POST /admin/realms/{realm}/clients Create a new client Client’s client_id must be unique! #
GET /admin/realms/{realm}/clients/{client-uuid} Get representation of the client #
PUT /admin/realms/{realm}/clients/{client-uuid} Update the client #
DELETE /admin/realms/{realm}/clients/{client-uuid} Delete the client #
GET /admin/realms/{realm}/clients/{client-uuid}/client-secret Get the client secret #
POST /admin/realms/{realm}/clients/{client-uuid}/client-secret Generate a new secret for the client #
GET /admin/realms/{realm}/clients/{client-uuid}/client-secret/rotated Get the rotated client secret #
DELETE /admin/realms/{realm}/clients/{client-uuid}/client-secret/rotated Invalidate the rotated secret for the client #
GET /admin/realms/{realm}/clients/{client-uuid}/default-client-scopes Get default client scopes. Only name and ids are returned #
PUT /admin/realms/{realm}/clients/{client-uuid}/default-client-scopes/{clientScopeId} Replace admin realms by realm clients by client uuid default client scopes by… #
DELETE /admin/realms/{realm}/clients/{client-uuid}/default-client-scopes/{clientScopeId} Delete admin realms by realm clients by client uuid default client scopes by… #
GET /admin/realms/{realm}/clients/{client-uuid}/evaluate-scopes/generate-example-access-token Create JSON with payload of example access token #
GET /admin/realms/{realm}/clients/{client-uuid}/evaluate-scopes/generate-example-id-token Create JSON with payload of example id token #
GET /admin/realms/{realm}/clients/{client-uuid}/evaluate-scopes/generate-example-saml-response Create JSON with an example SAML response as payload #
GET /admin/realms/{realm}/clients/{client-uuid}/evaluate-scopes/generate-example-userinfo Create JSON with payload of example user info #
GET /admin/realms/{realm}/clients/{client-uuid}/evaluate-scopes/protocol-mappers Return list of all protocol mappers, which will be used when generating tokens… #
GET /admin/realms/{realm}/clients/{client-uuid}/evaluate-scopes/scope-mappings/{roleContainerId}/granted Get effective scope mapping of all roles of particular role container, which… #
GET /admin/realms/{realm}/clients/{client-uuid}/evaluate-scopes/scope-mappings/{roleContainerId}/not-granted Get roles, which this client doesn't have scope for and can't have them in the… #
GET /admin/realms/{realm}/clients/{client-uuid}/installation/providers/{providerId} Get admin realms by realm clients by client uuid installation providers by… #
GET /admin/realms/{realm}/clients/{client-uuid}/management/permissions Return object stating whether client Authorization permissions have been… #
PUT /admin/realms/{realm}/clients/{client-uuid}/management/permissions Return object stating whether client Authorization permissions have been… #
POST /admin/realms/{realm}/clients/{client-uuid}/nodes Register a cluster node with the client Manually register cluster node to this… #
DELETE /admin/realms/{realm}/clients/{client-uuid}/nodes/{node} Unregister a cluster node from the client #
GET /admin/realms/{realm}/clients/{client-uuid}/offline-session-count Get application offline session count Returns a number of offline user sessions… #
GET /admin/realms/{realm}/clients/{client-uuid}/offline-sessions Get offline sessions for client. #
GET /admin/realms/{realm}/clients/{client-uuid}/optional-client-scopes Get optional client scopes. Only name and ids are returned #
PUT /admin/realms/{realm}/clients/{client-uuid}/optional-client-scopes/{clientScopeId} Replace admin realms by realm clients by client uuid optional client scopes by… #
DELETE /admin/realms/{realm}/clients/{client-uuid}/optional-client-scopes/{clientScopeId} Delete admin realms by realm clients by client uuid optional client scopes by… #
POST /admin/realms/{realm}/clients/{client-uuid}/push-revocation Push the client's revocation policy to its admin URL If the client has an admin… #
POST /admin/realms/{realm}/clients/{client-uuid}/registration-access-token Generate a new registration access token for the client #
GET /admin/realms/{realm}/clients/{client-uuid}/service-account-user Get a user dedicated to the service account #
GET /admin/realms/{realm}/clients/{client-uuid}/session-count Get application session count Returns a number of user sessions associated with… #
GET /admin/realms/{realm}/clients/{client-uuid}/test-nodes-available Test if registered cluster nodes are available Tests availability by sending… #
GET /admin/realms/{realm}/clients/{client-uuid}/user-sessions Get user sessions for client. #

Documentation

Specifications

Schemas & Data

Other Resources

🔗
Reference
https://www.keycloak.org/docs/latest/server_admin/
🔗
JSONLD
https://artifacts.apis.io/keycloak/json-ld/keycloak-context.yml
🔗
ErrorCatalog
https://artifacts.apis.io/keycloak/errors/keycloak-problem-types.yml
🔗
DataModel
https://artifacts.apis.io/keycloak/data-model/keycloak-data-model.yml
🔗
APIsJSON
https://artifacts.apis.io/keycloak/apis.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-assign-user-to-group-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-audit-group-membership-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-audit-user-access-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-decommission-client-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-federate-identity-provider-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-harden-realm-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-inventory-realm-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-offboard-user-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-onboard-user-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-provision-group-hierarchy-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-register-oidc-client-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-rotate-client-secret-workflow.yml
🔗
Arazzo
https://artifacts.apis.io/keycloak/arazzo/keycloak-upsert-realm-role-workflow.yml

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/keycloak:keycloak-clients-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

keycloak-clients-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Keycloak Admin REST Clients API
  description: This is a REST API reference for the Keycloak Admin REST API.
  version: '1.0'
tags:


# --- truncated at 32 KB (52 KB total) ---
# Full source: https://artifacts.apis.io/keycloak/openapi/keycloak-clients-api-openapi.yml