Skip to content

Update a realm user

PATCH
/clusters/{cluster_id}/realms/{realm_name}/users/{user_id}
curl --request PATCH \
  --url http://localhost:8000/clusters/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/realms/customer-portal/users/9f3f2e5c-9e3d-4b1d-9f53-2a8af5a5d9a1 \
  --header 'API-Key: <API-Key>' \
  --header 'API-Version: 2026-06-01.beta' \
  --header 'Content-Type: application/json' \
  --data '{ "first_name": "Jane", "last_name": "Doe", "enabled": true, "email_verified": true }'

Partially updates a realm user.

Required scope: realm-users: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
user_id
required
string
>= 1 characters <= 255 characters

Example

9f3f2e5c-9e3d-4b1d-9f53-2a8af5a5d9a1
API-Version
required
string
Allowed values: 2026-06-01.beta
Media typeapplication/json

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

object
email
string format: email

Example

jane@example.com
first_name
string
<= 255 characters

Example

Jane
last_name
string
<= 255 characters

Example

Doe
enabled

Whether the user can sign in.

boolean

Example

true
email_verified

Whether the email address has been verified.

boolean

Example

true

Example

{
  "first_name": "Jane",
  "last_name": "Doe",
  "enabled": true,
  "email_verified": true
}

The request has succeeded.

Media typeapplication/json

Public representation of a realm user.

object
id
required
string
>= 1 characters <= 255 characters
username
required
string
>= 3 characters <= 255 characters /^[A-Za-z0-9._@-]+$/
email
required
string format: email
first_name
string
last_name
string
enabled
required

Whether the user can sign in.

boolean
email_verified

Whether the email address has been verified.

boolean
organization

Organization associated with the user, when available.

string
last_login_at

Most recent successful sign-in time, when available.

string format: date-time
created_at

Time when the user was created, when available.

string format: date-time

Example

{
  "id": "9f3f2e5c-9e3d-4b1d-9f53-2a8af5a5d9a1",
  "username": "john.doe",
  "email": "john@example.com",
  "first_name": "John",
  "last_name": "Doe",
  "enabled": true,
  "email_verified": true,
  "organization": "Acme Corp"
}

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