API: AI Brains, черновики и Playground
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 #
{
"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 | Нет | Пагинация |
curl "https://api.lanachat.ai/v1/brains?creator_id=cr_lea" \
-H "Authorization: Bearer $LANACHAT_TOKEN"
{
"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 создаётся пустым |
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
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 | Нет | Привязать к другому автору |
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
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
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 |
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
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
curl -X POST https://api.lanachat.ai/v1/brains/br_lea_main/publish \
-H "Authorization: Bearer $LANACHAT_TOKEN" \
-H "Idempotency-Key: $(uuidgen)"
{ "id": "br_lea_main", "version": 13, "published_at": "2026-10-06T14:20:03Z", "has_draft": false }
Черновик становится живым на всех связанных аккаунтах. Публикация без черновика возвращает 409. Продвинутые AI-профили требуют собственных прав владельца, как в Console. Ваш сервер уведомляется через webhook brain.published.
Версии #
Список версий #
GET /brains/{id}/versions · can_engine
curl https://api.lanachat.ai/v1/brains/br_lea_main/versions \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Ответ, список опубликованных версий, сначала новые, с пагинацией.
Восстановить версию #
POST /brains/{id}/versions/{version}/restore · can_engine
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 |
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}}'
{
"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
curl -X DELETE https://api.lanachat.ai/v1/playground/br_lea_main/session \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Следующее тестовое сообщение начнёт новый разговор, как от нового фаната.