# API de User y Minds La API de User y Minds gestiona la administración de cuentas. Estos endpoints usan autenticación JWT (no Mind Keys) porque operan a nivel de cuenta, no a nivel de mind. ## Endpoints de autenticación ### POST /register Crea una nueva cuenta de usuario. ```bash curl -X POST https://synapse.schaefer.zone/register \ -H "Content-Type: application/json" \ -d '{ "email": "you@example.com", "password": "your-secure-password", "display_name": "Michael" }' ``` Respuesta: ```json { "jwt": "eyJhbGci...", "user": { "id": "u_abc123", "email": "you@example.com", "display_name": "Michael", "created_at": "2026-06-27T..." } } ``` ### POST /login Inicia sesión en una cuenta existente. ```bash curl -X POST https://synapse.schaefer.zone/login \ -H "Content-Type: application/json" \ -d '{ "email": "you@example.com", "password": "your-secure-password" }' ``` Respuesta: igual que `/register`. ## Endpoints de Minds ### POST /minds Crea un nuevo mind. Devuelve el Mind Key — **guárdelo de inmediato**, solo se muestra una vez. ```bash curl -X POST https://synapse.schaefer.zone/minds \ -H "Authorization: Bearer YOUR_JWT" \ -H "Content-Type: application/json" \ -d '{ "name": "Work Mind", "description": "Job-related memories" }' ``` Respuesta: ```json { "id": "m_xyz789", "name": "Work Mind", "description": "Job-related memories", "mind_key": "mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789", "created_at": "2026-06-27T..." } ``` > [!CRITICAL] > El `mind_key` se muestra solo una vez. Si lo pierde, no podrá recuperarlo — > debe eliminar el mind y crear uno nuevo (lo que pierde todas las memorias > almacenadas). ### GET /minds Lista todos los minds del usuario actual. ```bash curl -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds ``` Respuesta: ```json { "minds": [ { "id": "m_xyz789", "name": "Work Mind", "description": "Job-related memories", "created_at": "2026-06-27T...", "memory_count": 142, "last_activity": "2026-06-27T..." } ] } ``` ### DELETE /minds/:id Elimina un mind de forma permanente. ```bash curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds/m_xyz789 ``` > [!WARNING] > Eliminar un mind es **irreversible**. Todas las memorias, tareas, historial > de chat y scripts de ese mind se pierden de forma permanente. Exporte primero > vía `GET /memory/mind-export` si necesita un backup. ## Patrón multi-mind La mayoría de los usuarios se beneficia de tener múltiples minds para mantener los contextos aislados: ```bash # Create minds for different contexts curl -X POST .../minds -d '{"name": "work", "description": "Job"}' # → mind_key: mk_work... curl -X POST .../minds -d '{"name": "personal", "description": "Personal life"}' # → mind_key: mk_personal... curl -X POST .../minds -d '{"name": "project-synapse", "description": "Synapse dev"}' # → mind_key: mk_synapse... ``` Use diferentes Mind Keys en diferentes sesiones LLM para mantener los contextos aislados. ## Seguridad de la cuenta ### Requisitos de contraseña - Mínimo 6 caracteres - Sin máximo (use un gestor de contraseñas) - Se almacena como hash bcrypt (nunca en texto plano) ### Expiración del JWT Los JWT expiran después de **7 días**. Al expirar, simplemente llame de nuevo a `/login`. ### Seguridad del Mind Key Los Mind Keys nunca expiran. Si un Mind Key se ve comprometido: 1. Cree un nuevo mind vía `POST /minds` 2. Actualice la configuración de su LLM con el nuevo Mind Key 3. Elimine el mind comprometido vía `DELETE /minds/:id` ## Próximos pasos - [Autenticación](/docs/getting-started/authentication) — guía completa de auth - [Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt) — guía de decisión - [API de Sharing](/docs/api/user) — compartir minds con otros usuarios