# API : membres de l’équipe, rôles et jetons d’accès

_API · Lecture de 6 min · Mis à jour 2026-10-22 · https://lanachat.ai/guides/fr/api-team/_

Votre **équipe** est composée des personnes qui travaillent dans l’espace de travail. Chaque **membre** a un **rôle** (intégré ou personnalisé) qui définit ce qu’il peut faire, les créatrices sur lesquelles il travaille, et une clé d’accès personnelle pour se connecter. Les **jetons d’accès** sont les clés de l’API et de la connexion MCP. Tous ces points de terminaison nécessitent un jeton **owner** : dans les exemples, `$LANACHAT_TOKEN` en contient un.

## Points de terminaison

| Méthode | Chemin | Description | Permission | Statut |
|---|---|---|---|---|
| GET | `/members` | Lister les membres (`status=active,disabled`, `role_id=`, `q=`) | `owner` | Planned |
| POST | `/members` | Ajouter un membre avec un rôle et des créatrices | `owner` | Planned |
| GET | `/members/{id}` | Un membre, dernière activité et exceptions | `owner` | Planned |
| PATCH | `/members/{id}` | Modifier rôle, créatrices, exceptions ; désactiver ou activer | `owner` | Planned |
| DELETE | `/members/{id}` | Supprimer un membre (ses messages passés gardent son nom) | `owner` | Planned |
| POST | `/members/{id}/access-key` | Créer une clé d’accès personnelle (affichée une fois) | `owner` | Planned |
| POST | `/members/{id}/invitation` | Envoyer par e-mail une clé d’accès au membre | `owner` | Planned |
| DELETE | `/members/{id}/access-key` | Révoquer la clé du membre : il est déconnecté | `owner` | Planned |
| GET | `/roles` | Rôles intégrés et personnalisés avec leur tableau de permissions | `owner` | Planned |
| POST | `/roles` | Créer un rôle personnalisé | `owner` | Planned |
| PATCH | `/roles/{id}` | Renommer un rôle ou modifier ses permissions | `owner` | Planned |
| DELETE | `/roles/{id}` | Supprimer un rôle personnalisé non attribué | `owner` | Planned |
| GET | `/tokens` | Jetons d’accès API et MCP (`include_revoked=true`) | `owner` | Planned |
| POST | `/tokens` | Créer un jeton avec ses permissions (affiché une fois) | `owner` | Planned |
| PATCH | `/tokens/{id}` | Renommer un jeton ou modifier ses permissions | `owner` | Planned |
| POST | `/tokens/{id}/rotate` | Remplacer le secret ; l’ancien s’arrête immédiatement | `owner` | Planned |
| DELETE | `/tokens/{id}` | Révoquer un jeton | `owner` | Planned |

## L’objet membre

```json
{
  "id": "mem_4",
  "name": "Ana",
  "email": "ana@mia-agency.com",
  "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"
}
```

| Champ | Type | Description |
|---|---|---|
| `id` | string | Commence par `mem_` |
| `name` | string | Son nom dans la Console |
| `email` | string ou null | Adresse où l’invitation est envoyée |
| `status` | string | `active` ou `disabled` |
| `role_id` | string | Son rôle |
| `creator_ids` | tableau de chaînes | Les créatrices sur lesquelles il travaille |
| `overrides` | objet | Permissions définies uniquement pour ce membre, en plus du rôle |
| `access_key` | objet | S’il a une clé d’accès personnelle `active`, et depuis quand ; jamais la clé elle-même |
| `last_active_at` | string ou null | Sa dernière activité |

Un membre désactivé ne peut pas se connecter et conserve son historique, son rôle et ses créatrices.

## L’objet rôle

```json
{
  "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
}
```

| Champ | Type | Description |
|---|---|---|
| `id` | string | Le rôle |
| `name` | string | Son nom |
| `builtin` | boolean | `true` pour Owner, Manager et Chatter |
| `permissions` | objet | Une clé par ligne du tableau des permissions, `true` ou `false` |
| `members` | entier | Nombre de membres qui l’ont |

