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

_API · Чтение 6 мин · Обновлено 2026-10-22 · https://lanachat.ai/guides/ru/api-team/_

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

## Эндпоинты

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

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

```json
{
  "id": "mem_4",
  "name": "Ana",
  "email": "ana@mia-agency.com",
  "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"
}
```

| Поле | Тип | Описание |
|---|---|---|
| `id` | string | Начинается с `mem_` |
| `name` | string | Имя в Console |
| `email` | string или null | Куда отправляется приглашение |
| `status` | string | `active` или `disabled` |
| `role_id` | string | Роль участника |
| `creator_ids` | массив строк | Авторы, с которыми работает участник |
| `overrides` | объект | Разрешения, заданные только для этого участника поверх роли |
| `access_key` | объект | Есть ли у него `active` личный ключ доступа и с какого времени; сам ключ не показывается |
| `last_active_at` | string или null | Последняя активность |

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

## Объект роли

```json
{
  "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
}
```

| Поле | Тип | Описание |
|---|---|---|
| `id` | string | Роль |
| `name` | string | Название роли |
| `builtin` | boolean | `true` для Owner, Manager и Chatter |
| `permissions` | объект | Ключ для каждой строки таблицы разрешений, `true` или `false` |
| `members` | integer | Количество участников с этой ролью |

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

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

```json
{
  "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"
}
```

| Поле | Тип | Описание |
|---|---|---|
| `id` | string | Начинается с `tok_` |
| `name` | string | До 100 символов, обязательно |
| `permissions` | массив строк | [Разрешения](https://lanachat.ai/guides/ru/api-overview/), которые есть у токена |
| `status` | string | Активен, истёк или отозван |
| `created_at`, `expires_at` | string | ISO 8601, UTC |
| `token` | string | Секрет, только в ответе при создании или ротации |

## Участники

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

`GET /members` · `owner`

| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| `status` | string | Нет | `active` или `disabled`; оба через запятую |
| `role_id` | string | Нет | Только участники с этой ролью |
| `q` | string | Нет | Часть имени |
| `limit`, `cursor` | number, string | Нет | [Пагинация](https://lanachat.ai/guides/ru/api-overview/) |

```bash
curl "https://api.lanachat.ai/v1/members?status=active&role_id=role_chatter" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

```json
{
  "data": [
    { "id": "mem_4", "name": "Ana", "email": "ana@mia-agency.com", "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`

| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| `name` | string | Да | Имя участника |
| `email` | string | Нет | Нужно для отправки приглашения |
| `role_id` | string | Да | Встроенная или пользовательская роль |
| `creator_ids` | массив строк | Нет | Авторы, с которыми работает участник |

```bash
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": "ana@mia-agency.com", "role_id": "role_chatter", "creator_ids": ["cr_lea"]}'
```

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

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

`GET /members/{id}` · `owner`

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

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

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

`PATCH /members/{id}` · `owner`

| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| `role_id` | string | Нет | Новая роль |
| `creator_ids` | массив строк | Нет | Заменяет список авторов |
| `overrides` | объект | Нет | Разрешения только для этого участника |
| `status` | string | Нет | `active` или `disabled` |

```bash
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`

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

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

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

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

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

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

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

```json
{ "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`

```bash
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`

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

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

## Роли

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

`GET /roles` · `owner`

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

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

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

`POST /roles` · `owner`

| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| `name` | string | Да | Название роли |
| `permissions` | объект | Нет | Включаемые строки; остальные выключены |

```bash
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`

| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| `name` | string | Нет | Новое имя (только для пользовательских ролей) |
| `permissions` | объект | Нет | Строки для изменения; остальные сохраняются |

```bash
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`

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

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

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

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

`GET /tokens` · `owner`

| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| `include_revoked` | boolean | Нет | `true`, также показывает отозванные токены |

```bash
curl "https://api.lanachat.ai/v1/tokens?include_revoked=true" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

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

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

`POST /tokens` · `owner`

| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| `name` | string | Да | Назначение, до 100 символов |
| `permissions` | массив строк | Да | [Разрешения](https://lanachat.ai/guides/ru/api-overview/) |
| `expires_in_days` | integer | Нет | Срок действия |

```bash
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}'
```

```json
{ "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`

| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
| `name` | string | Нет | Новое имя |
| `permissions` | массив строк | Нет | Заменяет разрешения |

```bash
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`

```bash
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`

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

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

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

## Похожие статьи

- [LanaChat API: быстрое начало, аутентификация и ошибки](https://lanachat.ai/guides/ru/api-overview/)
- [Управление командой: сотрудники и роли](https://lanachat.ai/guides/ru/team-and-roles/)
- [Пользовательские роли и таблица разрешений](https://lanachat.ai/guides/ru/custom-roles/)
- [Персональные ключи доступа](https://lanachat.ai/guides/ru/personal-access-keys/)
