# API de Usuário e Minds A API de Usuário e Minds cuida do gerenciamento de conta. Esses endpoints usam autenticação JWT (não Mind Keys) porque operam em nível de conta, não em nível de mind. ## Endpoints de autenticação ### POST /register Cria uma nova conta de usuário. ```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" }' ``` Resposta: ```json { "jwt": "eyJhbGci...", "user": { "id": "u_abc123", "email": "you@example.com", "display_name": "Michael", "created_at": "2026-06-27T..." } } ``` ### POST /login Faz login em uma conta existente. ```bash curl -X POST https://synapse.schaefer.zone/login \ -H "Content-Type: application/json" \ -d '{ "email": "you@example.com", "password": "your-secure-password" }' ``` Resposta: mesma de `/register`. ## Endpoints de minds ### POST /minds Cria um novo mind. Retorna a Mind Key — **salve-a imediatamente**, ela é exibida apenas uma 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" }' ``` Resposta: ```json { "id": "m_xyz789", "name": "Work Mind", "description": "Job-related memories", "mind_key": "mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789", "created_at": "2026-06-27T..." } ``` > [!CRITICAL] > A `mind_key` é exibida apenas uma vez. Se você a perder, não poderá recuperá- > -la — será necessário excluir o mind e criar um novo (o que apaga todas as > memórias armazenadas). ### GET /minds Lista todos os minds do usuário atual. ```bash curl -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds ``` Resposta: ```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 Exclui um mind permanentemente. ```bash curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds/m_xyz789 ``` > [!WARNING] > Excluir um mind é **irreversível**. Todas as memórias, tarefas, histórico de > chat e scripts desse mind são perdidos permanentemente. Exporte antes via > `GET /memory/mind-export` se precisar de backup. ## Padrão multi-mind A maioria dos usuários se beneficia de múltiplos minds para manter contextos isolados: ```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 Mind Keys diferentes em sessões LLM diferentes para manter contextos isolados. ## Segurança da conta ### Requisitos de senha - Mínimo de 6 caracteres - Sem máximo (use um gerenciador de senhas) - Armazenada como hash bcrypt (nunca em texto puro) ### Expiração do JWT JWTs expiram após **7 dias**. Quando expirar, basta chamar `/login` novamente. ### Segurança da Mind Key Mind Keys nunca expiram. Se uma Mind Key for comprometida: 1. Crie um novo mind via `POST /minds` 2. Atualize sua configuração de LLM com a nova Mind Key 3. Exclua o mind comprometido via `DELETE /minds/:id` ## Próximos passos - [Autenticação](/docs/getting-started/authentication) — guia completo de auth - [Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt) — guia de decisão - [API de Compartilhamento](/docs/api/user) — compartilhe minds com outros usuários