# API: скрипти, кроки та папки

_API · Читання 5 хв · Оновлено 2026-10-22 · https://lanachat.ai/guides/uk/api-scripts/_

**Скрипт**, це фіксована послідовність кроків для однієї авторки: кожен крок, це текст, необов’язкові медіа з 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](https://lanachat.ai/guides/uk/api-conversations/)) | `can_chat` | Planned |

## Об’єкт скрипта

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

| Поле | Тип | Опис |
|---|---|---|
| `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](https://lanachat.ai/guides/uk/api-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 | Ні | [Пагінація](https://lanachat.ai/guides/uk/api-overview/) |

```bash
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` | масив рядків | Ні | Лише ці акаунти; пропустіть для всіх |

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

Відповідь, новий скрипт (`201`), активний, не перший, без папки. ID медіа з Vault іншої авторки відхиляється (`400`).

### Отримати скрипт

`GET /scripts/{id}` · `can_setup`

```bash
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`, як у Створенні скрипта. Кроки, які пропущені, видаляються.

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

Відповідь, оновлений скрипт. Порожній масив `account_ids` повертає `400`: використовуйте `null` для всіх акаунтів.

### Увімкнути, позначити першим, перемістити

`PATCH /scripts/{id}` · `can_setup`

| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
| `active` | boolean | Ні | Увімкнути або вимкнути |
| `first` | boolean | Ні | `true` робить скрипт першим у нових розмовах |
| `folder_id` | string або null | Ні | Перемістити; `null`, "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}'
```

Відповідь, оновлений скрипт. Попередній перший скрипт авторки втрачає `first`.

### Дублювати скрипт

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

Відповідь, копія (`201`). Копія ніколи не перша.

### Видалити скрипт

`DELETE /scripts/{id}` · `can_setup`

```bash
curl -X DELETE https://api.lanachat.ai/v1/scripts/scr_231 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

## Папки

### Список папок

`GET /scripts/folders` · `can_setup`

| Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
| `creator_id` | string | Так | Авторка |

```bash
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 | Так | Назва папки |

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

### Перейменувати папку

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

### Видалити папку

`DELETE /scripts/folders/{id}` · `can_setup`

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

## Пов’язані статті

- [LanaChat API: швидкий старт, автентифікація та помилки](https://lanachat.ai/guides/uk/api-overview/)
- [Скрипти: писати, організовувати та використовувати](https://lanachat.ai/guides/uk/scripts/)
- [Скрипти проти AI: коли бот слідує скрипту](https://lanachat.ai/guides/uk/scripts-vs-ai/)
