Investor Custom Folders

Add an investor custom folder

POST/investor-custom-folders

Adds 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

  • dry_runboolean#

    Validate and run the call without committing it, returning what the real call would return with meta.dry_run set.

Headers

  • Idempotency-Keystring#

    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

  • namestringRequired#

    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.

  • releasedboolean#

    Whether each user can see the folder made for them. Defaults to false.

{
  "name": "Tax Documents",
  "released": false
}

Responses

201

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.

InvestorCustomFolder
{
  "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
  }
}
401

Authentication failed. error.code is one of invalid_token, expired, revoked.

Error
403

Authorization failed. error.code is one of org_disabled, ip_blocked, missing_scope, scope_disabled, user_disabled.

Error
422

The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per problem, or a code documented on the operation.

Error
429

Rate limit exceeded (error.code = rate_limited).

Error

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