LanaChat

API: участники команды, роли и токены доступа

Чтение 6 минОбновлено Markdown

Ваша команда, это люди, работающие в рабочем пространстве. Каждый участник имеет роль (встроенную или пользовательскую), которая определяет, что он может делать, над какими авторами работает, и личный ключ доступа для входа. Токены доступа, это ключи для API и подключения MCP. Все эти эндпоинты требуют токен владельца: в примерах $LANACHAT_TOKEN содержит такой токен.

Эндпоинты #

МетодПутьОписаниеРазрешениеСтатус
GET/membersСписок участников (status=active,disabled, role_id=, q=)ownerPlanned
POST/membersДобавить участника с ролью и авторамиownerPlanned
GET/members/{id}Один участник, последняя активность и переопределенияownerPlanned
PATCH/members/{id}Изменить роль, авторов, переопределения; отключить или включитьownerPlanned
DELETE/members/{id}Удалить участника (его прошлые сообщения сохраняют имя)ownerPlanned
POST/members/{id}/access-keyСоздать личный ключ доступа (показывается один раз)ownerPlanned
POST/members/{id}/invitationОтправить ключ доступа участнику по e-mailownerPlanned
DELETE/members/{id}/access-keyОтозвать ключ участника: он выходит из системыownerPlanned
GET/rolesВстроенные и пользовательские роли с таблицей разрешенийownerPlanned
POST/rolesСоздать пользовательскую рольownerPlanned
PATCH/roles/{id}Переименовать роль или изменить её разрешенияownerPlanned
DELETE/roles/{id}Удалить пользовательскую роль, если у неё нет участниковownerPlanned
GET/tokensТокены доступа API и MCP (include_revoked=true)ownerPlanned
POST/tokensСоздать токен с разрешениями (показывается один раз)ownerPlanned
PATCH/tokens/{id}Переименовать токен или изменить его разрешенияownerPlanned
POST/tokens/{id}/rotateЗаменить секрет; старый сразу перестаёт работатьownerPlanned
DELETE/tokens/{id}Отозвать токенownerPlanned

Объект участника #

{
  "id": "mem_4",
  "name": "Ana",
  "email": "[email protected]",
  "status": "active",
  "role_id": "role_chatter",
  "creator_ids": ["cr_lea", "cr_mia"],
  "overrides": { "billing.read": false, "fans.export": true },
  "access_key": { "active": true, "created_at": "2026-09-20T09:00:00Z" },
  "last_active_at": "2026-10-06T13:40:00Z"
}
ПолеТипОписание
idstringНачинается с mem_
namestringИмя в Console
emailstring или nullКуда отправляется приглашение
statusstringactive или disabled
role_idstringРоль участника
creator_idsмассив строкАвторы, с которыми работает участник
overridesобъектРазрешения, заданные только для этого участника поверх роли
access_keyобъектЕсть ли у него active личный ключ доступа и с какого времени; сам ключ не показывается
last_active_atstring или nullПоследняя активность

Отключённый участник не может войти в систему, но сохраняет историю, роль и авторов.

Объект роли #

{
  "id": "role_chatter",
  "name": "Chatter",
  "builtin": true,
  "permissions": { "live.read": true, "live.reply": true, "fans.read": true, "fans.export": false, "billing.read": false },
  "members": 6
}
ПолеТипОписание
idstringРоль
namestringНазвание роли
builtinbooleantrue для Owner, Manager и Chatter
permissionsобъектКлюч для каждой строки таблицы разрешений, true или false
membersintegerКоличество участников с этой ролью

Ключи разрешений соответствуют строкам таблицы разрешений в Team Management › Roles, сгруппированы по областям: Dashboard, Creators, AI Brain, Conversations, Vault, Scripts, Playground, Telegram и Employees. Owner всегда имеет все разрешения и не может быть изменён. Manager и Chatter встроенные: вы можете менять их разрешения, но не переименовывать и не удалять.

Объект токена доступа #

{
  "id": "tok_31",
  "name": "Reporting script",
  "permissions": ["can_fan_read", "can_sales_read"],
  "status": "active",
  "created_at": "2026-10-06T15:10:00Z",
  "expires_at": "2027-01-04T15:10:00Z"
}
ПолеТипОписание
idstringНачинается с tok_
namestringДо 100 символов, обязательно
permissionsмассив строкРазрешения, которые есть у токена
statusstringАктивен, истёк или отозван
created_at, expires_atstringISO 8601, UTC
tokenstringСекрет, только в ответе при создании или ротации

Участники #

Список участников #

GET /members · owner

ПараметрТипОбязательноОписание
statusstringНетactive или disabled; оба через запятую
role_idstringНетТолько участники с этой ролью
qstringНетЧасть имени
limit, cursornumber, stringНетПагинация
curl "https://api.lanachat.ai/v1/members?status=active&role_id=role_chatter" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
{
  "data": [
    { "id": "mem_4", "name": "Ana", "email": "[email protected]", "status": "active", "role_id": "role_chatter", "creator_ids": ["cr_lea", "cr_mia"], "overrides": {}, "access_key": { "active": true, "created_at": "2026-09-20T09:00:00Z" }, "last_active_at": "2026-10-06T13:40:00Z" }
  ],
  "next_cursor": null
}

Добавить участника #

POST /members · owner

ПараметрТипОбязательноОписание
namestringДаИмя участника
emailstringНетНужно для отправки приглашения
role_idstringДаВстроенная или пользовательская роль
creator_idsмассив строкНетАвторы, с которыми работает участник
curl -X POST https://api.lanachat.ai/v1/members \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Ana", "email": "[email protected]", "role_id": "role_chatter", "creator_ids": ["cr_lea"]}'

Ответ, новый участник (201), активный, без ключа доступа.

Получить участника #

