Create a knowledge folder
Create a knowledge folder at the workspace root or under another folder.
Endpoint
POST
/api/v1/workspaces/{workspace_id}/knowledge/foldersAuthentication
| Operation class | Authentication | Minimum role | API key |
|---|---|---|---|
| dashboard-session-api | Dashboard session cookie; mutations also require X-CX-Request: 1. | admin | Not allowed |
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
workspace_id | path | string | Yes | — |
Request body
application/json request schema
| Field path | Type | Reference | Format | Nullable | Required | Enum | Description |
|---|---|---|---|---|---|---|---|
$ | object | PermintaanFolder | — | No | Yes | — | — |
name | string | — | — | No | Yes | — | — |
parent_folder_id | string or null | — | — | Yes | No | — | — |
Example
curl --request POST 'https://operade.ai/api/v1/workspaces/ws_demo/knowledge/folders' \
--cookie 'cx_session=YOUR_SESSION_COOKIE' \
--header 'X-CX-Request: 1' \
--header 'Content-Type: application/json' \
--data '{"name":"Support","parent_folder_id":"fld_parent"}'{
"name": "Support",
"parent_folder_id": "fld_parent"
}Responses
| Status | Description | Content |
|---|---|---|
4XX | Handled client error | application/json: ErrorResponse |
201 | Successful Response | application/json: KnowledgeFolder |
4XX application/json response schema
| Field path | Type | Reference | Format | Nullable | Required | Enum | Description |
|---|---|---|---|---|---|---|---|
$ | object | ErrorResponse | — | No | Yes | — | — |
error | object | ErrorItem | — | No | Yes | — | — |
error.code | string | — | — | No | Yes | — | — |
error.details | object | — | — | No | No | — | — |
error.message | string | — | — | No | Yes | — | — |
201 application/json response schema
| Field path | Type | Reference | Format | Nullable | Required | Enum | Description |
|---|---|---|---|---|---|---|---|
$ | object | KnowledgeFolder | — | No | Yes | — | — |
child_count | integer | — | — | No | Yes | — | — |
created_at | string | — | date-time | No | Yes | — | — |
created_by | object | KnowledgeCreator | — | No | Yes | — | — |
created_by.email | string | — | — | No | Yes | — | — |
created_by.id | string | — | — | No | Yes | — | — |
created_by.name | string | — | — | No | Yes | — | — |
entity_type | string | — | — | No | Yes | "folder" | — |
id | string | — | — | No | Yes | — | — |
name | string | — | — | No | Yes | — | — |
parent_folder_id | string or null | — | — | Yes | Yes | — | — |
updated_at | string | — | date-time | No | Yes | — | — |
Response example
{
"entity_type": "folder",
"id": "string",
"name": "string",
"parent_folder_id": "string",
"child_count": 0,
"created_by": {
"id": "string",
"name": "string",
"email": "string"
},
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z"
}Errors
Reviewed common and route-declared errors are summarized here; the list is not exhaustive. Start with the distributed error index to find each code's canonical domain page.
| Status | Code | Description |
|---|---|---|
401 | unauthenticated | Authentication is missing, invalid, or revoked. |
403 | forbidden | The authenticated caller does not have access to this operation. |
404 | not_found | The requested workspace resource was not found. |
422 | validation_failed | The request did not pass field or business validation. |
