Braine.ai API

Documentacion de referencia y estado de los servicios de la plataforma

Estado de los servicios
API Server
Verificando...
Base de datos
Verificando...
WhatsApp Bridge
Verificando...
Motor IA
Verificando...
Autenticacion

La API de administracion utiliza autenticacion basada en JWT. Para obtener un token, realiza un POST a /api/admin/login con las credenciales.

POST /api/admin/login
Content-Type: application/json

{
  "user": "tu-usuario",
  "password": "tu-contraseña"
}

// Respuesta:
{
  "ok": true,
  "user": "admin"
}
// La cookie 'braine_token' se establece automaticamente

Para webhooks de ingesta, usa el header Authorization: Bearer {BRIDGE_INGEST_TOKEN}.

Endpoints de la API
General
GET /health Estado del servidor

Verifica que el servidor y la base de datos esten operativos.

// Respuesta 200:
{ "status": "ok", "db": true }
Admin — Sesion
POST /api/admin/login Iniciar sesion

Autentica un administrador y establece cookie JWT.

Body: { "user": "admin", "password": "..." }
Respuesta: { "ok": true, "user": "admin" }
GET /api/admin/me Sesion actual

Devuelve el usuario autenticado actual.

POST /api/admin/logout Cerrar sesion

Elimina la cookie de sesion.

Empresas (Tenants)
GET /api/admin/tenants Listar empresas

Devuelve todas las empresas registradas con conteo de proyectos y actores.

POST /api/admin/tenants Crear empresa
Body: { "name": "Mi Empresa", "industry": "construccion" }
PUT /api/admin/tenants/:id Actualizar empresa
Body: { "name": "Nuevo nombre", "industry": "logistica" }
DELETE /api/admin/tenants/:id Eliminar empresa

Elimina una empresa. Falla si tiene proyectos asociados.

Proyectos
GET /api/admin/projects Listar proyectos

Query params: ?tenant_id=uuid (opcional, filtrar por empresa)

POST /api/admin/projects Crear proyecto
Body: {
  "name": "Edificio Norte",
  "tenant_id": "uuid",
  "area_type": "construccion_obra_civil",
  "wa_group_id": "grupo-whatsapp-id"
}
PUT /api/admin/projects/:id Actualizar proyecto
Body: { "name": "Nuevo nombre", "area_type": "logistica_transporte" }
DELETE /api/admin/projects/:id Eliminar proyecto

Elimina un proyecto y sus membresías, hechos y eventos asociados.

GET /api/admin/projects/:id/members Miembros del proyecto

Lista los actores asignados al proyecto con sus roles y permisos.

Usuarios (Actors)
GET /api/admin/actors Listar usuarios

Query params: ?tenant_id=uuid (opcional, filtrar por empresa)

POST /api/admin/actors Crear usuario
Body: {
  "phone": "+573001234567",
  "name": "Juan Perez",
  "role": "worker",
  "tenant_id": "uuid"
}
POST /api/admin/memberships Asignar usuario a proyecto
Body: {
  "actor_id": "uuid",
  "project_id": "uuid",
  "role": "reporter"
}
DELETE /api/admin/memberships/:id Revocar asignacion

Revoca la membresia de un usuario en un proyecto (soft delete).

WhatsApp
GET /api/admin/whatsapp/ycloud/status Estado de YCloud

Verifica la conexion con el proveedor YCloud WhatsApp API.

POST /api/admin/whatsapp/ycloud/notify Enviar notificacion
Body: {
  "to": "+573001234567",
  "text": "Mensaje de notificacion",
  "mediaUrl": "https://...",  // opcional
  "mediaType": "image"        // opcional: image|document|video
}
Webhooks (Ingesta)
POST /webhook/ycloud Webhook de YCloud

Recibe eventos de YCloud WhatsApp API. Configurar en el dashboard de YCloud.

Header requerido: x-api-key: {BRIDGE_INGEST_TOKEN}

POST /webhook/ingest Ingesta generica

Endpoint generico para enviar mensajes desde cualquier fuente.

Header: Authorization: Bearer {BRIDGE_INGEST_TOKEN}

Hechos (Facts)
GET /api/admin/facts Listar hechos

Query params: ?project_id=uuid&limit=50&offset=0

Devuelve hechos extraidos por IA con confianza, categoria, y fuente.