
## Дерево документов базы знаний

`GET /v1/note/collections/:collectionId/documents`

Возвращает дерево документов базы знаний: документы верхнего уровня и вложенные в них дочерние документы. Используйте, чтобы обойти структуру базы знаний или получить идентификаторы её документов.

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|---------|
| `collectionId` (path) | number | да | Идентификатор базы знаний. Список: `GET /v1/note/collections` |

## Примеры

### curl — личный ключ

```bash
curl https://vibecode.bitrix24.tech/v1/note/collections/9/documents \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth-приложение

```bash
curl https://vibecode.bitrix24.tech/v1/note/collections/9/documents \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

### JavaScript — личный ключ

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/note/collections/9/documents', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
console.log('Дерево документов:', data)
```

### JavaScript — OAuth-приложение

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/note/collections/9/documents', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})
const { data } = await res.json()
```

## Поля ответа

| Поле | Тип | Описание |
|------|-----|---------|
| `success` | boolean | Всегда `true` при успехе |
| `data` | array | Документы верхнего уровня базы знаний |
| `data[].id` | number | Идентификатор документа |
| `data[].collectionId` | number | Идентификатор базы знаний, которой принадлежит документ. Список: `GET /v1/note/collections` |
| `data[].parentId` | number или null | Идентификатор родительского документа. `null` у документа верхнего уровня |
| `data[].title` | string | Заголовок документа |
| `data[].position` | number | Числовая позиция документа среди соседних |
| `data[].children` | array | Вложенные документы той же структуры |
| `meta.truncated` | boolean | `true`, если дерево показано не полностью |

## Пример ответа

```json
{
  "success": true,
  "data": [
    {
      "id": 11,
      "collectionId": 9,
      "parentId": null,
      "title": "Глава 1",
      "position": 1000,
      "children": []
    }
  ],
  "meta": { "truncated": false }
}
```

## Пример ответа при ошибке

404 — база знаний не найдена:

```json
{
  "success": false,
  "error": {
    "code": "ENTITY_NOT_FOUND",
    "message": "Запись с ID = `999999` не найдена"
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 400 | `INVALID_PARAMS` | `collectionId` не является положительным целым числом |
| 404 | `ENTITY_NOT_FOUND` | База знаний с указанным `collectionId` не найдена |
| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `note` |
| 401 | `TOKEN_MISSING` | У ключа нет настроенных токенов |

Полный список общих ошибок API — [Ошибки](/docs/errors).

## Известные особенности

Архивные документы в дерево не входят. Возвращаются только активные документы базы знаний.

Поле `meta.truncated` приходит `true`, когда дерево достигло внутреннего предела в 5000 узлов. В этом случае показана только часть структуры.

## Смотрите также

- [Список баз знаний](/docs/note/collections/list)
- [Получить базу знаний](/docs/note/collections/get)
- [Документы](/docs/note/documents)
- [Базы знаний](/docs/note/collections)
