# API: Teammitglieder, Rollen und Zugriffstoken

_API · 6 Min. Lesezeit · Aktualisiert 2026-10-22 · https://lanachat.ai/guides/de/api-team/_

Ihr **Team** sind die Personen, die im Workspace arbeiten. Jedes **Mitglied** hat eine **Rolle** (vordefiniert oder benutzerdefiniert), die festlegt, was es tun kann, an welchen Creatorinnen es arbeitet und einen persönlichen Zugriffsschlüssel zum Anmelden. **Access tokens** sind die Schlüssel für die API und die MCP-Verbindung. Alle diese Endpunkte benötigen ein **owner**-Token: In den Beispielen hält `$LANACHAT_TOKEN` eines.

## Endpunkte

| Methode | Pfad | Beschreibung | Berechtigung | Status |
|---|---|---|---|---|
| GET | `/members` | Mitglieder auflisten (`status=active,disabled`, `role_id=`, `q=`) | `owner` | Planned |
| POST | `/members` | Ein Mitglied mit Rolle und Creatorinnen hinzufügen | `owner` | Planned |
| GET | `/members/{id}` | Ein Mitglied, letzte Aktivität und Überschreibungen | `owner` | Planned |
| PATCH | `/members/{id}` | Rolle, Creatorinnen, Überschreibungen ändern; deaktivieren oder aktivieren | `owner` | Planned |
| DELETE | `/members/{id}` | Ein Mitglied löschen (seine bisherigen Nachrichten behalten den Namen) | `owner` | Planned |
| POST | `/members/{id}/access-key` | Einen persönlichen Zugriffsschlüssel erstellen (einmal angezeigt) | `owner` | Planned |
| POST | `/members/{id}/invitation` | Einen Zugriffsschlüssel per E-Mail an das Mitglied senden | `owner` | Planned |
| DELETE | `/members/{id}/access-key` | Den Zugriffsschlüssel des Mitglieds widerrufen: es wird abgemeldet | `owner` | Planned |
| GET | `/roles` | Vordefinierte und benutzerdefinierte Rollen mit Berechtigungstabelle | `owner` | Planned |
| POST | `/roles` | Eine benutzerdefinierte Rolle erstellen | `owner` | Planned |
| PATCH | `/roles/{id}` | Eine Rolle umbenennen oder Berechtigungen ändern | `owner` | Planned |
| DELETE | `/roles/{id}` | Eine benutzerdefinierte Rolle löschen, die kein Mitglied hat | `owner` | Planned |
| GET | `/tokens` | API- und MCP-Zugriffstoken (`include_revoked=true`) | `owner` | Planned |
| POST | `/tokens` | Ein Token mit Berechtigungen erstellen (einmal angezeigt) | `owner` | Planned |
| PATCH | `/tokens/{id}` | Ein Token umbenennen oder Berechtigungen ändern | `owner` | Planned |
| POST | `/tokens/{id}/rotate` | Das Geheimnis ersetzen; das alte wird sofort ungültig | `owner` | Planned |
| DELETE | `/tokens/{id}` | Ein Token widerrufen | `owner` | Planned |

## Das Mitglied-Objekt

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

| Feld | Typ | Beschreibung |
|---|---|---|
| `id` | string | Beginnt mit `mem_` |
| `name` | string | Ihr Name in der Console |
| `email` | string oder null | Wohin die Einladung geht |
| `status` | string | `active` oder `disabled` |
| `role_id` | string | Ihre Rolle |
| `creator_ids` | array von strings | Die Creatorinnen, an denen sie arbeiten |
| `overrides` | object | Nur für dieses Mitglied gesetzte Berechtigungen, zusätzlich zur Rolle |
| `access_key` | object | Ob sie einen `active` persönlichen Zugriffsschlüssel haben und seit wann; nie der Schlüssel selbst |
| `last_active_at` | string oder null | Ihre letzte Aktivität |

Ein deaktiviertes Mitglied kann sich nicht anmelden und behält seine Historie, Rolle und Creatorinnen.

