Skip to content

Update a realm

PATCH
/clusters/{cluster_id}/realms/{realm_name}
curl --request PATCH \
  --url http://localhost:8000/clusters/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/realms/customer-portal \
  --header 'API-Key: <API-Key>' \
  --header 'API-Version: 2026-06-01.beta' \
  --header 'Content-Type: application/json' \
  --data '{ "enabled": false }'

Partially updates realm settings.

Required scope: realms:write

cluster_id
required
string format: uuid
realm_name
required

Keycloak realm name (not ID). Must start with a letter; allows letters, digits, and hyphens.

string
>= 1 characters <= 63 characters /^[a-zA-Z][a-zA-Z0-9-]*$/

Example

customer-portal
API-Version
required
string
Allowed values: 2026-06-01.beta
Media typeapplication/json

Patch request for updating realm settings. At least one field should be provided.

object
display_name
string
>= 1 characters <= 255 characters

Example

Customer Portal
enabled

Whether users can sign in to this realm.

boolean

Example

true
ssl_required

Keycloak SSL requirement. Maps directly to Keycloak’s sslRequired realm setting.

string
Allowed values: external all none
registration_allowed

Whether self-registration is open to anyone.

boolean

Example

false
registration_email_as_username

Whether email addresses are used as usernames during registration.

boolean

Example

false
login_with_email_allowed

Whether users can sign in with their email address instead of username.

boolean

Example

true
duplicate_emails_allowed

Whether multiple accounts may share the same email address.

boolean

Example

false
frontend_url

The public URL the realm serves on behind your own proxy: an https URL with a host and an optional port, and no path, query, fragment or credentials. Send null to clear it, so the issuer follows the request host again. Omit it to leave it unchanged.

Changing it changes the realm’s issuer, its links and its passkey origin. Only realms on a dedicated cluster can set it (403 otherwise), never the master realm (422), and never a realm that serves on a Skycloak custom domain (409).

string
nullable

Example

https://login.example.com

Example

{
  "enabled": false
}

The request has succeeded.

Media typeapplication/json

Realm details.

object
id
required
string format: uuid
name
required
string
>= 1 characters <= 63 characters /^[a-zA-Z][a-zA-Z0-9-]*$/
display_name
required
string
>= 1 characters <= 255 characters
enabled
required

Whether users can sign in to this realm.

boolean
ssl_required
required

Keycloak SSL requirement. Maps directly to Keycloak’s sslRequired realm setting.

string
Allowed values: external all none
registration_allowed
required

Whether self-registration is open to anyone.

boolean
registration_email_as_username
required

Whether email addresses are used as usernames during registration.

boolean
login_with_email_allowed
required

Whether users can sign in with their email address instead of username.

boolean
duplicate_emails_allowed
required

Whether multiple accounts may share the same email address.

boolean
frontend_url

The public URL the realm serves on when you put your own proxy in front of the cluster, or null when none is set. While it is set, the realm’s issuer is this URL followed by /realms/{name} whatever host a request arrives on. Always null for a realm that serves on a Skycloak custom domain.

string
nullable
created_at

Time when the realm was created, when available.

string format: date-time

Example

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "customer-portal",
  "display_name": "Customer Portal",
  "enabled": true,
  "ssl_required": "external",
  "registration_allowed": false,
  "registration_email_as_username": false,
  "login_with_email_allowed": true,
  "duplicate_emails_allowed": false,
  "frontend_url": null
}

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"
}

The request conflicts with the current state of the server.

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
object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri
errors
required
Array<object>
>= 1 items
object
field
required
string
detail
required
string
code
string
value

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com",
  "errors": [
    {
      "field": "example",
      "detail": "example",
      "code": "example",
      "value": "example"
    }
  ]
}

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"
}