LanaChat

API : AI Brains, brouillons et le Playground

Lecture de 6 minMis à jour Markdown

Un AI Brain contient la façon dont l'IA vend pour une créatrice : ses phases de vente, règles et paramètres. Vous modifiez un brouillon, le testez dans le Playground, puis le publiez ; le brain en direct ne change qu'à la publication. Un brain est lié à une créatrice et peut être réutilisé par ses comptes.

Endpoints #

MéthodeCheminDescriptionPermissionStatut
GET/brainsListe des brains (creator_id=)can_enginePlanned
POST/brainsCréer un brain pour une créatrice, vide ou copié d’un autre (copy_from)can_enginePlanned
GET/brains/{id}La version en direct d’un braincan_enginePlanned
PATCH/brains/{id}Renommer ou relier à une autre créatricecan_enginePlanned
DELETE/brains/{id}Supprimer un brain non utilisé par un comptecan_enginePlanned
GET/brains/{id}/draftLe brouillon actuel et ses différences avec la version en directcan_enginePlanned
PATCH/brains/{id}/draftModifier le brouillon (phases, règles, paramètres)can_enginePlanned
DELETE/brains/{id}/draftSupprimer le brouilloncan_enginePlanned
POST/brains/{id}/publishPublier le brouillon ; il devient actif sur tous les comptes liéscan_publishPlanned
GET/brains/{id}/versionsVersions publiées, la plus récente en premiercan_enginePlanned
POST/brains/{id}/versions/{version}/restoreCopier une ancienne version dans le brouilloncan_enginePlanned
POST/playground/{brain_id}/messageEnvoyer un message test au brouillon et obtenir la réponse de l’IAcan_enginePlanned
DELETE/playground/{brain_id}/sessionRecommencer la conversation testcan_enginePlanned

L’objet brain #

{
  "id": "br_lea_main",
  "name": "Lea · main",
  "creator_id": "cr_lea",
  "version": 12,
  "published_at": "2026-10-04T21:10:00Z",
  "has_draft": true,
  "accounts": ["acc_1001", "acc_1004"],
  "phases": [
    { "key": "warm_up", "name": "Warm up", "enabled": true },
    { "key": "first_offer", "name": "First offer", "enabled": true }
  ]
}
ChampTypeDescription
idstringCommence par br_
namestringSon nom dans la Console
creator_idstringLa créatrice à laquelle il est lié
versionnumberLa version en direct ; augmente de un à chaque publication
published_atstring ou nullDate de publication de la version en direct, ISO 8601 UTC
has_draftbooleantrue si un brouillon diffère de la version en direct
accountstableau de stringsComptes Telegram qui répondent avec ce brain
phasestableauPhases de vente : key, name et si chacune est enabled

Brains #

Lister les brains #

GET /brains · can_engine

ParamètreTypeObligatoireDescription
creator_idstringNonSeulement les brains de cette créatrice
limit, cursornumber, stringNonPagination
curl "https://api.lanachat.ai/v1/brains?creator_id=cr_lea" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
{
  "data": [
    { "id": "br_lea_main", "name": "Lea · main", "creator_id": "cr_lea", "version": 12, "published_at": "2026-10-04T21:10:00Z", "has_draft": true, "accounts": ["acc_1001", "acc_1004"], "phases": [ { "key": "warm_up", "name": "Warm up", "enabled": true }, { "key": "first_offer", "name": "First offer", "enabled": true } ] }
  ],
  "next_cursor": null
}

Créer un brain #

POST /brains · can_engine

ParamètreTypeObligatoireDescription
creator_idstringOuiLa créatrice concernée
namestringNonSon nom dans la Console
copy_fromstringNonId d’un brain à copier ; sans cela le brain démarre vide
curl -X POST https://api.lanachat.ai/v1/brains \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"creator_id": "cr_lea", "name": "Lea · TikTok test", "copy_from": "br_lea_main"}'

La réponse est le nouveau brain (201). Un copy_from qui n’existe pas dans cet espace répond 404.

Obtenir un brain #

GET /brains/{id} · can_engine

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

