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: prefijonrn_live_+ 32 caracteres hexadecimales = 41 caracteres). - La key lleva un scope:
read→ solo métodosGET.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 | Sí | Email del usuario. |
password |
string | Sí | 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.