User Management API
API zur programmgesteuerten Verwaltung von Benutzern innerhalb einer Organisation
Die User Management API ermöglicht es Partnern und Resellern, Benutzer innerhalb ihrer Organisation programmgesteuert zu verwalten. Diese API ist ideal für automatisierte Benutzerbereitstellung, wenn sich jemand auf einer Partner-Plattform registriert.
Authentifizierung
Diese API verwendet Organisation-API-Schlüssel (nicht Benutzer-API-Schlüssel). Diese Schlüssel werden von Organisationsadministratoren erstellt und haben das Präfix sk_meingpt_um_.
curl -X GET "https://app.meingpt.com/api/user-management/v1/users" \
-H "Authorization: Bearer $MEINGPT_UM_API_KEY"Rate Limiting
Alle API-Schlüssel haben ein Rate-Limit von 100 Anfragen/Minute. Die Rate-Limit-Informationen werden in den Response-Headern zurückgegeben:
X-RateLimit-Limit: Maximale Anfragen pro FensterX-RateLimit-Remaining: Verbleibende AnfragenX-RateLimit-Reset: Unix-Zeitstempel, wann das Limit zurückgesetzt wird
API-Schlüssel erstellen
Organisation-API-Schlüssel können von Administratoren über die Einstellungen erstellt werden. Der Schlüssel wird nur einmal bei der Erstellung angezeigt.
Achtung
Speicher den API-Schlüssel sicher. Er kann nicht erneut angezeigt werden.
Endpunkte
Benutzer auflisten
GET /api/user-management/v1/users
Query-Parameter:
page(optional): Seitennummer (Standard: 1)pageSize(optional): Benutzer pro Seite (Standard: 20, max: 100)search(optional): Suche nach E-Mail, Vor- oder Nachname
Antwort:
{
"status": "success",
"users": [
{
"id": "user_123",
"email": "user@example.com",
"firstName": "Max",
"lastName": "Mustermann",
"createdAt": "2024-01-15T10:30:00Z",
"lastLogin": "2024-01-20T14:22:00Z",
"isAdmin": false,
"teams": [
{ "id": "dept_456", "name": "Marketing" }
]
}
],
"total": 42,
"page": 1,
"pageSize": 20,
"totalPages": 3
}Benutzer-Details abrufen
GET /api/user-management/v1/users/:userId
Neuen Benutzer erstellen
POST /api/user-management/v1/users
Request-Body:
{
"email": "neuer.nutzer@example.com",
"firstName": "Max",
"lastName": "Mustermann"
}Antwort:
{
"status": "success",
"user": { ... },
"isNewUser": true
}Hinweis
Wenn der Benutzer bereits existiert, wird er zur Organisation hinzugefügt und isNewUser ist false.
Bestehenden Benutzer hinzufügen
POST /api/user-management/v1/users/add
Request-Body:
{
"email": "existierend@example.com"
}Benutzer entfernen
DELETE /api/user-management/v1/users/:userId
Achtung
Admin-Benutzer können nicht über die API entfernt werden.
Benutzerrolle ändern
Schaltet einen Benutzer zwischen MEMBER (belegt einen Seat/Lizenzplatz) und VIEWER (Beobachter — kein Seat) um. Ideal, um Nutzer nach Ende eines Programms automatisch auf Beobachter zu setzen (Lizenz wird frei) und bei Wiederaufnahme zurück auf Mitglied.
PATCH /api/user-management/v1/users/:userId/role
Request-Body:
{
"role": "VIEWER"
}Antwort:
{
"status": "success",
"user": { ... }
}Hinweis
VIEWER (Beobachter) belegt keinen Seat. Beim Umschalten auf MEMBER wird
automatisch ein Seat zugewiesen — sind keine Lizenzplätze frei, antwortet die
API mit 412.
Achtung
Die Rolle von Admin-Benutzern kann nicht über die API geändert werden. ADMIN
ist über die API nicht zuweisbar.
Teams auflisten
GET /api/user-management/v1/teams
Antwort:
{
"status": "success",
"teams": [
{
"id": "dept_456",
"name": "Marketing",
"isDefault": false,
"memberCount": 12
}
]
}Neues Team erstellen
POST /api/user-management/v1/teams
Request-Body:
{
"name": "Vertrieb"
}Antwort:
{
"status": "success",
"team": {
"id": "dept_789",
"name": "Vertrieb",
"isDefault": false,
"memberCount": 0
}
}Hinweis
Team-Namen müssen innerhalb der Organisation eindeutig sein.
Team löschen
DELETE /api/user-management/v1/teams/:teamId
Achtung
Das Standard-Team kann nicht gelöscht werden. Alle Benutzer werden vor dem Löschen automatisch aus dem Team entfernt.
Benutzer zu Team hinzufügen
POST /api/user-management/v1/teams/:teamId/users
Request-Body:
{
"userId": "user_123"
}Benutzer aus Team entfernen
DELETE /api/user-management/v1/teams/:teamId/users/:userId
Fehlerbehandlung
Die API gibt strukturierte Fehlerantworten zurück:
{
"status": "error",
"message": "User not found"
}HTTP-Statuscodes:
400- Ungültige Eingabe401- Ungültiger oder fehlender API-Schlüssel403- Feature nicht aktiviert oder Berechtigungsfehler404- Ressource nicht gefunden409- Konflikt (z.B. Benutzer bereits Mitglied)429- Rate-Limit überschritten500- Serverfehler