> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usefini.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Organize knowledge

> Section hub for reading knowledge folders, managing folders, moving articles, and assigning knowledge to agents.

Knowledge folders are the structural layer of Fini's live knowledge graph. Use these routes to inspect the current folder structure, manage folders, move articles between folders, and decide which agents can use that knowledge.

<Info>
  Folders organize articles. They are not a second source of truth. The article content inside those folders is still what the agent retrieves from.
</Info>

## Reference pages

<CardGroup cols={3}>
  <Card title="Get knowledge folders" icon="eye" href="/en/api-reference/get-knowledge-folders">
    `GET /v2/hc-folders/public` — return the current tree snapshot, optionally scoped to one agent.
  </Card>

  <Card title="Create knowledge folder" icon="folder-plus" href="/en/api-reference/create-knowledge-folder">
    `POST /v2/hc-folders/public` — create a folder in the tree.
  </Card>

  <Card title="Update knowledge folder" icon="pen" href="/en/api-reference/update-knowledge-folder">
    `PUT /v2/hc-folders/:id/public` — update a folder's title, description, or active state.
  </Card>

  <Card title="Move knowledge folder" icon="folder" href="/en/api-reference/move-knowledge-folder">
    `PUT /v2/hc-folders/:id/move/public` — move a folder under a different parent.
  </Card>

  <Card title="Move article" icon="book-open" href="/en/api-reference/move-article">
    `PUT /v2/hc-articles/:id/move/public` — move an article into a different folder.
  </Card>

  <Card title="Delete knowledge folder" icon="trash" href="/en/api-reference/delete-knowledge-folder">
    `DELETE /v2/hc-folders/:id/public` — delete a folder from the tree.
  </Card>

  <Card title="Assign knowledge to agents" icon="robot" href="/en/api-reference/assign-knowledge-to-agents">
    `POST /v2/hc-bot-folder-junctions/public` — assign or unassign folders to agents in bulk.
  </Card>
</CardGroup>

## Endpoint map

| Method   | Path                                 | Scope   | Purpose                                                                     |
| -------- | ------------------------------------ | ------- | --------------------------------------------------------------------------- |
| `GET`    | `/v2/hc-folders/public`              | `read`  | Return the current knowledge-tree snapshot, optionally scoped to one agent. |
| `POST`   | `/v2/hc-folders/public`              | `write` | Create a folder in the knowledge tree.                                      |
| `PUT`    | `/v2/hc-folders/:id/public`          | `write` | Update a folder's title, description, or active state.                      |
| `PUT`    | `/v2/hc-folders/:id/move/public`     | `write` | Move a folder under a different parent.                                     |
| `PUT`    | `/v2/hc-articles/:id/move/public`    | `write` | Move an article into a different folder.                                    |
| `DELETE` | `/v2/hc-folders/:id/public`          | `write` | Delete a folder from the tree.                                              |
| `POST`   | `/v2/hc-bot-folder-junctions/public` | `write` | Assign or unassign folders to agents in bulk.                               |

## Knowledge folders snapshot object

<ResponseField name="id" type="string">
  Snapshot ID.
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 creation timestamp.
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 last-update timestamp.
</ResponseField>

<ResponseField name="snapshotObjV2" type="array">
  Nested folder-and-article tree for the workspace. When `botId` is supplied, this array is filtered to the folders assigned to that agent.
</ResponseField>

<Note>
  The workspace-API-key response for `GET /v2/hc-folders/public` does not include `companyId` or `publicSnapshotV2`, even though those fields exist on the stored snapshot internally.
</Note>

## Folder object

<ResponseField name="id" type="string">
  Folder ID.
</ResponseField>

<ResponseField name="companyId" type="string">
  Workspace ID that owns the folder.
</ResponseField>

<ResponseField name="parentFolderId" type="string | null">
  Parent folder ID. `null` or empty for a top-level folder.
</ResponseField>

<ResponseField name="title" type="string">
  Folder title.
</ResponseField>

<ResponseField name="description" type="string">
  Folder description.
</ResponseField>

<ResponseField name="misc" type="object">
  Internal metadata object for the folder.
</ResponseField>

<ResponseField name="active" type="boolean">
  Whether the folder is active.
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 creation timestamp.
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 last-update timestamp.
</ResponseField>

<Note>
  Use the child pages in this section for the detailed request and response reference for each route.
</Note>
