Skip to main content

API de Usuário e Minds

Gerenciamento de conta — registrar, login, criar minds, listar minds, excluir minds. Protegido por JWT.


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.

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:

{
  "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.

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.

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:

{
  "id": "m_xyz789",
  "name": "Work Mind",
  "description": "Job-related memories",
  "mind_key": "mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789",
  "created_at": "2026-06-27T..."
}
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.

curl -H "Authorization: Bearer YOUR_JWT" \
     https://synapse.schaefer.zone/minds

Resposta:

{
  "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.

curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \
     https://synapse.schaefer.zone/minds/m_xyz789
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:

# 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