API: scripturi, pași și foldere
Un script este o secvență fixă de pași pentru o creatoare: fiecare pas este un text, media opțională din Vault, un preț în Stars și o așteptare înainte de următorul. Scripturile stau în foldere. Un singur script per creatoare poate fi marcat first: acesta rulează la conversațiile noi.
Endpoints #
| Method | Path | Description | Permission | Status |
|---|---|---|---|---|
| GET | /scripts | Listează scripturile (creator_id= obligatoriu, folder_id=, active=true) | can_setup | Planned |
| POST | /scripts | Creează un script cu pașii săi | can_setup | Planned |
| GET | /scripts/{id} | Un script și pașii săi | can_setup | Planned |
| PUT | /scripts/{id} | Înlocuiește un script (nume, pași, folder, conturi) | can_setup | Planned |
| PATCH | /scripts/{id} | Activează/dezactivează, marchează first, mută într-un folder | can_setup | Planned |
| POST | /scripts/{id}/duplicate | Copiază un script (copie niciodată first) | can_setup | Planned |
| DELETE | /scripts/{id} | Șterge un script | can_setup | Planned |
| GET | /scripts/folders | Folderele unei creatoare (creator_id=) | can_setup | Planned |
| POST | /scripts/folders | Creează un folder | can_setup | Planned |
| PATCH | /scripts/folders/{id} | Redenumește un folder | can_setup | Planned |
| DELETE | /scripts/folders/{id} | Șterge un folder; scripturile lui se mută în "No folder" | can_setup | Planned |
| POST | /conversations/{id}/script | Rulează un script pe o conversație (vezi Conversations) | can_chat | Planned |
Obiectul script #
{
"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"
}
| Field | Type | Description |
|---|---|---|
id | string | Începe cu scr_ |
creator_id | string | Creatoarea căreia îi sunt adresate fanilor |
name | string | Numele în Console |
goal | string sau null | Scopul scriptului, în cuvintele tale |
folder_id | string sau null | Folderul său; null înseamnă "No folder" |
active | boolean | false înseamnă că nu rulează niciodată |
first | boolean | true înseamnă că rulează la conversațiile noi |
account_ids | array sau null | null înseamnă toate conturile Telegram ale creatoarei; un array înseamnă doar acelea (cel puțin unul) |
steps | array | Pașii, în ordine (vezi mai jos) |
created_at, updated_at | string | ISO 8601, UTC |
Fiecare pas are:
| Field | Type | Description |
|---|---|---|
id | string | Începe cu st_ |
name | string | Numele în editor |
text | string | Mesajul primit de fan |
media | array de stringuri | Id-uri media din Vault al creatoarei |
wait_minutes | number | Așteptarea înainte de trimiterea pasului |
pricing.mode | string | free, vault (fiecare media la prețul din Vault) sau paid (un preț pentru tot pasul) |
pricing.stars | number | Prețul în Stars, când mode este paid |
pricing.discount_stars | number | Preț opțional mai mic în Stars |
Setarea first: true pe un script îl scoate din celelalte scripturi ale creatoarei.
Scripturi #
Listează scripturi #
GET /scripts · can_setup
| Parameter | Type | Required | Description |
|---|---|---|---|
creator_id | string | Da | Creatoarea |
folder_id | string | Nu | Doar scripturile din acest folder |
active | boolean | Nu | true listează doar scripturile active |
limit, cursor | number, string | Nu | Paginare |
curl "https://api.lanachat.ai/v1/scripts?creator_id=cr_lea&active=true" \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Răspunsul este o pagină de obiecte script în data, cu next_cursor. Fără creator_id API răspunde cu 400.
Creează un script #
POST /scripts · can_setup
| Parameter | Type | Required | Description |
|---|---|---|---|
creator_id | string | Da | Creatoarea |
name | string | Da | Numele său |
steps | array | Da | Pașii, ca în obiectul de mai sus (fără id) |
goal | string | Nu | Scopul |
folder_id | string | Nu | Un folder al aceleiași creatoare |
account_ids | array de stringuri | Nu | Doar aceste conturi; omite pentru toate |
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"
}
Răspunsul este scriptul nou (201), activ, nu first, fără folder. Un id media din Vault-ul altei creatoare este refuzat (400).
Obține un script #
GET /scripts/{id} · can_setup
curl https://api.lanachat.ai/v1/scripts/scr_204 \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Răspunsul este obiectul script cu toți pașii săi.
Înlocuiește un script #
PUT /scripts/{id} · can_setup
Trimite întregul script: name, steps, folder_id și account_ids, ca la Creează un script. Pașii omişi sunt șterși.
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}}]}'
Răspunsul este scriptul actualizat. Un array gol pentru account_ids răspunde cu 400: folosește null pentru toate conturile.
Activează, marchează first, mută #
PATCH /scripts/{id} · can_setup
| Parameter | Type | Required | Description |
|---|---|---|---|
active | boolean | Nu | Activează sau dezactivează |
first | boolean | Nu | true îl face scriptul pentru conversațiile noi |
folder_id | string sau null | Nu | Mută-l; null înseamnă "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}'
Răspunsul este scriptul actualizat. Scriptul anterior marcat first al creatoarei pierde first.
Duplică un script #
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)"
Răspunsul este copia (201). Copia nu este niciodată first.
Șterge un script #
DELETE /scripts/{id} · can_setup
curl -X DELETE https://api.lanachat.ai/v1/scripts/scr_231 \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Foldere #
Listează foldere #
GET /scripts/folders · can_setup
| Parameter | Type | Required | Description |
|---|---|---|---|
creator_id | string | Da | Creatoarea |
curl "https://api.lanachat.ai/v1/scripts/folders?creator_id=cr_lea" \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Creează un folder #
POST /scripts/folders · can_setup
| Parameter | Type | Required | Description |
|---|---|---|---|
creator_id | string | Da | Creatoarea |
name | string | Da | Numele folderului |
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"}'
Redenumește un folder #
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"}'
Șterge un folder #
DELETE /scripts/folders/{id} · can_setup
curl -X DELETE https://api.lanachat.ai/v1/scripts/folders/fld_12 \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Scripturile lui sunt păstrate și mutate în "No folder".
Rulează un script pe o conversație #
POST /conversations/{id}/script · can_chat
Pornește un script pe conversația unui fan: state devine script până se termină. Corpul, exemplul și regulile sunt în Conversations.