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

_API · Читання 6 хв · Оновлено 2026-10-22 · https://lanachat.ai/guides/uk/api-team/_

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

## Кінцеві точки

| Method | Path | Description | Permission | Status |
|---|---|---|---|---|
| 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/uk/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/uk/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 відсутній або учасник відключений, відповідь `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/uk/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` є лише у цій відповіді. Токен ніколи не може мати більше прав, ніж токен owner, який його створив. Відсутність назви дає `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/uk/api-overview/)
- [Управління командою: співробітники та ролі](https://lanachat.ai/guides/uk/team-and-roles/)
- [Користувацькі ролі та таблиця дозволів](https://lanachat.ai/guides/uk/custom-roles/)
- [Персональні ключі доступу](https://lanachat.ai/guides/uk/personal-access-keys/)
