LanaChat

API: AI Brains, Entwürfe und der Playground

6 Min. LesezeitAktualisiert Markdown

Ein AI Brain enthält, wie die KI für eine Creatorin verkauft: ihre Verkaufsphasen, Regeln und Einstellungen. Sie ändern einen Entwurf, testen ihn im Playground und veröffentlichen ihn dann; das Live-Brain ändert sich erst bei der Veröffentlichung. Ein Brain ist mit einer Creatorin verknüpft und kann von ihren Accounts wiederverwendet werden.

Endpoints #

MethodPathDescriptionPermissionStatus
GET/brainsList brains (creator_id=)can_enginePlanned
POST/brainsCreate a brain for a creator, empty or copied from another (copy_from)can_enginePlanned
GET/brains/{id}The live version of a braincan_enginePlanned
PATCH/brains/{id}Rename it or link it to another creatorcan_enginePlanned
DELETE/brains/{id}Delete a brain no account usescan_enginePlanned
GET/brains/{id}/draftThe current draft and what differs from livecan_enginePlanned
PATCH/brains/{id}/draftChange the draft (phases, rules, settings)can_enginePlanned
DELETE/brains/{id}/draftThrow the draft awaycan_enginePlanned
POST/brains/{id}/publishPublish the draft; it becomes live on every linked accountcan_publishPlanned
GET/brains/{id}/versionsPublished versions, newest firstcan_enginePlanned
POST/brains/{id}/versions/{version}/restoreCopy an old version into the draftcan_enginePlanned
POST/playground/{brain_id}/messageSend a test message to the draft and get the AI's replycan_enginePlanned
DELETE/playground/{brain_id}/sessionStart the test conversation overcan_enginePlanned

The brain object #

{
  "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 }
  ]
}
FieldTypeDescription
idstringBeginnt mit br_
namestringSein Name in der Console
creator_idstringDie Creatorin, mit der es verknüpft ist
versionnumberDie Live-Version; erhöht sich bei jeder Veröffentlichung um eins
published_atstring or nullWann die Live-Version veröffentlicht wurde, ISO 8601 UTC
has_draftbooleantrue, wenn ein Entwurf sich von der Live-Version unterscheidet
accountsarray of stringsTelegram-Accounts, die mit diesem Brain antworten
phasesarrayVerkaufsphasen: key, name und ob jede enabled ist

Brains #

List brains #

GET /brains · can_engine

ParameterTypeRequiredDescription
creator_idstringNeinNur die Brains dieser Creatorin
limit, cursornumber, stringNeinPagination
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
}

Create a brain #

POST /brains · can_engine

ParameterTypeRequiredDescription
creator_idstringJaFür welche Creatorin es ist
namestringNeinSein Name in der Console
copy_fromstringNeinId eines Brains zum Kopieren; ohne startet das Brain leer
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"}'

Die Antwort ist das neue Brain (201). Ein copy_from Brain, das in diesem Workspace nicht existiert, antwortet mit 404.

Get a brain #

GET /brains/{id} · can_engine

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

Die Antwort ist die Live-Version, wie im brain object. Der Entwurf wird mit GET /brains/{id}/draft gelesen.

PATCH /brains/{id} · can_engine

ParameterTypeRequiredDescription
namestringNeinNeuer Name
creator_idstringNeinVerknüpfen mit einer anderen Creatorin
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"}'

Die Antwort ist das aktualisierte Brain.

Delete a brain #

DELETE /brains/{id} · can_engine

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

Ein Brain, das ein Account noch nutzt, wird abgelehnt (409): Verknüpfen Sie diese Accounts zuerst mit einem anderen Brain.

Drafts and publishing #

Read the draft #

GET /brains/{id}/draft · can_engine

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

Die Antwort ist der aktuelle Entwurf (Phasen, Regeln und Einstellungen) und was sich von der Live-Version unterscheidet.

Change the draft #

PATCH /brains/{id}/draft · can_engine

ParameterTypeRequiredDescription
phasesarrayNeinZu ändernde Verkaufsphasen
rulesarrayNeinZu ändernde Regeln
settingsobjectNeinZu ändernde Einstellungen, z. B. first_offer_after_messages oder 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}}'

Nur die gesendeten Felder ändern sich. Das Live-Brain ändert sich erst bei der Veröffentlichung.

Throw the draft away #

DELETE /brains/{id}/draft · can_engine

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

Der Entwurf wird gelöscht; die Live-Version bleibt unverändert und has_draft wird false.

Publish the draft #

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 }

Der Entwurf wird auf jedem verknüpften Account live. Veröffentlichen ohne Entwurf antwortet mit 409. Erweiterte KI-Profile benötigen eigene Besitzerrechte, wie in der Console. Ein webhook brain.published informiert Ihren Server.

Versions #

List versions #

GET /brains/{id}/versions · can_engine

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

Die Antwort listet die veröffentlichten Versionen, neueste zuerst, paginierbar.

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

Die alte Version wird in den Entwurf kopiert. Für Fans ändert sich nichts, bis Sie veröffentlichen. Eine unbekannte Version antwortet mit 404.

Playground #

Der Playground spricht mit dem Entwurf, nie mit einem Fan. Es wird nichts an Telegram gesendet und nichts verkauft.

Send a test message #

POST /playground/{brain_id}/message · can_engine

ParameterTypeRequiredDescription
textstringJaWas der Testfan schreibt
fanobjectNeinDer Testfan: language (z. B. en) und 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 ist, was die KI senden würde: Text und Medien.
  • phase ist die Verkaufsphase, in der sich die KI befindet.
  • explain erklärt auf einfachem Englisch, warum sie so geantwortet hat.

Jeder Aufruf setzt das gleiche Testgespräch fort.

Start the test conversation over #

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"

Die nächste Testnachricht startet ein neues Gespräch, als neuer Fan.

Die neuesten Nachrichten zu Lana auf Telegram

Neue Releases und Beta-Einladungen, zuerst im Kanal.