Référence
Référence de l'API Utilisateurs
Référence de l'API REST pour le provisionnement des utilisateurs via Trousseau.
URL de base
https://auth.trousseau.app/api/v3/coreAuthentification
Toutes les requêtes nécessitent un token Bearer :
Authorization: Bearer {your-api-token}Utilisateurs
Lister les utilisateurs
GET /users/?groups={group-uuid}| Paramètre | Type | Description |
|---|---|---|
groups | UUID | Filtrer par appartenance au groupe (recommandé) |
email | string | Filtrer par e-mail exact |
search | string | Rechercher par nom ou e-mail |
is_active | boolean | Filtrer par statut actif |
page | integer | Numéro de page (défaut : 1) |
page_size | integer | Résultats par page (défaut : 20, max : 100) |
Réponse : 200 OK
{
"pagination": {
"count": 42,
"next": "https://auth.trousseau.app/api/v3/core/users/?page=2",
"previous": null
},
"results": [
{
"pk": 42,
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"username": "jean.dupont@hotel.com",
"email": "jean.dupont@hotel.com",
"name": "Jean Dupont",
"is_active": true,
"last_login": "2026-04-05T14:30:00Z",
"attributes": {
"first_name": "Jean",
"last_name": "Dupont"
}
}
]
}Créer un utilisateur
POST /users/
Content-Type: application/json{
"username": "jean.dupont@hotel.com",
"email": "jean.dupont@hotel.com",
"name": "Jean Dupont",
"is_active": true,
"groups": ["{your-group-uuid}"],
"attributes": {
"first_name": "Jean",
"last_name": "Dupont"
}
}| Champ | Obligatoire | Type | Description |
|---|---|---|---|
username | Oui | string | Nom d'utilisateur unique (utiliser l'e-mail) |
email | Oui | string | Adresse e-mail de l'utilisateur |
name | Oui | string | Nom d'affichage complet |
is_active | Non | boolean | Défaut : true |
groups | Non | UUID[] | UUIDs des groupes auxquels ajouter l'utilisateur |
attributes | Non | object | Attributs personnalisés |
Réponse : 201 Created
{
"pk": 42,
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"username": "jean.dupont@hotel.com",
"email": "jean.dupont@hotel.com",
"name": "Jean Dupont",
"is_active": true
}Erreurs :
| Code | Raison |
|---|---|
400 | Erreur de validation (e-mail dupliqué, champ manquant) |
401 | Token API invalide |
403 | Permissions insuffisantes |
Obtenir un utilisateur
GET /users/{pk}/Réponse : 200 OK: Même format que les résultats de liste.
Mettre à jour un utilisateur
PATCH /users/{pk}/
Content-Type: application/json{
"name": "Jean-Pierre Dupont",
"attributes": {
"first_name": "Jean-Pierre"
}
}N'incluez que les champs que vous souhaitez mettre à jour. Tous les champs sont optionnels.
Réponse : 200 OK: Objet utilisateur mis à jour.
Désactiver un utilisateur
PATCH /users/{pk}/
Content-Type: application/json
{ "is_active": false }Groupes
Ajouter un utilisateur à un groupe
POST /groups/{group-pk}/add_user/
Content-Type: application/json
{ "pk": 42 }Réponse : 204 No Content
Retirer un utilisateur d'un groupe
POST /groups/{group-pk}/remove_user/
Content-Type: application/json
{ "pk": 42 }Réponse : 204 No Content
Obtenir les détails d'un groupe
GET /groups/{group-pk}/Réponse : 200 OK
{
"pk": "group-uuid",
"name": "Your App Users",
"users": [42, 43, 44],
"users_count": 3
}Format des erreurs
Toutes les réponses d'erreur suivent ce format :
{
"detail": "Not found."
}Ou pour les erreurs de validation :
{
"email": ["This field must be unique."],
"username": ["This field is required."]
}