# API: Skripte, Schritte und Ordner

_API · 5 Min. Lesezeit · Aktualisiert 2026-10-22 · https://lanachat.ai/guides/de/api-scripts/_

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](https://lanachat.ai/guides/de/api-conversations/)) | `can_chat` | Planned |

## Das Script-Objekt

```json
{
  "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](https://lanachat.ai/guides/de/api-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](https://lanachat.ai/guides/de/api-overview/) |

```bash
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 |

```bash
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"}}]}'
```

```json
{
  "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`

```bash
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.

```bash
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" |

```bash
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`

```bash
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`

```bash
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 |

```bash
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 |

```bash
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`

```bash
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`

```bash
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](https://lanachat.ai/guides/de/api-conversations/).

## Verwandte Artikel

- [LanaChat API: Schnellstart, Authentifizierung und Fehler](https://lanachat.ai/guides/de/api-overview/)
- [Skripte: schreiben, organisieren und verwenden](https://lanachat.ai/guides/de/scripts/)
- [Skripte vs. KI: wenn der Bot einem Skript folgt](https://lanachat.ai/guides/de/scripts-vs-ai/)
