Skip to main content

API de User y Minds

Gestión de cuenta — registro, login, crear minds, listar minds, eliminar minds. Protegido con JWT.


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.

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:

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

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.

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:

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

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

Respuesta:

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

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

# 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