# API: AI Brains, черновики и Playground

_API · Чтение 6 мин · Обновлено 2026-10-22 · https://lanachat.ai/guides/ru/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 | Живая версия; увеличивается на 1 при каждой публикации |
| `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/ru/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` не существует в этом workspace, ответ `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/ru/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/ru/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`, простое объяснение, почему AI ответил так.

Каждый вызов продолжается в рамках одного тестового разговора.

### Начать тестовый разговор заново

`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/ru/api-overview/)
- [Что такое AI Brain](https://lanachat.ai/guides/ru/what-is-an-ai-brain/)
- [Playground: безопасное тестирование разговора](https://lanachat.ai/guides/ru/playground/)
