Aller au contenu

API : Compte

Tous les endpoints de cette section agissent sur l’utilisateur·rice actuellement connecté·e.

GET /api/me
{
"id": "019f7462-ac2a-73e3-ab40-be2e43f943f9",
"email": "greta@example.com",
"firstName": "Greta",
"lastName": "Lengl",
"avatarUrl": "/api/avatars/019f7462-ac2a-73e3-ab40-be2e43f943f9?v=3",
"locale": "de",
"createdAt": "2025-11-02T09:14:52Z"
}

createdAt est le moment où le compte a été créé.

PUT /api/me/profile
{ "firstName": "Greta", "lastName": "Lengl" }

Renvoie 204. Erreurs : 400 quand l’un des champs est vide.

PUT /api/me/password
{ "currentPassword": "…", "newPassword": "…" }

Renvoie 204 ; toutes les autres sessions sont déconnectées. Erreurs : 403 quand le mot de passe actuel est incorrect, 400 quand le nouveau mot de passe est invalide (8–72 caractères).

POST /api/me/email
{ "newEmail": "new@example.com" }

Renvoie 202 dans tous les cas — le code de confirmation à 6 chiffres n’est envoyé que si l’adresse est réellement utilisable (anti-énumération : la réponse ne révèle jamais si une adresse est déjà prise). Erreurs : 400 pour une adresse mal formée.

POST /api/me/email/confirm
{ "code": "123456" }

Renvoie 204 : l’adresse e-mail est changée et toutes les autres sessions sont déconnectées. Erreurs : 400 pour un code invalide ou expiré (les codes expirent après 15 minutes).

PUT /api/me/push-tokens
{ "platform": "IOS", "token": "<raw APNs device token>" }

Renvoie 204. Idempotent — enregistrer un token déjà connu est sans effet, et un token enregistré en dernier par un autre compte est transféré à l’appelant·e (un appareil transmis ne doit jamais recevoir les notifications de quelqu’un d’autre). Plateformes : IOS (APNs) et ANDROID (FCM). Erreurs : 400 pour un token vide ou trop long.

DELETE /api/me/push-tokens/{token}

Renvoie 204, même quand rien ne correspond. Seul l’enregistrement de l’appelant·e est supprimé. Les tokens d’appareil sont aussi purgés automatiquement quand Apple les signale comme morts, et supprimés avec le compte.

GET /api/me/export

Renvoie un document JSON avec les données du compte et tout le contenu créé par l’utilisateur·rice, livré en téléchargement (Content-Disposition: attachment) — portabilité des données au sens du RGPD.

POST /api/me/delete
{ "password": "…" }

Renvoie 204 — le compte est supprimé définitivement : l’espace de travail personnel, les pièces jointes et le profil sont effacés ; les tâches dont l’utilisateur·rice est l’auteur·e dans les espaces partagés d’autres personnes restent, attribuées à un « Utilisateur inactif » réservé. Erreurs : 403 quand le mot de passe est incorrect, 409 tant que l’utilisateur·rice possède encore des espaces de travail partagés (supprime-les ou transfère d’abord la propriété).