Saltar a contenido

Autenticación

La API admite dos mecanismos de autenticación: API Key (recomendado para integraciones server-to-server) y JWT (sesión de navegador). La organización va siempre implícita en la credencial — no existe un header de tenant.

La misma referencia, en otras dos formas

· Probar los endpoints — esta misma información, desplegable y con botón para ejecutar las consultas de lectura contra tu organización. · Ciclo de vida de una campaña — si buscabas el recorrido completo en orden en vez del contrato suelto.

Base URL: https://api.neuronstudio.ai


API Key (recomendado para server-to-server)

  • Header: X-API-Key: nrn_live_<32 hex> (formato: prefijo nrn_live_ + 32 caracteres hexadecimales = 41 caracteres).
  • La key lleva un scope:
  • read → solo métodos GET.
  • full → todo el ciclo de campañas + todas las lecturas.
  • La organización va implícita en la key. Una key solo ve datos de su propia organización. No existe el header X-Tenant-ID.

Ejemplo de uso en cualquier endpoint:

API_BASE_URL="https://api.neuronstudio.ai"

curl -s "$API_BASE_URL/api/agents" \
  -H "X-API-Key: nrn_live_0123456789abcdef0123456789abcdef"

Cómo obtener una API Key

La emisión de API Keys no es self-serve. Las keys las crea un administrador de tu organización (con MFA) y se muestran una sola vez. Solicita tu API Key a tu contacto de Neuron o al administrador de tu organización.

Para integraciones server-to-server prefiere API Key sobre JWT: no expira en 24 horas, no requiere refrescar sesión y lleva el scope acotado.


POST /api/auth/login

Inicia sesión con email y password y devuelve un access_token (JWT). Pensado para sesiones de navegador. Para integraciones server-to-server, usa API Key.

Atributo Valor
Método POST
Path /api/auth/login
URL completa https://api.neuronstudio.ai/api/auth/login
Autenticación No requiere (es el endpoint que la emite)
Scope
Rate limit 5 solicitudes / 5 minutos por IP

Body (JSON)

Campo Tipo Requerido Descripción
email string Email del usuario.
password string Password del usuario.

Ejemplo de request

API_BASE_URL="https://api.neuronstudio.ai"

curl -s -X POST "$API_BASE_URL/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "usuario@tuempresa.com",
    "password": "TuPassword123!"
  }'

Ejemplo de response (200)

{
  "success": true,
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "user": {
    "id": 123,
    "email": "usuario@tuempresa.com",
    "name": "Juan Pérez",
    "role": "admin",
    "organization_id": 1,
    "organization_name": "Tu Empresa S.A."
  }
}

Usar el token

Guarda el access_token y envíalo en el header Authorization de las siguientes solicitudes:

curl -s "$API_BASE_URL/api/campaign/status" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

La sesión de navegador se renueva automáticamente vía cookie httpOnly.

Códigos de error

Código Cuándo ocurre
400 Falta email o password, o el body no es JSON válido.
401 Credenciales inválidas (email o password incorrectos).
423 Cuenta bloqueada (demasiados intentos fallidos).
429 Más de 5 intentos en 5 minutos desde la misma IP. No incluye Retry-After: espera 5 minutos.

Forma del error:

{
  "success": false,
  "error": "Credenciales inválidas",
  "error_id": "3f2b1a90-...",
  "request_id": "9c7d4e21-..."
}

API Key vs JWT — cuándo usar cada uno

API Key JWT (login)
Uso recomendado Integraciones server-to-server, scripts, backends Sesión de navegador, panel web
Header X-API-Key: nrn_live_... Authorization: Bearer <token>
Expiración No expira (revocable por el admin) 24 horas (renovación por cookie)
Scope read o full Según el rol del usuario

Para automatizar campañas desde tu backend, usa API Key con scope full.