GET /members/{id} · owner

curl https://api.lanachat.ai/v1/members/mem_4 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Ответ, объект участника. Неизвестный id возвращает 404.

Обновить участника #

PATCH /members/{id} · owner

ПараметрТипОбязательноОписание
role_idstringНетНовая роль
creator_idsмассив строкНетЗаменяет список авторов
overridesобъектНетРазрешения только для этого участника
statusstringНетactive или disabled
curl -X PATCH https://api.lanachat.ai/v1/members/mem_4 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"creator_ids": ["cr_lea", "cr_mia"], "overrides": {"fans.export": true}}'

Ответ, обновлённый участник. status: "disabled" сразу блокирует доступ; роль и авторы сохраняются.

Удалить участника #

DELETE /members/{id} · owner

curl -X DELETE https://api.lanachat.ai/v1/members/mem_4 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Участник удаляется, его авторы отвязываются. Прошлые сообщения сохраняют имя. Чтобы сохранить участника для истории, лучше отключите его.

Личные ключи доступа #

Участники команды не используют пароль: они входят с личным ключом доступа. Ключи начинаются с emp_.

Создать ключ доступа #

POST /members/{id}/access-key · owner

curl -X POST https://api.lanachat.ai/v1/members/mem_4/access-key \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
{ "member_id": "mem_4", "sign_in_url": "https://app.lanachat.ai/login/?mode=employee", "access_key": "emp_6Yq2…", "shown_once": true }

Отправьте и адрес входа, и ключ человеку через надёжный канал. Отключённый участник возвращает 409: сначала включите его.

Отправить ключ доступа по e-mail #

POST /members/{id}/invitation · owner

curl -X POST https://api.lanachat.ai/v1/members/mem_4/invitation \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Ключ отправляется на e-mail из карточки участника. Участник без e-mail или отключённый возвращает 409.

Отозвать ключ доступа #

DELETE /members/{id}/access-key · owner

curl -X DELETE https://api.lanachat.ai/v1/members/mem_4/access-key \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Ключ сразу перестаёт работать, участник выходит из системы. Чтобы вернуть доступ, создайте новый ключ.

Роли #

Список ролей #

GET /roles · owner

curl https://api.lanachat.ai/v1/roles \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Список объектов ролей: Owner, Manager, Chatter и ваши пользовательские роли.

Создать пользовательскую роль #

POST /roles · owner

ПараметрТипОбязательноОписание
namestringДаНазвание роли
permissionsобъектНетВключаемые строки; остальные выключены
curl -X POST https://api.lanachat.ai/v1/roles \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Night chatter", "permissions": {"live.read": true, "live.reply": true, "fans.read": true}}'

Ответ, новая роль (201) с builtin: false.

Обновить роль #

PATCH /roles/{id} · owner

ПараметрТипОбязательноОписание
namestringНетНовое имя (только для пользовательских ролей)
permissionsобъектНетСтроки для изменения; остальные сохраняются
curl -X PATCH https://api.lanachat.ai/v1/roles/role_chatter \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"permissions": {"fans.export": false}}'

Изменения применяются сразу ко всем участникам с этой ролью, кроме их собственных переопределений. Редактирование Owner или переименование Manager или Chatter возвращает 409.

Удалить пользовательскую роль #

DELETE /roles/{id} · owner

curl -X DELETE https://api.lanachat.ai/v1/roles/role_night \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Удаление роли, которая ещё есть у участников, возвращает 409: сначала назначьте им другую роль. Встроенные роли удалить нельзя.

Токены доступа #

Список токенов #

GET /tokens · owner

ПараметрТипОбязательноОписание
include_revokedbooleanНетtrue, также показывает отозванные токены
curl "https://api.lanachat.ai/v1/tokens?include_revoked=true" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Список объектов токенов доступа без их секретов.

Создать токен #

POST /tokens · owner

ПараметрТипОбязательноОписание
namestringДаНазначение, до 100 символов
permissionsмассив строкДаРазрешения
expires_in_daysintegerНетСрок действия
curl -X POST https://api.lanachat.ai/v1/tokens \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Reporting script", "permissions": ["can_fan_read", "can_sales_read"], "expires_in_days": 90}'
{ "id": "tok_31", "name": "Reporting script", "token": "lc_live_8f2c1d0e9b7a4c6f", "permissions": ["can_fan_read", "can_sales_read"], "expires_at": "2027-01-04T15:10:00Z" }

token есть только в этом ответе. Токен не может иметь больше прав, чем токен владельца, который его создал. Отсутствие имени возвращает 400.

Обновить токен #

PATCH /tokens/{id} · owner

ПараметрТипОбязательноОписание
namestringНетНовое имя
permissionsмассив строкНетЗаменяет разрешения
curl -X PATCH https://api.lanachat.ai/v1/tokens/tok_31 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"permissions": ["can_sales_read"]}'

Ответ, токен без секрета. Отключение can_engine также убирает разрешения на публикацию, Advanced AI и отчёты экспериментов. Отозванный токен возвращает 409.

Ротация токена #

POST /tokens/{id}/rotate · owner

curl -X POST https://api.lanachat.ai/v1/tokens/tok_31/rotate \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Ответ, токен с новым секретом token, показывается один раз. Старый секрет сразу перестаёт работать, обновите скрипт сразу после. Отозванный токен возвращает 409.

Отозвать токен #

DELETE /tokens/{id} · owner

curl -X DELETE https://api.lanachat.ai/v1/tokens/tok_31 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Токен сразу перестаёт работать. Если токен уже отозван, возвращается 409.

Внимание Токен работает как пароль. Отзывайте его сразу, как перестанете использовать или заподозрите утечку.

Последние новости о Lana в Telegram

Новые релизы и приглашения в бету, первыми в канале.