К содержанию
API v3

Аккаунт и команда

Участники и доступ

Приглашайте участников, выдавайте роли и доступ к папкам, закрывайте чужие входы

Markdown для нейросетей Актуально на 21.09.2026

Свой профиль и активные входы


69. Изменить свой профиль

В API с 08.09.2026

Раньше профиль только читался (GET /user) — поменять было нельзя даже часовой пояс, от которого зависят все даты в отчётах и выгрузках.

POST/user

Поле Тип Описание
name string 3–255 символов. Имя владельца попадает и в название его аккаунтов.
lang string Язык интерфейса и писем.
timezone string Часовой пояс, например Asia/Novosibirsk.
theme string light, dark, auto.
subscribe_action boolean Письма о событиях в опросах.
subscribe_billing boolean Письма о списаниях и тарифе.
subscribe_marketing boolean Рекламные письма.

Передавать можно любое подмножество. Подписки внутри записываются тройкой, и незаданные берутся из текущего состояния — отказ от рекламных писем не выключает письма о списаниях.

Пустой запрос — 422 с кодом nothing_to_update.

Смены почты и пароля здесь нет: там код из письма и текущий пароль. Аватара тоже — это загрузка картинки. Удаления аккаунта — тем более.

Если часть полей записалась, а часть нет — 400 с кодом partially_saved, списком failed и фактическим состоянием в profile.

JSON
{
    "status": true,
    "profile": {"name": "Иван Сидоров", "lang": "ru", "timezone": "Asia/Novosibirsk",
                "theme": "light", "subscribe_action": true, "subscribe_billing": true,
                "subscribe_marketing": false}
}

70. Активные входы в аккаунт

В API с 08.09.2026

Где человек ещё залогинен, с какого устройства и когда заходил.

GET/user/sessions

Список входов ведётся только при хранении сессий в Redis. Если хранилище другое, ответ — 400 с кодом not_supported, а не пустой список.


71. Закрыть вход

В API с 08.09.2026

POST/user/sessions/close

Поле Тип Описание
session_id string Закрыть один вход.
confirm_close_all boolean Обязателен, если session_id не передан.

Без session_id закрываются все входы, включая текущий вход человека в кабинет: у запроса по ключу своей сессии нет, и исключать нечего. Поэтому нужно подтверждение — иначе владелец аккаунта неожиданно окажется разлогинен.

Закрыть можно только свой вход: session_id сверяется со списком входов аккаунта. Неизвестный или чужой вход — 400 с кодом session_not_found.


Участники аккаунта, роли и доступ к папкам

Приглашение, снятие, смена роли и правка ролей требуют право участника member_crud; доступ к папке — право invite_members с учётом автора папки (у прав есть значение «только свои»). Чтение состава и ролей — обычный доступ к аккаунту.

Роль и папки всегда сверяются с этим же аккаунтом: чужая роль дала бы приглашённому права из чужого набора, чужая папка — доступ к чужим опросам. Роль владельца не назначается никому и не правится: она одна на аккаунт.


85. Участники аккаунта

В API с 08.09.2026

GET/workspace/{workspace_id}/members

Параметр Тип Описание
status string all (по умолчанию), active, pending — приглашённые, но не принявшие приглашение.
limit integer 1–500, по умолчанию 100.
offset integer

У записи участника есть поле active: false означает, что приглашение ещё не принято.


86. Пригласить участника

В API с 08.09.2026

POST/workspace/{workspace_id}/members

Поле Тип Обязательное Описание
email string Да Адрес приглашения.
name string Да 3–250 символов.
role_id integer Да Роль этого аккаунта, кроме роли владельца.
folder_ids array Нет Папки аккаунта. Пустой список означает доступ ко всем папкам: без папок человек не увидел бы ни одного опроса.
comment string Нет 3–250 символов.

Тарифный лимит участников исчерпан — 403 с blocked_by_tariff. Чужая или владельческая роль — 400 с кодом role_not_found, чужая папка — 400 с кодом folder_not_found.

Адрес уже в аккаунте — 400 с кодом member_already. Это отдельный код, а не общий invite_failed: повторное приглашение — обычный случай автоматизации, и отличать его от настоящего сбоя записи нужно без разбора текста.


87. Снять участника, переслать приглашение

В API с 08.09.2026

Действие HTTP
Снять DELETE /workspace/{workspace_id}/members/{memberId}
Переслать приглашение POST /workspace/{workspace_id}/members/{memberId}/resend-invite

88. Роль и папки участника

В API с 08.09.2026

Действие HTTP Поле
Сменить роль POST /workspace/{workspace_id}/members/{memberId}/role role_id
Заменить набор папок POST /workspace/{workspace_id}/members/{memberId}/folders folder_ids

Набор папок заменяется целиком, поэтому передавать его надо всегда — в том числе пустым, если доступ снимают. Отсутствие поля даёт 422.


89. Права одного участника

В API с 08.09.2026

GET/workspace/{workspace_id}/members/{memberId}/access

Отдаёт разобранный набор прав: то же, чем руководствуются проверки доступа. Участник другого аккаунта — 400 с кодом member_not_found.


90. Роли аккаунта

В API с 08.09.2026

Действие HTTP
Список с правами GET /workspace/{workspace_id}/roles
Создать или изменить POST /workspace/{workspace_id}/roles
Удалить DELETE /workspace/{workspace_id}/roles/{roleId}

Тело записи: name (3–250), permissions — список {name, value}, где value это allowed, forbidden или partially («только свои опросы»). Без role_id заводится новая роль, с ним правится существующая.

Новая роль с уже занятым именем не заводится — 400 с кодом duplicate_name: в списке такие роли неразличимы, и «назначь роль Менеджер» становится неоднозначным.

Правится и удаляется только роль этого аккаунта и не роль владельца: чужая роль — 400. Носители удалённой роли переводятся на роль member того же аккаунта.

Права по папкам. Необязательное поле folder_permissions задаёт отличия для отдельных папок: список записей {folder_id, permissions}, где permissions — это «имя права → значение». Поле не передали — отличия не меняются, пустой массив [] снимает все, папка чужого аккаунта отбрасывается молча. В ответе списка ролей рядом с folder_id приходит name папки; удалённых папок в ответе не бывает.

По папкам настраиваются create_quiz, edit_quiz, rename_quiz, copy_quiz, delete_quiz, answers_delete, view_results, settings, integrations, copy_in_folder, move_in_folder, rename_folder, delete_folder. Остальные права описывают аккаунт целиком, значение по папке для них сохранится, но применяться не будет.


91. Доступ участников к папке

В API с 08.09.2026

POST/workspace/{workspace_id}/folders/{folderId}/access

Поле Тип Обязательное Описание
action string Да members — состав, add, remove.
member_id integer Кроме members

Отказы приходят кодом: member_not_found, member_already_in_folder, member_not_in_folder, self_remove (у себя доступ снять нельзя — участник остался бы без единственной папки).