LanaChat

API: membri ai echipei, roluri și tokenuri de acces

6 min de cititActualizat Markdown

Echipa ta (team) este formată din persoanele care lucrează în spațiul de lucru. Fiecare membru are un rol (predefinit sau personalizat) care stabilește ce poate face, creatorii pe care îi gestionează și o cheie personală de acces pentru autentificare. Tokenurile de acces sunt cheile API-ului și ale conexiunii MCP. Toate aceste endpoint-uri necesită un token de owner: în exemple, $LANACHAT_TOKEN conține unul.

Endpoint-uri #

MethodPathDescriptionPermissionStatus
GET/membersListează membrii (status=active,disabled, role_id=, q=)ownerPlanned
POST/membersAdaugă un membru cu rol și creatoareownerPlanned
GET/members/{id}Un membru, ultima activitate și suprascrieriownerPlanned
PATCH/members/{id}Schimbă rolul, creatoarele, suprascrierile; dezactivează sau activeazăownerPlanned
DELETE/members/{id}Șterge un membru (mesajele anterioare păstrează numele)ownerPlanned
POST/members/{id}/access-keyCreează o cheie personală de acces (afișată o singură dată)ownerPlanned
POST/members/{id}/invitationTrimite pe e-mail o cheie de acces membruluiownerPlanned
DELETE/members/{id}/access-keyRevocă cheia membrului: acesta este deconectatownerPlanned
GET/rolesRoluri predefinite și personalizate cu tabelul de permisiuniownerPlanned
POST/rolesCreează un rol personalizatownerPlanned
PATCH/roles/{id}Redenumește un rol sau schimbă permisiunileownerPlanned
DELETE/roles/{id}Șterge un rol personalizat neatribuit niciunui membruownerPlanned
GET/tokensTokenuri de acces API și MCP (include_revoked=true)ownerPlanned
POST/tokensCreează un token cu permisiunile sale (afișat o singură dată)ownerPlanned
PATCH/tokens/{id}Redenumește un token sau schimbă permisiunileownerPlanned
POST/tokens/{id}/rotateÎnlocuiește secretul; cel vechi se oprește imediatownerPlanned
DELETE/tokens/{id}Revocă un tokenownerPlanned

Obiectul membru #

{
  "id": "mem_4",
  "name": "Ana",
  "email": "[email protected]",
  "status": "active",
  "role_id": "role_chatter",
  "creator_ids": ["cr_lea", "cr_mia"],
  "overrides": { "billing.read": false, "fans.export": true },
  "access_key": { "active": true, "created_at": "2026-09-20T09:00:00Z" },
  "last_active_at": "2026-10-06T13:40:00Z"
}
FieldTypeDescription
idstringÎncepe cu mem_
namestringNumele lor în Console
emailstring sau nullUnde se trimite invitația
statusstringactive sau disabled
role_idstringRolul lor
creator_idsarray de stringuriCreatoarele pe care le gestionează
overridesobiectPermisiuni setate doar pentru acest membru, peste rol
access_keyobiectDacă au o cheie personală de acces active și de când; niciodată cheia în sine
last_active_atstring sau nullUltima lor activitate

Un membru dezactivat nu se poate autentifica și își păstrează istoricul, rolul și creatoarele.

Obiectul rol #

{
  "id": "role_chatter",
  "name": "Chatter",
  "builtin": true,
  "permissions": { "live.read": true, "live.reply": true, "fans.read": true, "fans.export": false, "billing.read": false },
  "members": 6
}
FieldTypeDescription
idstringRolul
namestringNumele său
builtinbooleantrue pentru Owner, Manager și Chatter
permissionsobiectO cheie pentru fiecare rând din tabelul de permisiuni, true sau false
membersintegerCâți membri îl au

Cheile de permisiuni urmează rândurile din tabelul de permisiuni din Team Management › Roles, grupate pe domenii: Dashboard, Creators, AI Brain, Conversations, Vault, Scripts, Playground, Telegram și Employees. Owner are întotdeauna toate permisiunile și nu poate fi editat. Manager și Chatter sunt predefinite: poți schimba permisiunile lor, dar nu le poți redenumi sau șterge.

