LanaChat

API: Skripte, Schritte und Ordner

5 Min. LesezeitAktualisiert Markdown

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 #

MethodePfadBeschreibungBerechtigungStatus
GET/scriptsSkripte auflisten (creator_id= erforderlich, folder_id=, active=true)can_setupPlanned
POST/scriptsEin Script mit seinen Schritten erstellencan_setupPlanned
GET/scripts/{id}Ein Script und seine Schrittecan_setupPlanned
PUT/scripts/{id}Ein Script ersetzen (Name, Schritte, Ordner, Accounts)can_setupPlanned
PATCH/scripts/{id}Ein- oder ausschalten, als first markieren, in Ordner verschiebencan_setupPlanned
POST/scripts/{id}/duplicateEin Script kopieren (Kopie ist nie first)can_setupPlanned
DELETE/scripts/{id}Ein Script löschencan_setupPlanned
GET/scripts/foldersOrdner einer Creatorin (creator_id=)can_setupPlanned
POST/scripts/foldersEinen Ordner erstellencan_setupPlanned
PATCH/scripts/folders/{id}Einen Ordner umbenennencan_setupPlanned
DELETE/scripts/folders/{id}Einen Ordner löschen; seine Skripte wandern zu "No folder"can_setupPlanned
POST/conversations/{id}/scriptEin Script in einer Konversation ausführen (siehe Conversations)can_chatPlanned

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"
}
FeldTypBeschreibung
idstringBeginnt mit scr_
creator_idstringDie Creatorin, deren Fans es erhalten
namestringName in der Console
goalstring oder nullZweck des Scripts, in Ihren Worten
folder_idstring oder nullOrdner; null bedeutet "No folder"
activebooleanfalse heißt, es läuft nie
firstbooleantrue heißt, es läuft bei neuen Konversationen
account_idsarray oder nullnull heißt alle Telegram-Accounts der Creatorin; Array heißt nur diese (mindestens eins)
stepsarrayDie Schritte in Reihenfolge (siehe unten)
created_at, updated_atstringISO 8601, UTC

Jeder Schritt hat:

FeldTypBeschreibung
idstringBeginnt mit st_
namestringName im Editor
textstringNachricht, die der Fan erhält
mediaarray von stringsMedien-IDs aus dem Vault der Creatorin (Vault)
wait_minutesZahlWartezeit vor Versand dieses Schritts
pricing.modestringfree, vault (jedes Medium zum Vault-Preis) oder paid (ein Preis für den ganzen Schritt)
pricing.starsZahlPreis in Stars, wenn mode paid ist
pricing.discount_starsZahlOptionaler 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

ParameterTypErforderlichBeschreibung
creator_idstringJaDie Creatorin
folder_idstringNeinNur Skripte dieses Ordners
activebooleanNeintrue listet nur aktive Skripte
limit, cursorZahl, stringNeinPagination
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

ParameterTypErforderlichBeschreibung
creator_idstringJaDie Creatorin
namestringJaName des Scripts
stepsarrayJaDie Schritte, wie im Objekt oben (ohne id)
goalstringNeinZweck
folder_idstringNeinOrdner derselben Creatorin
account_idsarray von stringsNeinNur 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

ParameterTypErforderlichBeschreibung
activebooleanNeinEin- oder ausschalten
firstbooleanNeintrue macht es zum Script für neue Konversationen
folder_idstring oder nullNeinVerschieben; 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

ParameterTypErforderlichBeschreibung
creator_idstringJaDie 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

ParameterTypErforderlichBeschreibung
creator_idstringJaDie Creatorin
namestringJaOrdnername
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.

Die neuesten Nachrichten zu Lana auf Telegram

Neue Releases und Beta-Einladungen, zuerst im Kanal.