La réponse est la version en direct, comme dans l’objet brain. Le brouillon se lit avec GET /brains/{id}/draft.

Renommer ou relier un brain #

PATCH /brains/{id} · can_engine

ParamètreTypeObligatoireDescription
namestringNonNouveau nom
creator_idstringNonLe relier à une autre créatrice
curl -X PATCH https://api.lanachat.ai/v1/brains/br_lea_main \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Lea · main FR"}'

La réponse est le brain mis à jour.

Supprimer un brain #

DELETE /brains/{id} · can_engine

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

Un brain encore utilisé par un compte est refusé (409) : reliez d’abord ces comptes à un autre brain.

Brouillons et publication #

Lire le brouillon #

GET /brains/{id}/draft · can_engine

curl https://api.lanachat.ai/v1/brains/br_lea_main/draft \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

La réponse est le brouillon actuel (phases, règles et paramètres) et ses différences avec la version en direct.

Modifier le brouillon #

PATCH /brains/{id}/draft · can_engine

ParamètreTypeObligatoireDescription
phasesarrayNonPhases de vente à modifier
rulesarrayNonRègles à modifier
settingsobjectNonParamètres à modifier, par exemple first_offer_after_messages ou max_discount_percent
curl -X PATCH https://api.lanachat.ai/v1/brains/br_lea_main/draft \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"settings": {"first_offer_after_messages": 6, "max_discount_percent": 20}}'

Seuls les champs envoyés changent. Le brain en direct ne bouge pas tant que vous ne publiez pas.

Supprimer le brouillon #

DELETE /brains/{id}/draft · can_engine

curl -X DELETE https://api.lanachat.ai/v1/brains/br_lea_main/draft \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Le brouillon est supprimé ; la version en direct reste inchangée et has_draft devient false.

Publier le brouillon #

POST /brains/{id}/publish · can_publish

curl -X POST https://api.lanachat.ai/v1/brains/br_lea_main/publish \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
{ "id": "br_lea_main", "version": 13, "published_at": "2026-10-06T14:20:03Z", "has_draft": false }

Le brouillon devient actif sur tous les comptes liés. Publier sans brouillon répond 409. Les profils IA avancés nécessitent leurs propres permissions propriétaires, comme dans la Console. Un webhook brain.published informe votre serveur.

Versions #

Lister les versions #

GET /brains/{id}/versions · can_engine

curl https://api.lanachat.ai/v1/brains/br_lea_main/versions \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

La réponse liste les versions publiées, la plus récente en premier, avec pagination.

Restaurer une version #

POST /brains/{id}/versions/{version}/restore · can_engine

curl -X POST https://api.lanachat.ai/v1/brains/br_lea_main/versions/11/restore \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

L’ancienne version est copiée dans le brouillon. Rien ne change pour les fans tant que vous ne publiez pas. Une version inconnue répond 404.

Playground #

Le Playground parle au brouillon, jamais à un fan. Rien n’est envoyé sur Telegram et rien n’est vendu.

Envoyer un message test #

POST /playground/{brain_id}/message · can_engine

ParamètreTypeObligatoireDescription
textstringOuiCe que le fan test écrit
fanobjectNonLe fan test : language (par exemple en) et is_new
curl -X POST https://api.lanachat.ai/v1/playground/br_lea_main/message \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"text": "hey, are you real?", "fan": {"language": "en", "is_new": true}}'
{
  "reply": { "text": "Haha very real, just slow at typing 🙈 where are you from?", "media": [] },
  "phase": "warm_up",
  "explain": "Phrase bank answer for \"Are you a bot?\", then a question to keep the fan talking."
}
  • reply est ce que l’IA enverrait : texte et média.
  • phase est la phase de vente dans laquelle l’IA se trouve.
  • explain explique en clair pourquoi elle a répondu ainsi.

Chaque appel continue la même conversation test.

Recommencer la conversation test #

DELETE /playground/{brain_id}/session · can_engine

curl -X DELETE https://api.lanachat.ai/v1/playground/br_lea_main/session \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Le prochain message test démarre une nouvelle conversation, comme un nouveau fan.

Les dernières nouvelles de Lana sur Telegram

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