# API: AI Brains, чернетки та Playground

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

**AI Brain** зберігає, як AI продає для авторки: її етапи продажу, правила та налаштування. Ви змінюєте **чернетку**, тестуєте її в **Playground**, потім **публікуєте**; живий brain змінюється лише при публікації. Brain пов’язаний з однією авторкою і може використовуватися її акаунтами.

## Endpoints

| Method | Path | Description | Permission | Status |
|---|---|---|---|---|
| GET | `/brains` | Список brains (`creator_id=`) | `can_engine` | Planned |
| POST | `/brains` | Створити brain для авторки, порожній або скопійований з іншого (`copy_from`) | `can_engine` | Planned |
| GET | `/brains/{id}` | Жива версія brain | `can_engine` | Planned |
| PATCH | `/brains/{id}` | Перейменувати або прив’язати до іншої авторки | `can_engine` | Planned |
| DELETE | `/brains/{id}` | Видалити brain, який не використовує жоден акаунт | `can_engine` | Planned |
| GET | `/brains/{id}/draft` | Поточна чернетка та відмінності від живої версії | `can_engine` | Planned |
| PATCH | `/brains/{id}/draft` | Змінити чернетку (фази, правила, налаштування) | `can_engine` | Planned |
| DELETE | `/brains/{id}/draft` | Викинути чернетку | `can_engine` | Planned |
| POST | `/brains/{id}/publish` | Опублікувати чернетку; вона стає живою на всіх пов’язаних акаунтах | `can_publish` | Planned |
| GET | `/brains/{id}/versions` | Опубліковані версії, спочатку найновіші | `can_engine` | Planned |
| POST | `/brains/{id}/versions/{version}/restore` | Скопіювати стару версію в чернетку | `can_engine` | Planned |
| POST | `/playground/{brain_id}/message` | Надіслати тестове повідомлення чернетці та отримати відповідь AI | `can_engine` | Planned |
| DELETE | `/playground/{brain_id}/session` | Почати тестову розмову заново | `can_engine` | Planned |

## Об’єкт brain

```json
{
  "id": "br_lea_main",
  "name": "Lea · main",
  "creator_id": "cr_lea",
  "version": 12,
  "published_at": "2026-10-04T21:10:00Z",
  "has_draft": true,
  "accounts": ["acc_1001", "acc_1004"],
  "phases": [
    { "key": "warm_up", "name": "Warm up", "enabled": true },
    { "key": "first_offer", "name": "First offer", "enabled": true }
  ]
}
```

| Поле | Тип | Опис |
|---|---|---|
| `id` | string | Починається з `br_` |
| `name` | string | Його назва в Console |
| `creator_id` | string | Авторка, до якої він прив’язаний |
| `version` | number | Жива версія; збільшується на одиницю при кожній публікації |
| `published_at` | string або null | Коли жива версія була опублікована, ISO 8601 UTC |
| `has_draft` | boolean | `true`, якщо чернетка відрізняється від живої версії |
| `accounts` | масив рядків | Telegram акаунти, які відповідають цим brain |
| `phases` | масив | Етапи продажу: `key`, `name` та чи кожен `enabled` |

## Brains

### Список brains

`GET /brains` · `can_engine`

| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
| `creator_id` | string | Ні | Лише brains цієї авторки |
| `limit`, `cursor` | number, string | Ні | [Пагінація](https://lanachat.ai/guides/uk/api-overview/) |

```bash
curl "https://api.lanachat.ai/v1/brains?creator_id=cr_lea" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

```json
{
  "data": [
    { "id": "br_lea_main", "name": "Lea · main", "creator_id": "cr_lea", "version": 12, "published_at": "2026-10-04T21:10:00Z", "has_draft": true, "accounts": ["acc_1001", "acc_1004"], "phases": [ { "key": "warm_up", "name": "Warm up", "enabled": true }, { "key": "first_offer", "name": "First offer", "enabled": true } ] }
  ],
  "next_cursor": null
}
```

### Створити brain

`POST /brains` · `can_engine`

| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
| `creator_id` | string | Так | Для якої авторки |
| `name` | string | Ні | Його назва в Console |
| `copy_from` | string | Ні | ID brain для копіювання; без нього brain починається порожнім |

```bash
curl -X POST https://api.lanachat.ai/v1/brains \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"creator_id": "cr_lea", "name": "Lea · TikTok test", "copy_from": "br_lea_main"}'
```

Відповідь, новий brain (`201`). Якщо `copy_from` brain не існує в цьому робочому просторі, відповідь `404`.

### Отримати brain

`GET /brains/{id}` · `can_engine`

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

Відповідь, жива версія, як у об’єкті brain. Чернетка читається через `GET /brains/{id}/draft`.

### Перейменувати або переприв’язати brain

`PATCH /brains/{id}` · `can_engine`

| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
| `name` | string | Ні | Нова назва |
| `creator_id` | string | Ні | Прив’язати до іншої авторки |

```bash
curl -X PATCH https://api.lanachat.ai/v1/brains/br_lea_main \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Lea · main FR"}'
```

Відповідь, оновлений brain.

### Видалити brain

`DELETE /brains/{id}` · `can_engine`

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

Brain, який ще використовує акаунт, відхиляється (`409`): спочатку переприв’яжіть ці акаунти до іншого brain.

## Чернетки та публікація

### Прочитати чернетку

`GET /brains/{id}/draft` · `can_engine`

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

Відповідь, поточна чернетка (фази, правила та налаштування) і відмінності від живої версії.

### Змінити чернетку

`PATCH /brains/{id}/draft` · `can_engine`

| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
| `phases` | масив | Ні | Етапи продажу для зміни |
| `rules` | масив | Ні | Правила для зміни |
| `settings` | об’єкт | Ні | Налаштування для зміни, наприклад `first_offer_after_messages` або `max_discount_percent` |

```bash
curl -X PATCH https://api.lanachat.ai/v1/brains/br_lea_main/draft \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"settings": {"first_offer_after_messages": 6, "max_discount_percent": 20}}'
```

Змінюються лише надіслані поля. Живий brain не змінюється, доки ви не опублікуєте.

### Викинути чернетку

`DELETE /brains/{id}/draft` · `can_engine`

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

Чернетка видаляється; жива версія залишається без змін, а `has_draft` стає `false`.

### Опублікувати чернетку

`POST /brains/{id}/publish` · `can_publish`

```bash
curl -X POST https://api.lanachat.ai/v1/brains/br_lea_main/publish \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
```

```json
{ "id": "br_lea_main", "version": 13, "published_at": "2026-10-06T14:20:03Z", "has_draft": false }
```

Чернетка стає живою на всіх пов’язаних акаунтах. Публікація без чернетки відповідає `409`. Розширені AI профілі потребують власних прав власника, як у Console. [Webhook](https://lanachat.ai/guides/uk/api-webhooks/) `brain.published` повідомляє ваш сервер.

## Версії

### Список версій

`GET /brains/{id}/versions` · `can_engine`

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

Відповідь містить список опублікованих версій, спочатку найновіші, [пагіновано](https://lanachat.ai/guides/uk/api-overview/).

### Відновити версію

`POST /brains/{id}/versions/{version}/restore` · `can_engine`

```bash
curl -X POST https://api.lanachat.ai/v1/brains/br_lea_main/versions/11/restore \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
```

Стара версія копіюється в чернетку. Для фанів нічого не змінюється, доки ви не опублікуєте. Невідома версія відповідає `404`.

## Playground

Playground спілкується з **чернеткою**, ніколи з фаном. Нічого не надсилається в Telegram і нічого не продається.

### Надіслати тестове повідомлення

`POST /playground/{brain_id}/message` · `can_engine`

| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
| `text` | string | Так | Що пише тестовий фан |
| `fan` | об’єкт | Ні | Тестовий фан: `language` (наприклад `en`) та `is_new` |

```bash
curl -X POST https://api.lanachat.ai/v1/playground/br_lea_main/message \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"text": "hey, are you real?", "fan": {"language": "en", "is_new": true}}'
```

```json
{
  "reply": { "text": "Haha very real, just slow at typing 🙈 where are you from?", "media": [] },
  "phase": "warm_up",
  "explain": "Phrase bank answer for \"Are you a bot?\", then a question to keep the fan talking."
}
```

- `reply`, що AI надіслав би: текст і медіа.
- `phase`, етап продажу, на якому AI перебуває.
- `explain`, простими словами, чому він так відповів.

Кожен виклик продовжує ту саму тестову розмову.

### Почати тестову розмову заново

`DELETE /playground/{brain_id}/session` · `can_engine`

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

Наступне тестове повідомлення починає нову розмову, як новий фан.

## Пов’язані статті

- [LanaChat API: швидкий старт, автентифікація та помилки](https://lanachat.ai/guides/uk/api-overview/)
- [Що таке AI Brain](https://lanachat.ai/guides/uk/what-is-an-ai-brain/)
- [Playground: безпечно тестуйте розмову](https://lanachat.ai/guides/uk/playground/)
