Add an investor custom folder
/investor-custom-foldersAdds a setting and starts a job that makes a folder with its name under every user's Other folder. Returns 201 with the setting, meta.job_id and meta.folders_total. Needs view-all-documents or super admin on the token's user; service tokens get 403. 422 unique when a setting has the name, ignoring case. A dry run stores and starts nothing. Emits investor_custom_folder.created after commit, not on a dry run; no email. DELETE /investor-custom-folders/{id} undoes the setting but not the folders; delete those with DELETE /folders/{id}.
Query parameters
Validate and run the call without committing it, returning what the real call would return with
meta.dry_runset.
Headers
Makes a retry safe. Send a new UUID for each new request and reuse it only to retry that request; the first response is replayed for 24 hours.
Request body
application/json, required · InvestorCustomFolderCreate
The name of the folder to make under every user's Other folder. Surrounding spaces are trimmed. It must differ, ignoring case, from the name of every existing setting.
Whether each user can see the folder made for them. Defaults to false.
{
"name": "Tax Documents",
"released": false
}Responses
The setting was added and the job that makes the folders was started. The job's result holds custom_folder_id, created, existing and failed.
{
"data": {
"id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"name": "string",
"released": true,
"created_at": "2026-06-12T10:00:00+00:00",
"updated_at": "2026-06-12T10:00:00+00:00"
},
"meta": {
"job_id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
"folders_total": 1,
"dry_run": true
}
}Authorization failed. error.code is one of org_disabled,
ip_blocked, missing_scope, scope_disabled, user_disabled.
The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per
problem, or a code documented on the operation.
Examples
curl -X POST https://your-org-domain/kong/core/api/v2/investor-custom-folders\
-H "Authorization: Bearer $HELM_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"name": "Tax Documents",
"released": false
}'