Les clés de permission suivent les lignes du tableau des permissions dans **Team Management › Roles**, regroupées par domaine : Dashboard, Creators, AI Brain, Conversations, Vault, Scripts, Playground, Telegram et Employees. **Owner** a toujours toutes les permissions et ne peut pas être modifié. **Manager** et **Chatter** sont intégrés : vous pouvez modifier leurs permissions mais pas les renommer ou les supprimer.

## L’objet jeton d’accès

```json
{
  "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"
}
```

| Champ | Type | Description |
|---|---|---|
| `id` | string | Commence par `tok_` |
| `name` | string | Jusqu’à 100 caractères, obligatoire |
| `permissions` | tableau de chaînes | Les [permissions](https://lanachat.ai/guides/fr/api-overview/) qu’il possède |
| `status` | string | Actif, expiré ou révoqué |
| `created_at`, `expires_at` | string | ISO 8601, UTC |
| `token` | string | Le secret, uniquement dans la réponse qui le crée ou le fait tourner |

## Membres

### Lister les membres

`GET /members` · `owner`

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `status` | string | Non | `active` ou `disabled` ; les deux séparés par une virgule |
| `role_id` | string | Non | Seulement les membres avec ce rôle |
| `q` | string | Non | Partie d’un nom |
| `limit`, `cursor` | nombre, string | Non | [Pagination](https://lanachat.ai/guides/fr/api-overview/) |

```bash
curl "https://api.lanachat.ai/v1/members?status=active&role_id=role_chatter" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

```json
{
  "data": [
    { "id": "mem_4", "name": "Ana", "email": "ana@mia-agency.com", "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
}
```

### Ajouter un membre

`POST /members` · `owner`

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `name` | string | Oui | Son nom |
| `email` | string | Non | Nécessaire pour envoyer une invitation |
| `role_id` | string | Oui | Un rôle intégré ou personnalisé |
| `creator_ids` | tableau de chaînes | Non | Les créatrices sur lesquelles il travaille |

```bash
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": "ana@mia-agency.com", "role_id": "role_chatter", "creator_ids": ["cr_lea"]}'
```

La réponse est le nouveau membre (`201`), actif, sans clé d’accès pour l’instant.

### Obtenir un membre

`GET /members/{id}` · `owner`

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

La réponse est l’objet membre. Un identifiant inconnu répond `404`.

### Mettre à jour un membre

`PATCH /members/{id}` · `owner`

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `role_id` | string | Non | Nouveau rôle |
| `creator_ids` | tableau de chaînes | Non | Remplace leur liste de créatrices |
| `overrides` | objet | Non | Permissions uniquement pour ce membre |
| `status` | string | Non | `active` ou `disabled` |

```bash
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}}'
```

La réponse est le membre mis à jour. `status: "disabled"` coupe l’accès immédiatement ; le rôle et les créatrices sont conservés.

### Supprimer un membre

`DELETE /members/{id}` · `owner`

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

Le membre est supprimé et ses créatrices sont désassignées. Ses messages passés gardent son nom. Pour le garder pour plus tard, désactivez-le plutôt.

## Clés d’accès personnelles

Les membres de l’équipe n’utilisent pas de mot de passe : ils se connectent avec une clé d’accès personnelle. Les clés commencent par `emp_`.

### Créer une clé d’accès

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

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

```json
{ "member_id": "mem_4", "sign_in_url": "https://app.lanachat.ai/login/?mode=employee", "access_key": "emp_6Yq2…", "shown_once": true }
```

Envoyez à la personne à la fois l’adresse de connexion et la clé par un canal de confiance. Un membre désactivé répond `409` : activez-le d’abord.

### Envoyer par e-mail une clé d’accès

`POST /members/{id}/invitation` · `owner`

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

La clé est envoyée à l’adresse e-mail indiquée sur sa fiche. Un membre sans adresse e-mail, ou désactivé, répond `409`.

### Révoquer une clé d’accès

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

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

La clé est désactivée immédiatement et le membre est déconnecté. Créez une nouvelle clé pour lui permettre de revenir.

## Rôles

### Lister les rôles

`GET /roles` · `owner`

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

Une liste d’objets rôle : Owner, Manager, Chatter et vos rôles personnalisés.

### Créer un rôle personnalisé

`POST /roles` · `owner`

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `name` | string | Oui | Le nom du rôle |
| `permissions` | objet | Non | Les lignes à activer ; les autres sont désactivées |

```bash
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}}'
```

La réponse est le nouveau rôle (`201`) avec `builtin: false`.

### Mettre à jour un rôle

`PATCH /roles/{id}` · `owner`

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `name` | string | Non | Nouveau nom (rôles personnalisés uniquement) |
| `permissions` | objet | Non | Les lignes à modifier ; les autres sont conservées |

```bash
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}}'
```

Le changement s’applique immédiatement à tous les membres avec ce rôle, sauf leurs propres exceptions. Modifier Owner, ou renommer Manager ou Chatter, répond `409`.

### Supprimer un rôle personnalisé

`DELETE /roles/{id}` · `owner`

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

Supprimer un rôle encore attribué à des membres répond `409` : attribuez-leur d’abord un autre rôle. Les rôles intégrés ne peuvent pas être supprimés.

## Jetons d’accès

### Lister les jetons

`GET /tokens` · `owner`

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `include_revoked` | boolean | Non | `true` liste aussi les jetons révoqués |

```bash
curl "https://api.lanachat.ai/v1/tokens?include_revoked=true" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
```

Une liste d’objets jeton d’accès, sans leur secret.

### Créer un jeton

`POST /tokens` · `owner`

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `name` | string | Oui | À quoi il sert, jusqu’à 100 caractères |
| `permissions` | tableau de chaînes | Oui | Les [permissions](https://lanachat.ai/guides/fr/api-overview/) qu’il obtient |
| `expires_in_days` | entier | Non | Date d’expiration |

```bash
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}'
```

```json
{ "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` est présent uniquement dans cette réponse. Un jeton ne peut jamais donner plus que le jeton owner qui l’a créé. L’absence de nom répond `400`.

### Mettre à jour un jeton

`PATCH /tokens/{id}` · `owner`

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `name` | string | Non | Nouveau nom |
| `permissions` | tableau de chaînes | Non | Remplace ses permissions |

```bash
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"]}'
```

La réponse est le jeton, sans son secret. Désactiver `can_engine` supprime aussi les permissions de publication, Advanced AI et rapport d’expérimentation. Un jeton révoqué répond `409`.

### Faire tourner un jeton

`POST /tokens/{id}/rotate` · `owner`

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

La réponse est le jeton avec un nouveau secret `token`, affiché une fois. L’ancien secret s’arrête immédiatement, mettez à jour votre script juste après. Un jeton révoqué répond `409`.

### Révoquer un jeton

`DELETE /tokens/{id}` · `owner`

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

Le jeton s’arrête immédiatement. Un jeton déjà révoqué répond `409`.

> Warning: Un jeton fonctionne comme un mot de passe. Révoquez-le dès que vous ne l’utilisez plus ou si vous pensez qu’il a fuité.

## Articles liés

- [API LanaChat : démarrage rapide, authentification et erreurs](https://lanachat.ai/guides/fr/api-overview/)
- [Gestion d’équipe : employés et rôles](https://lanachat.ai/guides/fr/team-and-roles/)
- [Rôles personnalisés et le tableau des permissions](https://lanachat.ai/guides/fr/custom-roles/)
- [Clés d'accès personnelles](https://lanachat.ai/guides/fr/personal-access-keys/)
