LanaChat

API: creators, identity and persona

6 min readUpdated Markdown

A creator is a person your agency runs on Telegram. She has an identity (who she is), a persona (how she talks, in eight pages) and links to her Telegram accounts, her AI Brain, her Vault and her scripts. These endpoints match the Creators page of the Console.

Endpoints #

MethodPathDescriptionPermissionStatus
GET/creatorsList creators (status=active,paused,archived, q= name search)can_setup or can_fan_readPlanned
POST/creatorsCreate a creator (name required)can_setupPlanned
GET/creators/{id}One creator with her setup progresscan_setup or can_fan_readPlanned
PATCH/creators/{id}Rename, change her photo, time zone or linked braincan_setupPlanned
POST/creators/{id}/pausePause her: the AI stops answering on all her accountscan_setupPlanned
POST/creators/{id}/resumeResume a paused creatorcan_setupPlanned
DELETE/creators/{id}Archive her (her fans and sales are kept)can_setupPlanned
GET/creators/{id}/identityHer identity cardcan_setupPlanned
PUT/creators/{id}/identityReplace her identity cardcan_setupPlanned
GET/creators/{id}/personaThe eight persona pages and how complete they arecan_enginePlanned
PATCH/creators/{id}/personaChange one or more persona pagescan_enginePlanned
GET/creators/{id}/setupThe Setup card: each step and whether it is donecan_setupPlanned

The creator object #

{
  "id": "cr_lea",
  "name": "Lea",
  "status": "active",
  "photo_url": "https://cdn.lanachat.ai/w/7Hq2/cr_lea/photo.jpg",
  "timezone": "Europe/Paris",
  "brain_id": "br_lea_main",
  "accounts": { "total": 3, "connected": 2 },
  "setup": { "done": 5, "total": 7 },
  "created_at": "2026-08-14T09:12:00Z",
  "updated_at": "2026-10-05T18:40:11Z"
}
FieldTypeDescription
idstringStarts with cr_
namestringHer name in the Console
statusstringactive, paused or archived
photo_urlstring or nullHer photo
timezonestringIANA time zone, for example Europe/Paris
brain_idstring or nullThe AI Brain linked to her
accountsobjectCounts of her Telegram accounts: total, connected
setupobjectSteps of the Setup card done out of total
created_at, updated_atstringISO 8601, UTC

A paused creator keeps her accounts connected but the AI does not answer; scripts already running stop at their next step.

Creators #

List creators #

GET /creators · can_setup or can_fan_read

ParameterTypeRequiredDescription
statusstringNoactive, paused or archived; several separated by commas
qstringNoPart of her name
limit, cursornumber, stringNoPagination
curl "https://api.lanachat.ai/v1/creators?status=active,paused" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
{
  "data": [
    { "id": "cr_lea", "name": "Lea", "status": "active", "photo_url": "https://cdn.lanachat.ai/w/7Hq2/cr_lea/photo.jpg", "timezone": "Europe/Paris", "brain_id": "br_lea_main", "accounts": { "total": 3, "connected": 2 }, "setup": { "done": 5, "total": 7 }, "created_at": "2026-08-14T09:12:00Z", "updated_at": "2026-10-05T18:40:11Z" },
    { "id": "cr_mia", "name": "Mia", "status": "paused", "photo_url": null, "timezone": "Europe/Rome", "brain_id": "br_mia_main", "accounts": { "total": 2, "connected": 2 }, "setup": { "done": 7, "total": 7 }, "created_at": "2026-07-02T11:00:00Z", "updated_at": "2026-10-01T08:15:00Z" }
  ],
  "next_cursor": null
}

Create a creator #

POST /creators · can_setup

ParameterTypeRequiredDescription
namestringYesHer name in the Console
timezonestringNoIANA time zone
curl -X POST https://api.lanachat.ai/v1/creators \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Lea", "timezone": "Europe/Paris"}'
{
  "id": "cr_lea",
  "name": "Lea",
  "status": "active",
  "photo_url": null,
  "timezone": "Europe/Paris",
  "brain_id": null,
  "accounts": { "total": 0, "connected": 0 },
  "setup": { "done": 0, "total": 7 },
  "created_at": "2026-10-06T14:00:00Z",
  "updated_at": "2026-10-06T14:00:00Z"
}

