Set an internal user's status
/internal-users/{userId}/statusSets the user's lifecycle status.
active: re-enables a suspended user and clearsdisabled_email_sent.suspended: disables the user.notify(nonedefault,email,password) controls the account-disabled email;remove_distributionremoves the user from every distribution list. Both are only accepted withsuspended.deactivated: sets the user's status to deactivated, which anactivecan reverse. The response is{ "deactivated": true }rather than the user.
notify and remove_distribution must be omitted entirely (not sent
as null or false) unless status is suspended, else 422.
Deprecated: withdrawn on 2027-06-30. POST /internal-users/{id}/actions/activate replaces it for active, POST /internal-users/{id}/actions/suspend for suspended and DELETE /internal-users/{id} for deactivated; every answer carries a Link header with rel="successor-version". This route keeps its old body and answer.
Like the actions it moves an internal user from any status to any other.
Path parameters
The user's public guid.
Request body
application/json, required
- One of:
active,suspended,deactivated - One of:
none,email,passwordDefault:"none" - Default:
false
{
"status": "suspended",
"notify": "email"
}Responses
OK
{
"data": {
"id": "6f1c2e8a-1b2c-4d5e-8f90-1a2b3c4d5e6f",
"first_name": "Ada",
"last_name": "Lovelace",
"email": "ada.lovelace@example.com",
"type": "internal",
"status": "suspended",
"created_at": "2026-06-15T10:30:00+00:00",
"updated_at": "2026-06-18T16:20:00+00:00"
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The user is provisioned by SCIM (error.code = scim_managed), so this
change must be made through the identity provider instead.
Request validation failed (HTTP 422). The body is either the Laravel
validation envelope (message + field-keyed errors) or the API error
envelope for domain rejections (e.g. form_type_not_supported,
folder_locked, parent_not_found, folder_not_empty).
Examples
curl -X PATCH https://your-org-domain/kong/core/api/v2/internal-users/{userId}/status\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"status": "suspended",
"notify": "email"
}'