URL base

http://localhost:3001/api

Autenticación

Los endpoints de la API requieren autenticación via cookie de sesión o header de API key:

# Usando API key
curl -H "Authorization: Bearer sk_..." http://localhost:3001/api/observations

# Usando cookie de sesión (después de login)
curl --cookie "authjs.session-token=..." http://localhost:3001/api/observations

Observaciones

Listar observaciones

GET /api/observations

Parámetros de consulta:

Parámetro Tipo Descripción
project string Filtrar por proyecto
type string Filtrar por tipo
limit number Máximo de resultados (default: 50)
offset number Offset de paginación
sort string created_at o updated_at

Respuesta:

{
  "observations": [
    {
      "id": 42,
      "title": "Corregido N+1 en UserList",
      "type": "bug",
      "content": "What: Agregada carga batch...",
      "topic_key": "bugfix/n1-userlist",
      "project_id": "mi-app"
    }
  ],
  "total": 342,
  "limit": 50,
  "offset": 0
}

Crear observación

POST /api/observations

Obtener observación

GET /api/observations/:id

Actualizar observación

PATCH /api/observations/:id

Eliminar observación

DELETE /api/observations/:id

Búsqueda

GET /api/search?q=elección+base+datos&type=decision&limit=10

Usa búsqueda FTS5 de texto completo en todas las observaciones.

Sesiones

Iniciar sesión

POST /api/sessions

Finalizar sesión

POST /api/sessions/:id/end

Respuestas de error

Todos los errores siguen este formato:

{
  "error": {
    "code": "NOT_FOUND",
    "message": "Observación 999 no encontrada"
  }
}
Código HTTP Status Descripción
NOT_FOUND 404 Recurso no encontrado
VALIDATION_ERROR 400 Body de request inválido
UNAUTHORIZED 401 Auth faltante o inválida
RATE_LIMITED 429 Demasiadas solicitudes
INTERNAL_ERROR 500 Error del servidor