The answer is the new creator (201). She starts with an empty identity and persona, no account and no brain: the setup counter shows what is left, like the Setup card in the Console. A missing name answers 400.

Get a creator #

GET /creators/{id} · can_setup or can_fan_read

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

The answer is the creator object. An unknown id answers 404.

Update a creator #

PATCH /creators/{id} · can_setup

ParameterTypeRequiredDescription
namestringNoNew name
timezonestringNoIANA time zone
brain_idstring or nullNoThe brain to link; null unlinks it
curl -X PATCH https://api.lanachat.ai/v1/creators/cr_lea \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"timezone": "Europe/Madrid", "brain_id": "br_lea_main"}'

The answer is the updated creator. A brain_id of another workspace answers 404.

Pause and resume #

POST /creators/{id}/pause and POST /creators/{id}/resume · can_setup

curl -X POST https://api.lanachat.ai/v1/creators/cr_lea/pause \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Pausing stops the AI on all her accounts at once; resume turns it back on. Both answer the creator object with its new status.

Archive a creator #

DELETE /creators/{id} · can_setup

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

The answer is the creator with status: "archived". Her fans and sales are kept and still count in your stats.

Identity #

Get the identity #

GET /creators/{id}/identity · can_setup

curl https://api.lanachat.ai/v1/creators/cr_lea/identity \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

The answer has the same fields as the identity below.

Replace the identity #

PUT /creators/{id}/identity · can_setup

ParameterTypeRequiredDescription
first_namestringNoHer first name, as fans know it
nicknamesarray of stringsNoShort names she answers to
date_of_birthstringNoYYYY-MM-DD; she must be 18 or older
nationalitystringNoTwo-letter country code, for example FR
languagesarray of stringsNoLanguages she speaks, for example ["fr", "en"]
curl -X PUT https://api.lanachat.ai/v1/creators/cr_lea/identity \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"first_name": "Lea", "nicknames": ["Lele"], "date_of_birth": "2001-04-12", "nationality": "FR", "languages": ["fr", "en"]}'
{
  "first_name": "Lea",
  "nicknames": ["Lele"],
  "date_of_birth": "2001-04-12",
  "zodiac_sign": "aries",
  "nationality": "FR",
  "languages": ["fr", "en"]
}

zodiac_sign is computed from the date of birth. A creator under 18 is refused (400). PUT replaces the whole card: a field you leave out is emptied.

Persona #

The persona has the same eight pages as the Console: appearance, life, voice, mimic, personality, memory, boundaries, examples. Each page is an object of text fields; PATCH changes only the pages you send.

Get the persona #

GET /creators/{id}/persona · can_engine

curl https://api.lanachat.ai/v1/creators/cr_lea/persona \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

The answer has the same shape as below, with all eight pages.

Change persona pages #

PATCH /creators/{id}/persona · can_engine

ParameterTypeRequiredDescription
appearance, life, voice, mimic, personality, memory, boundaries, examplesobjectAt least oneThe pages to change; the others are kept
curl -X PATCH https://api.lanachat.ai/v1/creators/cr_lea/persona \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"voice": {"style": "Short, warm, a few emojis, never formal.", "phrase_bank": [{"trigger": "Are you a bot?", "reply": "Haha no, just slow at typing"}]}}'
{
  "complete_percent": 64,
  "pages": {
    "voice": { "style": "Short, warm, a few emojis, never formal.", "phrase_bank": [ { "trigger": "Are you a bot?", "reply": "Haha no, just slow at typing" } ], "complete": true },
    "mimic": { "enabled": false, "lines": [], "complete": false }
  },
  "reply_language": "fr"
}

Tip The persona feeds every brain linked to the creator. Change it in a quiet hour, then test the brain in the Playground before peak time.

Setup progress #

Get the Setup card #

GET /creators/{id}/setup · can_setup

curl https://api.lanachat.ai/v1/creators/cr_lea/setup \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

The answer lists each step of the Setup card of the Console and whether it is done. setup in the creator object is the same progress as a counter (done out of total).

Latest news about Lana on Telegram

New releases and beta invites, first in the channel.