API: creators, identity and persona
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 #
| Method | Path | Description | Permission | Status |
|---|---|---|---|---|
| GET | /creators | List creators (status=active,paused,archived, q= name search) | can_setup or can_fan_read | Planned |
| POST | /creators | Create a creator (name required) | can_setup | Planned |
| GET | /creators/{id} | One creator with her setup progress | can_setup or can_fan_read | Planned |
| PATCH | /creators/{id} | Rename, change her photo, time zone or linked brain | can_setup | Planned |
| POST | /creators/{id}/pause | Pause her: the AI stops answering on all her accounts | can_setup | Planned |
| POST | /creators/{id}/resume | Resume a paused creator | can_setup | Planned |
| DELETE | /creators/{id} | Archive her (her fans and sales are kept) | can_setup | Planned |
| GET | /creators/{id}/identity | Her identity card | can_setup | Planned |
| PUT | /creators/{id}/identity | Replace her identity card | can_setup | Planned |
| GET | /creators/{id}/persona | The eight persona pages and how complete they are | can_engine | Planned |
| PATCH | /creators/{id}/persona | Change one or more persona pages | can_engine | Planned |
| GET | /creators/{id}/setup | The Setup card: each step and whether it is done | can_setup | Planned |
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"
}
| Field | Type | Description |
|---|---|---|
id | string | Starts with cr_ |
name | string | Her name in the Console |
status | string | active, paused or archived |
photo_url | string or null | Her photo |
timezone | string | IANA time zone, for example Europe/Paris |
brain_id | string or null | The AI Brain linked to her |
accounts | object | Counts of her Telegram accounts: total, connected |
setup | object | Steps of the Setup card done out of total |
created_at, updated_at | string | ISO 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
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | active, paused or archived; several separated by commas |
q | string | No | Part of her name |
limit, cursor | number, string | No | Pagination |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Her name in the Console |
timezone | string | No | IANA 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
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | No | New name |
timezone | string | No | IANA time zone |
brain_id | string or null | No | The 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
| Parameter | Type | Required | Description |
|---|---|---|---|
first_name | string | No | Her first name, as fans know it |
nicknames | array of strings | No | Short names she answers to |
date_of_birth | string | No | YYYY-MM-DD; she must be 18 or older |
nationality | string | No | Two-letter country code, for example FR |
languages | array of strings | No | Languages 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
| Parameter | Type | Required | Description |
|---|---|---|---|
appearance, life, voice, mimic, personality, memory, boundaries, examples | object | At least one | The 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).