---
id: collections-estimate
title: "GET /api/collections/estimate — Ожидаемые размеры коллекции"
domain: collections
kind: api-method
http: "GET /api/collections/estimate"
---

# GET /api/collections/estimate — Ожидаемые размеры коллекции {#collections-estimate}

## Сводка

| Поле | Значение |
|---|---|
| **HTTP** | `GET /api/collections/estimate` |
| **Auth** | `requireAuth` — только авторизованный |
| **Scope токена** | `read` |
| **PG-функции** | — |
| **Таблицы** | — |
| **SRM** | SRM-359 |
| **RP (права)** | — |
| **Файл роута** | `server/routes/collections.js` |
| **Статус** | done |

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

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

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

Чтение — достаточно токена со scope `read` (см. [Конвенции](../../../shared/conventions.md#conventions)). Сверх авторизации прав не требует. **LLM не запускается, ничего не пишется** — метод просто извлекает границы из тех же constrained-схем, что реально ограничивают [(пере)генерацию](regenerate.md#collections-regenerate) (нулевой дрейф с фактическими лимитами).

Параметры-подсказки передаются в query (все необязательны); они сужают рамки так же, как ползунки в мастере:

| Параметр | Где | Назначение |
|---|---|---|
| `layers_min`, `layers_max` | query | Желаемый диапазон числа слоёв |
| `specialties_min`, `specialties_max` | query | Диапазон числа специальностей |
| `blocks_min`, `blocks_max` | query | Диапазон общего числа блоков |

Для любой оси `min > max` → `400`. Нечисловые значения игнорируются.

**Пример запроса:**

```bash
curl "https://specbuilder.vnimanie.ai/api/collections/estimate?layers_min=3&layers_max=5&blocks_max=20" \
  -H "Authorization: Bearer tak_..."
```

**Ответ `200`** (JSON) — ожидаемые диапазоны. `per_layer` — **производная** оценка (в схеме нет ограничения на число блоков в слое): минимум блоков-на-слой при максимуме слоёв, максимум — при минимуме слоёв. Любая граница может быть `null`, если в схеме её нет:

```json
{
  "layers": { "min": 3, "max": 5 },
  "specialties": { "min": 1, "max": 12 },
  "blocks": { "min": 6, "max": 20, "per_layer": { "min": 2, "max": 6 } }
}
```

<!-- gen:start:related -->
## Связанные
- [Конвенции](../../../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/estimate/