Autenticación

Credenciales por organización, enviadas en cada request.

Cada organización tiene un par de credenciales —una API key y una secret access— que la plataforma genera y que identifican a tu integración.

Las dos van en todos los requests, como headers separados. Siempre las dos: falta una y el request se rechaza.

$curl https://www.crehana.com/api/v5/rest/org/mi-org/learning/content/knowledge-hub/catalog/elevate/ \
> -H "Api-Key: $API_KEY" \
> -H "Secret-Access: $SECRET_ACCESS"
HeaderDescripción
Api-KeyAPI key de la organización
Secret-AccessSecret access de la organización

Errores de autenticación

Falte un header o sean inválidas las credenciales, la respuesta es la misma: 401, sin distinguir cuál de los dos casos fue.

1{
2 "detail": {
3 "errors": ["AuthenticationError: User is not authenticated in centralized"]
4 }
5}

Es a propósito: decirte cuál de las dos credenciales no sirve le serviría igual a quien las está probando a ciegas. Si te llega un 401, revisá los dos headers antes que las credenciales — que falte uno es bastante más frecuente que que estén mal.

Las credenciales se validan por formato antes de cualquier consulta, así que un valor evidentemente mal formado —vacío, o de un largo imposible— se rechaza sin llegar a verificarse. No cambia lo que ves: sigue siendo un 401.

Tratá la secret access como una contraseña. No la pongas en código cliente ni la commitees — desde el navegador no hay forma segura de usarla, porque cualquiera puede leer los headers que manda tu página.