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 | Жива версія; збільшується на одиницю при кожній публікації |
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 brain не існує в цьому робочому просторі, відповідь 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, простими словами, чому він так відповів.
Кожен виклик продовжує ту саму тестову розмову.
Почати тестову розмову заново #
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"
Наступне тестове повідомлення починає нову розмову, як новий фан.