Документация API v2. Версия заморожена и продолжает работать; актуальная — на главной. Что изменилось: переход с v2 на v3.
Папки

Создать папку

Доступ для AI:

Папка объединяет объекты, чтобы спрашивать отзывы и аналитику сразу по всем: GET /v2/reviews?folder_id=… отдаёт единую ленту по всем объектам папки и её подпапок.

Глубина – два уровня: папка → подпапка → объекты. Один объект может лежать сразу в нескольких папках.

Объект, которую положить не удалось, создать папку не мешает: она не попадёт в состав, а её идентификатор вернётся в ignored_group_ids.

POST
/v2/folders

Параметры

Idempotency-Keyстрока

Свой ключ запроса. Повтор с тем же ключом не создаст вторую папку.

Тело запроса

nameстрокаобязательный

Название папки, 1–255 символов.

parent_folder_idчисло

Положить папку внутрь другой. Не передано – папка окажется в корне.

group_idsсписок чисел

Объекты, которые сразу положить в папку, до 200.

Ответ

idчисло

Идентификатор созданной папки.

user_idчисло

Владелец папки.

nameстрока

Название папки.

created_atдата и время

Когда папка создана.

parent_folder_idчисломожет быть пустым

Папка-родитель. Пусто – папка лежит в корне.

groupsсписок объектов

Объекты, лежащие непосредственно в этой папке.

groups[].idчисло

Идентификатор объекта.

groups[].nameстрока

Название объекта.

subfoldersсписок объектов

Подпапки этой папки. У новой папки список пустой.

subfolders[].idчисло

Идентификатор папки. Обычное целое число — папки не участвуют в кодировании идентификаторов.

subfolders[].user_idчисло

Идентификатор владельца папки. Он же её создатель: папка всегда создаётся себе — POST /v2/folders не принимает чужого владельца.

subfolders[].nameстрока

Название папки.

subfolders[].created_atдата и время

Момент создания папки (UTC, ISO 8601).

subfolders[].parent_folder_idчисломожет быть пустым

Идентификатор родительской папки. null — папка корневая. Глубина ограничена двумя уровнями: папка → подпапка → группы, поэтому у подпапки подпапок быть не может.

subfolders[].groupsсписок объектов

Группы, лежащие непосредственно в этой папке (без групп подпапок). Приходят объектами с названиями, чтобы не ходить за ними в GET /v2/groups; на вход POST/PATCH принимают массив идентификаторов group_ids. Здесь виден состав, а не то, что попадёт в выдачу: выключенная (is_active=false) группа остаётся в составе, но отзывов и аналитики по folder_id не даёт — то же правило, что и в списке групп. Удалённая группа из состава пропадает.

subfolders[].groups[].idчисло

Идентификатор группы.

subfolders[].groups[].nameстрока

Название группы.

subfolders[].subfoldersсписок объектов

Подпапки этой папки — каждая со своим составом. Порядок тот же, что у папок верхнего уровня: по названию, при совпадении — по id. Глубина ограничена двумя уровнями, поэтому у подпапки здесь всегда пустой список. У подпапки есть и свои группы, и они не смешиваются с группами родителя: groups каждой папки — только её собственный состав. В выдачу по folder_id (отзывы, аналитика) попадают группы папки и её подпапок.

subfolders[].subfolders[].idчисло

Идентификатор папки. Обычное целое число — папки не участвуют в кодировании идентификаторов.

subfolders[].subfolders[].user_idчисло

Идентификатор владельца папки. Он же её создатель: папка всегда создаётся себе — POST /v2/folders не принимает чужого владельца.

subfolders[].subfolders[].nameстрока

Название папки.

subfolders[].subfolders[].created_atдата и время

Момент создания папки (UTC, ISO 8601).

subfolders[].subfolders[].parent_folder_idчисломожет быть пустым

Идентификатор родительской папки. null — папка корневая. Глубина ограничена двумя уровнями: папка → подпапка → группы, поэтому у подпапки подпапок быть не может.

subfolders[].subfolders[].groupsсписок объектов

Группы, лежащие непосредственно в этой папке (без групп подпапок). Приходят объектами с названиями, чтобы не ходить за ними в GET /v2/groups; на вход POST/PATCH принимают массив идентификаторов group_ids. Здесь виден состав, а не то, что попадёт в выдачу: выключенная (is_active=false) группа остаётся в составе, но отзывов и аналитики по folder_id не даёт — то же правило, что и в списке групп. Удалённая группа из состава пропадает.

subfolders[].subfolders[].groups[].idчисло

Идентификатор группы.

subfolders[].subfolders[].groups[].nameстрока

Название группы.

subfolders[].subfolders[].subfoldersсписок объектов

Подпапки этой папки — каждая со своим составом. Порядок тот же, что у папок верхнего уровня: по названию, при совпадении — по id. Глубина ограничена двумя уровнями, поэтому у подпапки здесь всегда пустой список. У подпапки есть и свои группы, и они не смешиваются с группами родителя: groups каждой папки — только её собственный состав. В выдачу по folder_id (отзывы, аналитика) попадают группы папки и её подпапок.

subfolders[].subfolders[].subfolders[].idчисло

Идентификатор папки. Обычное целое число — папки не участвуют в кодировании идентификаторов.

subfolders[].subfolders[].subfolders[].user_idчисло

Идентификатор владельца папки. Он же её создатель: папка всегда создаётся себе — POST /v2/folders не принимает чужого владельца.

subfolders[].subfolders[].subfolders[].nameстрока

Название папки.

subfolders[].subfolders[].subfolders[].created_atдата и время

Момент создания папки (UTC, ISO 8601).

subfolders[].subfolders[].subfolders[].parent_folder_idчисломожет быть пустым

Идентификатор родительской папки. null — папка корневая. Глубина ограничена двумя уровнями: папка → подпапка → группы, поэтому у подпапки подпапок быть не может.

subfolders[].subfolders[].subfolders[].groupsсписок объектов

Группы, лежащие непосредственно в этой папке (без групп подпапок). Приходят объектами с названиями, чтобы не ходить за ними в GET /v2/groups; на вход POST/PATCH принимают массив идентификаторов group_ids. Здесь виден состав, а не то, что попадёт в выдачу: выключенная (is_active=false) группа остаётся в составе, но отзывов и аналитики по folder_id не даёт — то же правило, что и в списке групп. Удалённая группа из состава пропадает.

subfolders[].subfolders[].subfolders[].subfoldersсписок объектов

Подпапки этой папки — каждая со своим составом. Порядок тот же, что у папок верхнего уровня: по названию, при совпадении — по id. Глубина ограничена двумя уровнями, поэтому у подпапки здесь всегда пустой список. У подпапки есть и свои группы, и они не смешиваются с группами родителя: groups каждой папки — только её собственный состав. В выдачу по folder_id (отзывы, аналитика) попадают группы папки и её подпапок.

ignored_group_idsсписок чисел

Идентификаторы из group_ids, которые в состав не попали: чужие, удалённые или несуществующие.

curl -X POST "https://example.com/v2/folders" \  -H "Content-Type: application/json" \  -d '{    "name": "Москва",    "group_ids": [      20,      21    ]  }'
{  "id": 12,  "user_id": 6,  "name": "Москва",  "created_at": "2026-07-28T16:50:24",  "parent_folder_id": null,  "groups": [    {      "id": 20,      "name": "Националь"    },    {      "id": 21,      "name": "Метрополь"    }  ],  "subfolders": [],  "ignored_group_ids": []}

Коды ошибок общие для всего API и описаны на странице Ошибки.