## Das Rollen-Objekt

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

| Feld | Typ | Beschreibung |
|---|---|---|
| `id` | string | Die Rolle |
| `name` | string | Ihr Name |
| `builtin` | boolean | `true` für Owner, Manager und Chatter |
| `permissions` | object | Ein Schlüssel pro Zeile der Berechtigungstabelle, `true` oder `false` |
| `members` | integer | Wie viele Mitglieder sie haben |

Die Berechtigungsschlüssel folgen den Zeilen der Berechtigungstabelle in **Team Management › Roles**, gruppiert nach Bereich: Dashboard, Creators, AI Brain, Conversations, Vault, Scripts, Playground, Telegram und Employees. **Owner** hat immer alle Berechtigungen und kann nicht bearbeitet werden. **Manager** und **Chatter** sind vordefiniert: Sie können deren Berechtigungen ändern, aber nicht umbenennen oder löschen.

## Das Access-Token-Objekt

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

| Feld | Typ | Beschreibung |
|---|---|---|
| `id` | string | Beginnt mit `tok_` |
| `name` | string | Bis zu 100 Zeichen, erforderlich |
| `permissions` | array von strings | Die [Berechtigungen](https://lanachat.ai/guides/de/api-overview/), die es hat |
| `status` | string | Aktiv, abgelaufen oder widerrufen |
| `created_at`, `expires_at` | string | ISO 8601, UTC |
| `token` | string | Das Geheimnis, nur in der Antwort, die es erstellt oder rotiert |

## Mitglieder

### Mitglieder auflisten

`GET /members` · `owner`

| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `status` | string | Nein | `active` oder `disabled`; beide durch Komma getrennt |
| `role_id` | string | Nein | Nur Mitglieder mit dieser Rolle |
| `q` | string | Nein | Teil eines Namens |
| `limit`, `cursor` | number, string | Nein | [Pagination](https://lanachat.ai/guides/de/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
}
```

### Ein Mitglied hinzufügen

`POST /members` · `owner`

| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `name` | string | Ja | Ihr Name |
| `email` | string | Nein | Wird für die Einladung benötigt |
| `role_id` | string | Ja | Eine vordefinierte oder benutzerdefinierte Rolle |
| `creator_ids` | array von strings | Nein | Die Creatorinnen, an denen sie arbeiten |

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

Die Antwort ist das neue Mitglied (`201`), aktiv, noch ohne Zugriffsschlüssel.

### Ein Mitglied abrufen

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

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

Die Antwort ist das Mitglied-Objekt. Eine unbekannte ID antwortet mit `404`.

### Ein Mitglied aktualisieren

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

| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `role_id` | string | Nein | Neue Rolle |
| `creator_ids` | array von strings | Nein | Ersetzt die Liste der Creatorinnen |
| `overrides` | object | Nein | Nur für dieses Mitglied gültige Berechtigungen |
| `status` | string | Nein | `active` oder `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}}'
```

Die Antwort ist das aktualisierte Mitglied. `status: "disabled"` sperrt den Zugang sofort; Rolle und Creatorinnen bleiben erhalten.

### Ein Mitglied löschen

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

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

Das Mitglied wird entfernt und seine Creatorinnen werden freigegeben. Seine bisherigen Nachrichten behalten den Namen. Um sie später zu behalten, deaktivieren Sie das Mitglied stattdessen.

## Persönliche Zugriffsschlüssel

Teammitglieder verwenden kein Passwort: Sie melden sich mit einem persönlichen Zugriffsschlüssel an. Schlüssel beginnen mit `emp_`.

### Einen Zugriffsschlüssel erstellen

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

Senden Sie sowohl die Anmeldeadresse als auch den Schlüssel über einen vertrauenswürdigen Kanal an die Person. Ein deaktiviertes Mitglied antwortet mit `409`: Aktivieren Sie es zuerst.

### Einen Zugriffsschlüssel per E-Mail senden

`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)"
```

Der Schlüssel wird an die auf der Karte angegebene E-Mail-Adresse gesendet. Ein Mitglied ohne E-Mail-Adresse oder ein deaktiviertes Mitglied antwortet mit `409`.

### Einen Zugriffsschlüssel widerrufen

`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"
```

Der Schlüssel wird sofort ungültig und das Mitglied wird abgemeldet. Erstellen Sie einen neuen Schlüssel, um den Zugang wieder zu ermöglichen.

## Rollen

### Rollen auflisten

`GET /roles` · `owner`

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

Eine Liste von Rollen-Objekten: Owner, Manager, Chatter und Ihre benutzerdefinierten Rollen.

### Eine benutzerdefinierte Rolle erstellen

`POST /roles` · `owner`

| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `name` | string | Ja | Der Name der Rolle |
| `permissions` | object | Nein | Die zu aktivierenden Zeilen; die anderen sind aus |

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

Die Antwort ist die neue Rolle (`201`) mit `builtin: false`.

### Eine Rolle aktualisieren

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

| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `name` | string | Nein | Neuer Name (nur benutzerdefinierte Rollen) |
| `permissions` | object | Nein | Die zu ändernden Zeilen; die anderen bleiben erhalten |

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

Die Änderung gilt sofort für alle Mitglieder mit dieser Rolle, außer deren eigenen Überschreibungen. Das Bearbeiten von Owner oder das Umbenennen von Manager oder Chatter antwortet mit `409`.

### Eine benutzerdefinierte Rolle löschen

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

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

Das Löschen einer Rolle, die noch Mitglieder haben, antwortet mit `409`: Weisen Sie ihnen zuerst eine andere Rolle zu. Vordefinierte Rollen können nicht gelöscht werden.

## Zugriffstoken

### Token auflisten

`GET /tokens` · `owner`

| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `include_revoked` | boolean | Nein | `true` listet auch widerrufene Tokens auf |

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

Eine Liste von Access-Token-Objekten, ohne deren Geheimnis.

### Ein Token erstellen

`POST /tokens` · `owner`

| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `name` | string | Ja | Wofür es ist, bis zu 100 Zeichen |
| `permissions` | array von strings | Ja | Die [Berechtigungen](https://lanachat.ai/guides/de/api-overview/), die es erhält |
| `expires_in_days` | integer | Nein | Wann es endet |

```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` ist nur in dieser Antwort enthalten. Ein Token kann niemals mehr Berechtigungen geben als das Owner-Token, das es erstellt hat. Ein fehlender Name antwortet mit `400`.

### Ein Token aktualisieren

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

| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| `name` | string | Nein | Neuer Name |
| `permissions` | array von strings | Nein | Ersetzt seine Berechtigungen |

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

Die Antwort ist das Token, ohne sein Geheimnis. Das Deaktivieren von `can_engine` entfernt auch Publishing-, Advanced AI- und Experiment-Report-Berechtigungen. Ein widerrufenes Token antwortet mit `409`.

### Ein Token rotieren

`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)"
```

Die Antwort ist das Token mit einem neuen `token`-Geheimnis, einmal angezeigt. Das alte Geheimnis wird sofort ungültig, aktualisieren Sie Ihr Skript also direkt danach. Ein widerrufenes Token antwortet mit `409`.

### Ein Token widerrufen

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

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

Das Token wird sofort ungültig. Ein bereits widerrufenes Token antwortet mit `409`.

> Warning: Ein Token funktioniert wie ein Passwort. Widerrufen Sie es, sobald Sie es nicht mehr verwenden oder vermuten, dass es geleakt wurde.

## Verwandte Artikel

- [LanaChat API: Schnellstart, Authentifizierung und Fehler](https://lanachat.ai/guides/de/api-overview/)
- [Teamverwaltung: Mitarbeiter und Rollen](https://lanachat.ai/guides/de/team-and-roles/)
- [Benutzerdefinierte Rollen und die Berechtigungstabelle](https://lanachat.ai/guides/de/custom-roles/)
- [Persönliche Zugriffsschlüssel](https://lanachat.ai/guides/de/personal-access-keys/)