Obiectul token de acces #

{
  "id": "tok_31",
  "name": "Reporting script",
  "permissions": ["can_fan_read", "can_sales_read"],
  "status": "active",
  "created_at": "2026-10-06T15:10:00Z",
  "expires_at": "2027-01-04T15:10:00Z"
}
FieldTypeDescription
idstringÎncepe cu tok_
namestringPână la 100 de caractere, obligatoriu
permissionsarray de stringuriPermisiunile pe care le are (permissions)
statusstringActiv, expirat sau revocat
created_at, expires_atstringISO 8601, UTC
tokenstringSecretul, doar în răspunsul care îl creează sau rotește

Membri #

Listează membrii #

GET /members · owner

ParameterTypeRequiredDescription
statusstringNuactive sau disabled; ambele separate prin virgulă
role_idstringNuDoar membrii cu acest rol
qstringNuParte dintr-un nume
limit, cursornumber, stringNuPaginare
curl "https://api.lanachat.ai/v1/members?status=active&role_id=role_chatter" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
{
  "data": [
    { "id": "mem_4", "name": "Ana", "email": "[email protected]", "status": "active", "role_id": "role_chatter", "creator_ids": ["cr_lea", "cr_mia"], "overrides": {}, "access_key": { "active": true, "created_at": "2026-09-20T09:00:00Z" }, "last_active_at": "2026-10-06T13:40:00Z" }
  ],
  "next_cursor": null
}

Adaugă un membru #

POST /members · owner

ParameterTypeRequiredDescription
namestringDaNumele lor
emailstringNuNecesare pentru trimiterea invitației
role_idstringDaUn rol predefinit sau personalizat
creator_idsarray de stringuriNuCreatoarele pe care le gestionează
curl -X POST https://api.lanachat.ai/v1/members \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Ana", "email": "[email protected]", "role_id": "role_chatter", "creator_ids": ["cr_lea"]}'

Răspunsul este noul membru (201), activ, fără o cheie de acces încă.

Obține un membru #

GET /members/{id} · owner

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

Răspunsul este obiectul membru. Un id necunoscut răspunde cu 404.

Actualizează un membru #

PATCH /members/{id} · owner

ParameterTypeRequiredDescription
role_idstringNuRol nou
creator_idsarray de stringuriNuÎnlocuiește lista lor de creatoare
overridesobiectNuPermisiuni doar pentru acest membru
statusstringNuactive sau disabled
curl -X PATCH https://api.lanachat.ai/v1/members/mem_4 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"creator_ids": ["cr_lea", "cr_mia"], "overrides": {"fans.export": true}}'

Răspunsul este membrul actualizat. status: "disabled" taie accesul imediat; rolul și creatoarele sunt păstrate.

Șterge un membru #

DELETE /members/{id} · owner

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

Membrul este eliminat și creatoarele lor sunt dezalocate. Mesajele lor anterioare păstrează numele. Pentru a-i păstra pentru mai târziu, dezactivează-i în schimb.

Chei personale de acces #

Membrii echipei nu folosesc parolă: se autentifică cu o cheie personală de acces. Cheile încep cu emp_.

Creează o cheie de acces #

POST /members/{id}/access-key · owner

curl -X POST https://api.lanachat.ai/v1/members/mem_4/access-key \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
{ "member_id": "mem_4", "sign_in_url": "https://app.lanachat.ai/login/?mode=employee", "access_key": "emp_6Yq2…", "shown_once": true }

Trimite atât adresa de autentificare, cât și cheia persoanei printr-un canal de încredere. Un membru dezactivat răspunde cu 409: activează-l mai întâi.

Trimite pe e-mail o cheie de acces #

POST /members/{id}/invitation · owner

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

Cheia este trimisă pe adresa de e-mail din fișa lor. Un membru fără adresă de e-mail sau dezactivat răspunde cu 409.

