Bulk set investor status
/investors/bulk/statusSets the status of many users at once, by guid. Only active is
supported today (status -> active, clearing disabled_email_sent).
Unknown or cross-org guids are silently skipped; the response lists
the guids that were actually updated.
Deprecated: withdrawn on 2027-06-30. POST /investors/bulk/activate replaces it; every answer carries a Link header with rel="successor-version". This route keeps its old body and answer.
It writes a user_enabled interaction and emits the legacy user.updated for each user it really changes.
Request body
application/json, required
{
"userIds": [
"6f1c2e8a-1b2c-4d5e-8f90-1a2b3c4d5e6f",
"9f8e7d6c-5b4a-4039-8271-6e5d4c3b2a19"
],
"status": "active"
}Responses
OK
{
"data": {
"updated": [
"6f1c2e8a-1b2c-4d5e-8f90-1a2b3c4d5e6f"
]
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
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/investors/bulk/status\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"userIds": [
"6f1c2e8a-1b2c-4d5e-8f90-1a2b3c4d5e6f",
"9f8e7d6c-5b4a-4039-8271-6e5d4c3b2a19"
],
"status": "active"
}'