API: скрипти, кроки та папки
Скрипт, це фіксована послідовність кроків для однієї авторки: кожен крок, це текст, необов’язкові медіа з Vault, ціна в Stars і пауза перед наступним кроком. Скрипти зберігаються в папках. Один скрипт на авторку може бути позначений як перший: він запускається у нових розмовах.
Ендпоінти #
| Method | Path | Description | Permission | Status |
|---|---|---|---|---|
| GET | /scripts | Список скриптів (creator_id= обов’язковий, folder_id=, active=true) | can_setup | Planned |
| POST | /scripts | Створити скрипт з кроками | can_setup | Planned |
| GET | /scripts/{id} | Один скрипт та його кроки | can_setup | Planned |
| PUT | /scripts/{id} | Замінити скрипт (назва, кроки, папка, акаунти) | can_setup | Planned |
| PATCH | /scripts/{id} | Увімкнути/вимкнути, позначити першим, перемістити в папку | can_setup | Planned |
| POST | /scripts/{id}/duplicate | Копіювати скрипт (копія ніколи не перша) | can_setup | Planned |
| DELETE | /scripts/{id} | Видалити скрипт | can_setup | Planned |
| GET | /scripts/folders | Папки авторки (creator_id=) | can_setup | Planned |
| POST | /scripts/folders | Створити папку | can_setup | Planned |
| PATCH | /scripts/folders/{id} | Перейменувати папку | can_setup | Planned |
| DELETE | /scripts/folders/{id} | Видалити папку; скрипти переміщуються в "No folder" | can_setup | Planned |
| POST | /conversations/{id}/script | Запустити скрипт у розмові (див. Conversations) | can_chat | Planned |
Об’єкт скрипта #
{
"id": "scr_204",
"creator_id": "cr_lea",
"name": "Welcome message",
"goal": "First sale within the first day",
"folder_id": "fld_12",
"active": true,
"first": true,
"account_ids": null,
"steps": [
{ "id": "st_1", "name": "Hello", "text": "Hey you 😊 glad you found me here", "media": [], "wait_minutes": 0, "pricing": { "mode": "free" } },
{ "id": "st_2", "name": "First set", "text": "Made this one this morning…", "media": ["med_5521", "med_5522"], "wait_minutes": 20, "pricing": { "mode": "paid", "stars": 250, "discount_stars": 200 } }
],
"created_at": "2026-09-30T10:00:00Z",
"updated_at": "2026-10-05T16:22:00Z"
}
| Поле | Тип | Опис |
|---|---|---|
id | string | Починається з scr_ |
creator_id | string | Авторка, чиї фанати отримують скрипт |
name | string | Назва в Console |
goal | string або null | Для чого цей скрипт, вашими словами |
folder_id | string або null | Папка; null означає "No folder" |
active | boolean | false, скрипт ніколи не запускається |
first | boolean | true, запускається у нових розмовах |
account_ids | array або null | null, усі Telegram акаунти авторки; масив, лише ці (мінімум один) |
steps | array | Кроки у порядку (див. нижче) |
created_at, updated_at | string | ISO 8601, UTC |
Кожен крок має:
| Поле | Тип | Опис |
|---|---|---|
id | string | Починається з st_ |
name | string | Назва в редакторі |
text | string | Повідомлення, яке отримує фан |
media | масив рядків | ID медіа з Vault авторки |
wait_minutes | number | Пауза перед відправкою цього кроку |
pricing.mode | string | free, vault (кожне медіа за ціною з Vault) або paid (одна ціна за весь крок) |
pricing.stars | number | Ціна в Stars, коли mode, paid |
pricing.discount_stars | number | Опціональна знижена ціна в Stars |
Встановлення first: true для скрипта знімає цей статус з інших скриптів авторки.
Скрипти #
Список скриптів #
GET /scripts · can_setup
| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
creator_id | string | Так | Авторка |
folder_id | string | Ні | Лише скрипти цієї папки |
active | boolean | Ні | true, лише активні скрипти |
limit, cursor | number, string | Ні | Пагінація |
curl "https://api.lanachat.ai/v1/scripts?creator_id=cr_lea&active=true" \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Відповідь, сторінка об’єктів скриптів у data з next_cursor. Без creator_id API повертає 400.
Створити скрипт #
POST /scripts · can_setup
| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
creator_id | string | Так | Авторка |
name | string | Так | Назва |
steps | array | Так | Кроки, як у об’єкті вище (без id) |
goal | string | Ні | Для чого |
folder_id | string | Ні | Папка тієї ж авторки |
account_ids | масив рядків | Ні | Лише ці акаунти; пропустіть для всіх |
curl -X POST https://api.lanachat.ai/v1/scripts \
-H "Authorization: Bearer $LANACHAT_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"creator_id": "cr_lea", "name": "Win back", "steps": [{"name": "Miss you", "text": "Hey stranger, where did you go?", "wait_minutes": 0, "pricing": {"mode": "free"}}]}'
{
"id": "scr_231",
"creator_id": "cr_lea",
"name": "Win back",
"goal": null,
"folder_id": null,
"active": true,
"first": false,
"account_ids": null,
"steps": [ { "id": "st_1", "name": "Miss you", "text": "Hey stranger, where did you go?", "media": [], "wait_minutes": 0, "pricing": { "mode": "free" } } ],
"created_at": "2026-10-06T14:30:00Z",
"updated_at": "2026-10-06T14:30:00Z"
}
Відповідь, новий скрипт (201), активний, не перший, без папки. ID медіа з Vault іншої авторки відхиляється (400).
Отримати скрипт #
GET /scripts/{id} · can_setup
curl https://api.lanachat.ai/v1/scripts/scr_204 \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Відповідь, об’єкт скрипта з усіма кроками.
Замінити скрипт #
PUT /scripts/{id} · can_setup
Надішліть увесь скрипт: name, steps, folder_id та account_ids, як у Створенні скрипта. Кроки, які пропущені, видаляються.
curl -X PUT https://api.lanachat.ai/v1/scripts/scr_231 \
-H "Authorization: Bearer $LANACHAT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Win back", "folder_id": "fld_12", "account_ids": null, "steps": [{"name": "Miss you", "text": "Hey stranger, where did you go?", "wait_minutes": 0, "pricing": {"mode": "free"}}, {"name": "Gift", "text": "Kept this one for you", "media": ["med_5522"], "wait_minutes": 30, "pricing": {"mode": "paid", "stars": 200}}]}'
Відповідь, оновлений скрипт. Порожній масив account_ids повертає 400: використовуйте null для всіх акаунтів.
Увімкнути, позначити першим, перемістити #
PATCH /scripts/{id} · can_setup
| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
active | boolean | Ні | Увімкнути або вимкнути |
first | boolean | Ні | true робить скрипт першим у нових розмовах |
folder_id | string або null | Ні | Перемістити; null, "No folder" |
curl -X PATCH https://api.lanachat.ai/v1/scripts/scr_231 \
-H "Authorization: Bearer $LANACHAT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"first": true}'
Відповідь, оновлений скрипт. Попередній перший скрипт авторки втрачає first.
Дублювати скрипт #
POST /scripts/{id}/duplicate · can_setup
curl -X POST https://api.lanachat.ai/v1/scripts/scr_204/duplicate \
-H "Authorization: Bearer $LANACHAT_TOKEN" \
-H "Idempotency-Key: $(uuidgen)"
Відповідь, копія (201). Копія ніколи не перша.
Видалити скрипт #
DELETE /scripts/{id} · can_setup
curl -X DELETE https://api.lanachat.ai/v1/scripts/scr_231 \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Папки #
Список папок #
GET /scripts/folders · can_setup
| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
creator_id | string | Так | Авторка |
curl "https://api.lanachat.ai/v1/scripts/folders?creator_id=cr_lea" \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Створити папку #
POST /scripts/folders · can_setup
| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
creator_id | string | Так | Авторка |
name | string | Так | Назва папки |
curl -X POST https://api.lanachat.ai/v1/scripts/folders \
-H "Authorization: Bearer $LANACHAT_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"creator_id": "cr_lea", "name": "Win back"}'
Перейменувати папку #
PATCH /scripts/folders/{id} · can_setup
curl -X PATCH https://api.lanachat.ai/v1/scripts/folders/fld_12 \
-H "Authorization: Bearer $LANACHAT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Welcome"}'
Видалити папку #
DELETE /scripts/folders/{id} · can_setup
curl -X DELETE https://api.lanachat.ai/v1/scripts/folders/fld_12 \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Її скрипти зберігаються і переміщуються в "No folder".
Запустити скрипт у розмові #
POST /conversations/{id}/script · can_chat
Запускає скрипт у розмові з одним фаном: state стає script до завершення. Тіло, приклад і правила, у Conversations.