LanaChat

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

Читання 6 хвОновлено Markdown

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

Endpoints #

MethodPathDescriptionPermissionStatus
GET/brainsСписок brains (creator_id=)can_enginePlanned
POST/brainsСтворити brain для авторки, порожній або скопійований з іншого (copy_from)can_enginePlanned
GET/brains/{id}Жива версія braincan_enginePlanned
PATCH/brains/{id}Перейменувати або прив’язати до іншої авторкиcan_enginePlanned
DELETE/brains/{id}Видалити brain, який не використовує жоден акаунтcan_enginePlanned
GET/brains/{id}/draftПоточна чернетка та відмінності від живої версіїcan_enginePlanned
PATCH/brains/{id}/draftЗмінити чернетку (фази, правила, налаштування)can_enginePlanned
DELETE/brains/{id}/draftВикинути чернеткуcan_enginePlanned
POST/brains/{id}/publishОпублікувати чернетку; вона стає живою на всіх пов’язаних акаунтахcan_publishPlanned
GET/brains/{id}/versionsОпубліковані версії, спочатку найновішіcan_enginePlanned
POST/brains/{id}/versions/{version}/restoreСкопіювати стару версію в чернеткуcan_enginePlanned
POST/playground/{brain_id}/messageНадіслати тестове повідомлення чернетці та отримати відповідь AIcan_enginePlanned
DELETE/playground/{brain_id}/sessionПочати тестову розмову зановоcan_enginePlanned

Об’єкт 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 }
  ]
}
ПолеТипОпис
idstringПочинається з br_
namestringЙого назва в Console
creator_idstringАвторка, до якої він прив’язаний
versionnumberЖива версія; збільшується на одиницю при кожній публікації
published_atstring або nullКоли жива версія була опублікована, ISO 8601 UTC
has_draftbooleantrue, якщо чернетка відрізняється від живої версії
accountsмасив рядківTelegram акаунти, які відповідають цим brain
phasesмасивЕтапи продажу: key, name та чи кожен enabled

Brains #

Список brains #

GET /brains · can_engine

ПараметрТипОбов’язковийОпис
creator_idstringНіЛише brains цієї авторки
limit, cursornumber, 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_idstringТакДля якої авторки
namestringНіЙого назва в Console
copy_fromstringНі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

ПараметрТипОбов’язковийОпис
namestringНіНова назва
creator_idstringНіПрив’язати до іншої авторки
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

ПараметрТипОбов’язковийОпис
textstringТакЩо пише тестовий фан
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"

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

Останні новини про Lana в Telegram

Нові релізи та запрошення в бету, першими в каналі.