---
id: collections-post-id-decomposition-candidates
title: "POST /api/collections/:id/decomposition-candidates"
domain: collections
kind: api-method
http: "POST /api/collections/:id/decomposition-candidates"
---

# POST /api/collections/:id/decomposition-candidates {#collections-post-id-decomposition-candidates}

## Сводка

| Поле | Значение |
|---|---|
| **HTTP** | `POST /api/collections/:id/decomposition-candidates` |
| **Auth** | `—` |
| **Scope токена** | `read_write` |
| **PG-функции** | `api.set_decomposition_candidates` |
| **Таблицы** | `collection_decomposition_candidate` |
| **SRM** | SRM-361 |
| **RP (права)** | — |
| **Файл роута** | `server/routes/collections.js` |
| **Статус** | done |

**Аргументы запроса** (best-effort из хендлера; путь-параметры опущены):

_аргументов не обнаружено (подтвердить вручную по `server/routes/collections.js`)_

**Коды ответов/ошибок** (из хендлера): `200` — _уточнить причины вручную_

**Scope токена:** `read_write`. Требует прав collection admin.

**Тело запроса:** не требуется (аргументы не принимаются).

**Ответ `200`:**

```json
{
  "candidates": [
    {"block_id": "block_id_text", "reason": "Блок содержит >5 ответственностей, рекомендуется декомпозиция"},
    {"block_id": "another_block", "reason": "..."}
  ]
}
```

Результат сохраняется в `collection_decomposition_candidate` (advisory, CASCADE-удаляется при декомпозиции блока). Повторный вызов перезаписывает предыдущие кандидаты для коллекции.

Для чтения кандидатов без LLM-запуска: `GET /api/collections/:id/decomposition-candidates`.

<!-- gen:start:related -->
## Связанные
- Экраны: [Редактор коллекции](../screens/collection-editor.md#collections-screen-collection-editor)
- [Конвенции](../../../shared/conventions.md#conventions) · [Роли](../../../shared/roles.md#roles) · [Ошибки](../../../shared/errors.md#errors) · [Глоссарий](../../../shared/glossary.md#glossary)
<!-- gen:end:related -->

---

Human view: https://docs.vnimanie.ai/specbuilder/v1/domains/collections/api/post-id-decomposition-candidates/