Autenticación
Documentación completa sobre autenticación y seguridad en la API de Rayuela.
Rayuela utiliza dos métodos de autenticación según el tipo de operación:
API Keys
Para llamadas de aplicación (recomendaciones, ingesta de datos)
JWT Tokens
Para acceso al dashboard y gestión de cuenta
Recomendación: Usa API Keys para todas las llamadas de tu aplicación en producción.
Formato de API Key
sk_prod_1234567890abcdef1234567890abcdef12345678
sk_(secreta): solo para llamadas server-side. Nunca la expongas en el navegador ni en el HTML.pk_(publicable): pensada para el navegador/tracker, conscopesyallowedDomainspara restringir dónde puede usarse. Se configura al crear la key.
Uso en Headers
curl -X GET "https://api.rayuela.ai/api/v1/health/auth" \
-H "X-API-Key: sk_prod_tu_api_key_aqui"Verificar API Key
Usa este endpoint para verificar que tu API Key es válida:
GET /health/auth
# Respuesta exitosa (200):
{
"status": "authenticated",
"account_id": 123,
"plan": "professional"
}Crea una nueva cuenta y obtén tu primera API Key automáticamente.
Request
curl -X POST "https://api.rayuela.ai/api/v1/auth/register" \
-H "Content-Type: application/json" \
-d '{
"accountName": "Mi Empresa",
"email": "admin@miempresa.com",
"password": "password_seguro_123"
}'Respuesta
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"tokenType": "bearer",
"accountId": 123,
"userId": 456,
"isAdmin": true,
"apiKey": "sk_prod_1234567890abcdef...",
"message": "Cuenta creada exitosamente",
"emailVerificationRequired": true
}Importante: Guarda tu API Key de forma segura. No se puede recuperar después del registro.
Variables de Entorno
Nunca hardcodees API Keys en tu código. Usa variables de entorno.
HTTPS Obligatorio
Todas las llamadas deben usar HTTPS para proteger las API Keys en tránsito.
Rotación de Keys
Rota tus API Keys periódicamente desde el dashboard.
Monitoreo
Monitorea el uso de tus API Keys desde el dashboard para detectar uso anómalo.
{
"message": "API Key inválida o faltante",
"errorCode": "INVALID_API_KEY",
"requestId": "req_1234567890abcdef"
}- •
message: descripción legible del error - •
errorCode: código estable para manejar el error en tu código - •
requestId: identificador de la request; inclúyelo si contactás a soporte