Saltar al contenido principal

Autenticación

VigilSquad utiliza autenticación mediante Bearer token. Todos los endpoints protegidos de la API requieren un token válido en el encabezado Authorization.

Descripción General​

Existen dos tipos de autenticación:

TipoCaso de UsoCómo Obtenerlo
Token de API de la empresaIntegraciones servidor a servidor, scriptsPágina de Configuración del Panel
JWT de sesiónSesiones de frontend/panelPOST /api/auth/login

Token de API de la Empresa​

La forma más sencilla de autenticarse. Obtén tu token desde el Panel:

  1. Inicia sesión en app.vigilsquad.com
  2. Ve a Configuración
  3. Copia el Token de API

Úsalo en cada solicitud:

curl -H "Authorization: Bearer YOUR_API_TOKEN" \
https://api.vigilsquad.com/api/agents

Autenticación por Sesión (JWT)​

Para acceso programático, puedes obtener un JWT de sesión mediante el endpoint de inicio de sesión.

Registro​

curl -X POST https://api.vigilsquad.com/api/auth/register \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "your-secure-password",
"companyName": "Acme Corp"
}'

Respuesta (201 Created):

{
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "user@example.com"
},
"company": {
"id": 1,
"companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"companyName": "Acme Corp"
}
}
info

Las cuentas nuevas reciben $5 en créditos gratuitos y un pipeline de ventas predeterminado con 6 etapas.

Inicio de Sesión​

curl -X POST https://api.vigilsquad.com/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "your-secure-password"
}'

Respuesta (200 OK):

{
"session": {
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"refresh_token": "v1.MjE0...",
"expires_at": 1712345678
},
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "user@example.com",
"companyId": 1
}
}

Renovar Token​

Los tokens de acceso expiran. Usa el token de renovación para obtener una nueva sesión sin volver a autenticarte:

curl -X POST https://api.vigilsquad.com/api/auth/refresh \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "v1.MjE0..."
}'

Respuesta (200 OK):

{
"session": {
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"refresh_token": "v1.new-refresh-token...",
"expires_at": 1712349278
}
}

Obtener Usuario Actual​

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
https://api.vigilsquad.com/api/auth/me

Respuesta (200 OK):

{
"user": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "user@example.com",
"companyId": 1,
"isSuperadmin": false
},
"company": {
"id": 1,
"companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"companyName": "Acme Corp",
"createdAt": "2026-01-15T10:30:00.000Z"
}
}

Respuestas de Error​

EstadoCódigoDescripción
401INVALID_CREDENTIALSCorreo electrónico o contraseña incorrectos
401REFRESH_FAILEDToken de renovación inválido o expirado
500USER_CREATION_FAILEDEl registro falló (es posible que el correo electrónico ya exista)
500INTERNAL_ERRORError del servidor

Todas las respuestas de error siguen este formato:

{
"error": {
"code": "INVALID_CREDENTIALS",
"message": "Invalid email or password"
}
}

Aislamiento Multi-Tenant​

Todos los datos están limitados por companyId. Tu token de API o JWT restringe automáticamente el acceso únicamente a los recursos de tu empresa. No es posible acceder a los agentes, conversaciones o datos de otra empresa.