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

Изменить папку

Доступ для AI:

Переименовывает, переносит и меняет состав папки за один вызов. Меняется только то, что передано.

group_ids заменяет состав целиком, а не дополняет его. Чтобы добавить один объект, передайте её вместе с теми, что уже лежат в папке.

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

PATCH
/v2/folders/{folder_id}

Параметры

folder_idчислообязательный

Папка, которую нужно изменить.

Тело запроса

nameстрока

Новое название, 1–255 символов. Не передано – остаётся прежним.

parent_folder_idчисло

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

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

Новый состав папки целиком. Пустой список очищает состав.

Ответ

idчисло

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

user_idчисло

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

nameстрока

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

created_atдата и время

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

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

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

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

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

groups[].idчисло

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

groups[].nameстрока

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

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

Подпапки этой папки, по названию по алфавиту.

subfolders[].idчисло

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

subfolders[].user_idчисло

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

subfolders[].nameстрока

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

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

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

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

Папка-родитель.

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

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

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

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

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

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

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

Всегда пусто: глубина ограничена двумя уровнями.

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 PATCH "https://example.com/v2/folders/0" \  -H "Content-Type: application/json" \  -d '{    "name": "Москва и область",    "group_ids": [      20,      21,      22,      99    ]  }'
{  "id": 12,  "user_id": 6,  "name": "Москва и область",  "created_at": "2026-07-28T16:50:24",  "parent_folder_id": null,  "groups": [    {      "id": 20,      "name": "Националь"    },    {      "id": 21,      "name": "Метрополь"    },    {      "id": 22,      "name": "Балчуг"    }  ],  "subfolders": [    {      "id": 13,      "user_id": 6,      "name": "Центр",      "created_at": "2026-07-28T16:52:11",      "parent_folder_id": 12,      "groups": [        {          "id": 22,          "name": "Балчуг"        }      ],      "subfolders": []    }  ],  "ignored_group_ids": [    99  ]}

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