API: Skripte, Schritte und Ordner
Ein Script ist eine feste Abfolge von Schritten für eine Creatorin: Jeder Schritt besteht aus einem Text, optionalen Medien aus dem Vault, einem Preis in Stars und einer Wartezeit vor dem nächsten Schritt. Skripte liegen in Ordnern. Pro Creatorin kann ein Script als first markiert werden: Es läuft bei neuen Konversationen.
Endpunkte #
| Methode | Pfad | Beschreibung | Berechtigung | Status |
|---|---|---|---|---|
| GET | /scripts | Skripte auflisten (creator_id= erforderlich, folder_id=, active=true) | can_setup | Planned |
| POST | /scripts | Ein Script mit seinen Schritten erstellen | can_setup | Planned |
| GET | /scripts/{id} | Ein Script und seine Schritte | can_setup | Planned |
| PUT | /scripts/{id} | Ein Script ersetzen (Name, Schritte, Ordner, Accounts) | can_setup | Planned |
| PATCH | /scripts/{id} | Ein- oder ausschalten, als first markieren, in Ordner verschieben | can_setup | Planned |
| POST | /scripts/{id}/duplicate | Ein Script kopieren (Kopie ist nie first) | can_setup | Planned |
| DELETE | /scripts/{id} | Ein Script löschen | can_setup | Planned |
| GET | /scripts/folders | Ordner einer Creatorin (creator_id=) | can_setup | Planned |
| POST | /scripts/folders | Einen Ordner erstellen | can_setup | Planned |
| PATCH | /scripts/folders/{id} | Einen Ordner umbenennen | can_setup | Planned |
| DELETE | /scripts/folders/{id} | Einen Ordner löschen; seine Skripte wandern zu "No folder" | can_setup | Planned |
| POST | /conversations/{id}/script | Ein Script in einer Konversation ausführen (siehe Conversations) | can_chat | Planned |
Das Script-Objekt #
{
"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"
}
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Beginnt mit scr_ |
creator_id | string | Die Creatorin, deren Fans es erhalten |
name | string | Name in der Console |
goal | string oder null | Zweck des Scripts, in Ihren Worten |
folder_id | string oder null | Ordner; null bedeutet "No folder" |
active | boolean | false heißt, es läuft nie |
first | boolean | true heißt, es läuft bei neuen Konversationen |
account_ids | array oder null | null heißt alle Telegram-Accounts der Creatorin; Array heißt nur diese (mindestens eins) |
steps | array | Die Schritte in Reihenfolge (siehe unten) |
created_at, updated_at | string | ISO 8601, UTC |
Jeder Schritt hat:
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Beginnt mit st_ |
name | string | Name im Editor |
text | string | Nachricht, die der Fan erhält |
media | array von strings | Medien-IDs aus dem Vault der Creatorin (Vault) |
wait_minutes | Zahl | Wartezeit vor Versand dieses Schritts |
pricing.mode | string | free, vault (jedes Medium zum Vault-Preis) oder paid (ein Preis für den ganzen Schritt) |
pricing.stars | Zahl | Preis in Stars, wenn mode paid ist |
pricing.discount_stars | Zahl | Optionaler reduzierter Preis in Stars |
Setzen von first: true bei einem Script entfernt diese Markierung bei anderen Scripts der Creatorin.
Skripte #
Skripte auflisten #
GET /scripts · can_setup
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
creator_id | string | Ja | Die Creatorin |
folder_id | string | Nein | Nur Skripte dieses Ordners |
active | boolean | Nein | true listet nur aktive Skripte |
limit, cursor | Zahl, string | Nein | Pagination |
curl "https://api.lanachat.ai/v1/scripts?creator_id=cr_lea&active=true" \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Die Antwort ist eine Seite mit Script-Objekten in data und next_cursor. Ohne creator_id antwortet die API mit 400.
Ein Script erstellen #
POST /scripts · can_setup
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
creator_id | string | Ja | Die Creatorin |
name | string | Ja | Name des Scripts |
steps | array | Ja | Die Schritte, wie im Objekt oben (ohne id) |
goal | string | Nein | Zweck |
folder_id | string | Nein | Ordner derselben Creatorin |
account_ids | array von strings | Nein | Nur diese Accounts; weglassen für alle |
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"
}
Die Antwort ist das neue Script (201), aktiv, nicht first, ohne Ordner. Eine Medien-ID aus dem Vault einer anderen Creatorin wird abgelehnt (400).
Ein Script abrufen #
GET /scripts/{id} · can_setup
curl https://api.lanachat.ai/v1/scripts/scr_204 \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Die Antwort ist das Script-Objekt mit allen Schritten.
Ein Script ersetzen #
PUT /scripts/{id} · can_setup
Senden Sie das komplette Script: name, steps, folder_id und account_ids, wie bei Ein Script erstellen. Schritte, die Sie weglassen, werden entfernt.
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}}]}'
Die Antwort ist das aktualisierte Script. Ein leeres account_ids-Array führt zu 400: Verwenden Sie null für alle Accounts.
Einschalten, als first markieren, verschieben #
PATCH /scripts/{id} · can_setup
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
active | boolean | Nein | Ein- oder ausschalten |
first | boolean | Nein | true macht es zum Script für neue Konversationen |
folder_id | string oder null | Nein | Verschieben; null ist "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}'
Die Antwort ist das aktualisierte Script. Das vorherige first-Script der Creatorin verliert first.
Ein Script duplizieren #
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)"
Die Antwort ist die Kopie (201). Die Kopie ist nie first.
Ein Script löschen #
DELETE /scripts/{id} · can_setup
curl -X DELETE https://api.lanachat.ai/v1/scripts/scr_231 \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Ordner #
Ordner auflisten #
GET /scripts/folders · can_setup
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
creator_id | string | Ja | Die Creatorin |
curl "https://api.lanachat.ai/v1/scripts/folders?creator_id=cr_lea" \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Einen Ordner erstellen #
POST /scripts/folders · can_setup
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
creator_id | string | Ja | Die Creatorin |
name | string | Ja | Ordnername |
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"}'
Einen Ordner umbenennen #
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"}'
Einen Ordner löschen #
DELETE /scripts/folders/{id} · can_setup
curl -X DELETE https://api.lanachat.ai/v1/scripts/folders/fld_12 \
-H "Authorization: Bearer $LANACHAT_TOKEN"
Seine Skripte bleiben erhalten und wandern zu "No folder".
Ein Script in einer Konversation ausführen #
POST /conversations/{id}/script · can_chat
Startet ein Script in der Konversation eines Fans: state wird script, bis es endet. Body, Beispiel und Regeln siehe Conversations.