LanaChat

APIa0: scripts, e9tapes et dossiers

Lecture de 5 minMis à jour Markdown

Un script est une se9quence fixe d'e9tapes pour une cre9atricea0: chaque e9tape est un texte, des me9dias optionnels du Vault, un prix en Stars et un de9lai avant la suivante. Les scripts sont range9s dans des dossiers. Un seul script par cre9atrice peut eatre marque9 firsta0: il s'exe9cute sur les nouvelles conversations.

Endpoints #

MethodPathDescriptionPermissionStatus
GET/scriptsLister les scripts (creator_id= obligatoire, folder_id=, active=true)can_setupPlanned
POST/scriptsCre9er un script avec ses e9tapescan_setupPlanned
GET/scripts/{id}Un script et ses e9tapescan_setupPlanned
PUT/scripts/{id}Remplacer un script (nom, e9tapes, dossier, comptes)can_setupPlanned
PATCH/scripts/{id}Activer ou de9sactiver, marquer first, de9placer dans un dossiercan_setupPlanned
POST/scripts/{id}/duplicateCopier un script (la copie n'est jamais first)can_setupPlanned
DELETE/scripts/{id}Supprimer un scriptcan_setupPlanned
GET/scripts/foldersDossiers d'une cre9atrice (creator_id=)can_setupPlanned
POST/scripts/foldersCre9er un dossiercan_setupPlanned
PATCH/scripts/folders/{id}Renommer un dossiercan_setupPlanned
DELETE/scripts/folders/{id}Supprimer un dossiera0; ses scripts vont dans "No folder"can_setupPlanned
POST/conversations/{id}/scriptLancer un script sur une conversation (voir Conversations)can_chatPlanned

The script object #

{
  "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"
}
FieldTypeDescription
idstringCommence par scr_
creator_idstringLa cre9atrice dont les fans le ree7oivent
namestringSon nom dans la Console
goalstring or nullL'objectif du script, avec vos mots
folder_idstring or nullSon dossiera0; null signifie "No folder"
activebooleanfalse signifie qu'il ne s'exe9cute jamais
firstbooleantrue signifie qu'il s'exe9cute sur les nouvelles conversations
account_idsarray or nullnull signifie tous les comptes Telegram de la cre9atricea0; un tableau signifie uniquement ceux-le0 (au moins un)
stepsarrayLes e9tapes, dans l'ordre (voir ci-dessous)
created_at, updated_atstringISO 8601, UTC

Chaque e9tape contienta0:

FieldTypeDescription
idstringCommence par st_
namestringSon nom dans l'e9diteur
textstringLe message ree7u par le fan
mediaarray of stringsIDs me9dias du Vault de la cre9atrice
wait_minutesnumberDe9lai avant l'envoi de cette e9tape
pricing.modestringfree, vault (chaque me9dia e0 son prix Vault) ou paid (un prix pour toute l'e9tape)
pricing.starsnumberLe prix en Stars, si mode est paid
pricing.discount_starsnumberPrix re9duit en Stars, optionnel

Mettre first: true sur un script le retire des autres scripts de la cre9atrice.

Scripts #

List scripts #

GET /scripts · can_setup

ParameterTypeRequiredDescription
creator_idstringYesLa cre9atrice
folder_idstringNoUniquement les scripts de ce dossier
activebooleanNotrue liste uniquement les scripts actifs
limit, cursornumber, stringNoPagination
curl "https://api.lanachat.ai/v1/scripts?creator_id=cr_lea&active=true" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

La re9ponse est une page de script objects dans data, avec next_cursor. Sans creator_id l'API re9pond 400.

Create a script #

POST /scripts · can_setup

ParameterTypeRequiredDescription
creator_idstringYesLa cre9atrice
namestringYesSon nom
stepsarrayYesLes e9tapes, comme dans l'objet ci-dessus (sans id)
goalstringNoSon objectif
folder_idstringNoUn dossier de la meame cre9atrice
account_idsarray of stringsNoUniquement ces comptesa0; laissez vide pour tous
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"
}

La re9ponse est le nouveau script (201), actif, pas first, sans dossier. Un ID me9dia d'un autre Vault de cre9atrice est refuse9 (400).

Get a script #

GET /scripts/{id} · can_setup

curl https://api.lanachat.ai/v1/scripts/scr_204 \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

La re9ponse est le script object avec toutes ses e9tapes.

Replace a script #

PUT /scripts/{id} · can_setup

Envoyez tout le scripta0: name, steps, folder_id et account_ids, comme dans Create a script. Les e9tapes omises sont supprime9es.

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

La re9ponse est le script mis e0 jour. Un tableau account_ids vide re9pond 400a0: utilisez null pour tous les comptes.

Turn on, mark first, move #

PATCH /scripts/{id} · can_setup

ParameterTypeRequiredDescription
activebooleanNoActiver ou de9sactiver
firstbooleanNotrue le rend script des nouvelles conversations
folder_idstring or nullNoDe9placera0; null signifie "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}'

La re9ponse est le script mis e0 jour. L'ancien script first de la cre9atrice perd first.

Duplicate a 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)"

La re9ponse est la copie (201). La copie n'est jamais first.

Delete a script #

DELETE /scripts/{id} · can_setup

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

Folders #

List folders #

GET /scripts/folders · can_setup

ParameterTypeRequiredDescription
creator_idstringYesLa cre9atrice
curl "https://api.lanachat.ai/v1/scripts/folders?creator_id=cr_lea" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Create a folder #

POST /scripts/folders · can_setup

ParameterTypeRequiredDescription
creator_idstringYesLa cre9atrice
namestringYesNom du dossier
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"}'

Rename a 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"}'

Delete a folder #

DELETE /scripts/folders/{id} · can_setup

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

Ses scripts sont conserve9s et vont dans "No folder".

Run a script on a conversation #

POST /conversations/{id}/script · can_chat

Lance un script sur la conversation d'un fana0: state devient script jusqu'e0 la fin. Corps, exemple et re8gles dans Conversations.

Les dernières nouvelles de Lana sur Telegram

Nouveautés et invitations à la bêta, en premier sur le canal.