Revocă o cheie de acces #

DELETE /members/{id}/access-key · owner

curl -X DELETE https://api.lanachat.ai/v1/members/mem_4/access-key \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Cheia se oprește imediat și membrul este deconectat. Creează o cheie nouă pentru a-l lăsa să revină.

Roluri #

Listează rolurile #

GET /roles · owner

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

O listă de obiecte rol: Owner, Manager, Chatter și rolurile tale personalizate.

Creează un rol personalizat #

POST /roles · owner

ParameterTypeRequiredDescription
namestringDaNumele rolului
permissionsobiectNuRândurile activate; celelalte sunt dezactivate
curl -X POST https://api.lanachat.ai/v1/roles \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Night chatter", "permissions": {"live.read": true, "live.reply": true, "fans.read": true}}'

Răspunsul este noul rol (201) cu builtin: false.

Actualizează un rol #

PATCH /roles/{id} · owner

ParameterTypeRequiredDescription
namestringNuNume nou (doar roluri personalizate)
permissionsobiectNuRândurile de schimbat; celelalte se păstrează
curl -X PATCH https://api.lanachat.ai/v1/roles/role_chatter \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"permissions": {"fans.export": false}}'

Schimbarea se aplică imediat tuturor membrilor cu acel rol, exceptând suprascrierile lor personale. Editarea Owner sau redenumirea Manager sau Chatter răspunde cu 409.

Șterge un rol personalizat #

DELETE /roles/{id} · owner

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

Ștergerea unui rol pe care îl au încă membri răspunde cu 409: atribuie-le mai întâi alt rol. Rolurile predefinite nu pot fi șterse.

Tokenuri de acces #

Listează tokenurile #

GET /tokens · owner

ParameterTypeRequiredDescription
include_revokedbooleanNutrue listează și tokenurile revocate
curl "https://api.lanachat.ai/v1/tokens?include_revoked=true" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

O listă de obiecte token de acces, fără secretul lor.

Creează un token #

POST /tokens · owner

ParameterTypeRequiredDescription
namestringDaPentru ce este, până la 100 de caractere
permissionsarray de stringuriDaPermisiunile pe care le primește (permissions)
expires_in_daysintegerNuCând expiră
curl -X POST https://api.lanachat.ai/v1/tokens \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"name": "Reporting script", "permissions": ["can_fan_read", "can_sales_read"], "expires_in_days": 90}'
{ "id": "tok_31", "name": "Reporting script", "token": "lc_live_8f2c1d0e9b7a4c6f", "permissions": ["can_fan_read", "can_sales_read"], "expires_at": "2027-01-04T15:10:00Z" }

token apare doar în acest răspuns. Un token nu poate oferi niciodată mai multe permisiuni decât tokenul owner care l-a creat. Lipsa numelui răspunde cu 400.

Actualizează un token #

PATCH /tokens/{id} · owner

ParameterTypeRequiredDescription
namestringNuNume nou
permissionsarray de stringuriNuÎnlocuiește permisiunile
curl -X PATCH https://api.lanachat.ai/v1/tokens/tok_31 \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"permissions": ["can_sales_read"]}'

Răspunsul este tokenul, fără secretul său. Dezactivarea can_engine elimină și permisiunile de publicare, Advanced AI și raportare experiment. Un token revocat răspunde cu 409.

Rotește un token #

POST /tokens/{id}/rotate · owner

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

Răspunsul este tokenul cu un nou secret token, afișat o singură dată. Secretul vechi se oprește imediat, deci actualizează-ți scriptul imediat după. Un token revocat răspunde cu 409.

Revocă un token #

DELETE /tokens/{id} · owner

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

Tokenul se oprește imediat. Un token deja revocat răspunde cu 409.

Atenție Un token funcționează ca o parolă. Revocă-l imediat ce nu îl mai folosești sau dacă crezi că a fost compromis.

Ultimele noutăți despre Lana pe Telegram

Noutăți și invitații în beta, mai întâi pe canal.