Ir al contenido

API: Cuenta

Todos los endpoints de esta sección operan sobre el usuario que tiene la sesión iniciada.

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 es el momento en que se creó la cuenta.

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

Devuelve 204. Errores: 400 cuando alguno de los campos está vacío.

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

Devuelve 204; se cierra la sesión en todas las demás sesiones. Errores: 403 cuando la contraseña actual es incorrecta, 400 cuando la nueva contraseña no es válida (8–72 caracteres).

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

Devuelve 202 en todos los casos — el código de confirmación de 6 dígitos solo se envía cuando la dirección es realmente utilizable (anti-enumeración: la respuesta nunca revela si una dirección ya está en uso). Errores: 400 para una dirección mal formada.

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

Devuelve 204: la dirección de correo electrónico se cambia y se cierra la sesión en todas las demás sesiones. Errores: 400 para un código no válido o caducado (los códigos caducan a los 15 minutos).

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

Devuelve 204. Idempotente — registrar un token ya conocido no tiene efecto, y un token registrado por última vez por otra cuenta pasa a quien hace la llamada (un dispositivo que cambia de manos nunca debe recibir las notificaciones de otra persona). Plataformas: IOS (APNs) y ANDROID (FCM). Errores: 400 para un token vacío o demasiado grande.

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

Devuelve 204, también cuando no hay coincidencias. Solo se elimina el registro de quien hace la llamada. Los tokens de dispositivo también se depuran automáticamente cuando Apple informa de que están muertos, y se eliminan con la cuenta.

GET /api/me/export

Devuelve un documento JSON con los datos de la cuenta y todo el contenido que el usuario creó, entregado como descarga (Content-Disposition: attachment) — portabilidad de datos del RGPD.

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

Devuelve 204 — la cuenta se elimina permanentemente: el espacio de trabajo personal, los archivos adjuntos y el perfil se borran; las tareas que el usuario creó en espacios de trabajo compartidos de otras personas permanecen, atribuidas a un «Usuario inactivo» reservado. Errores: 403 cuando la contraseña es incorrecta, 409 mientras el usuario aún posee espacios de trabajo compartidos (elimínalos o transfiere antes la propiedad).