LEO SKL Connect
Abrir menu
Consulta perfiles academicos de LEO con una peticion POST.
Este servicio envuelve la libreria publica de LEO y entrega respuestas compactas para apps, bots, integraciones internas o paneles administrativos.
no-storeRespuestas privadas sin cache.
compactPayload listo para interfaces.
jsonErrores y exitos con formato estable.
rate-limitLimite por IP, ruta y ventana de tiempo.
corsOrigenes permitidos configurables.
resendContacto conectado por correo.
Endpoint principal
Perfil academico compacto
La ruta recomendada para construir interfaces sin cargar respuestas pesadas.
Ruta
/profile
Cache
no-store
Respuesta
compacta
cURL
curl -X POST https://leo.sklconnect.com/api/leo/profile \
-H "Content-Type: application/json" \
-d '{ "codigo": "A00000000", "password": "tu_contraseña"}'Peticiones registradas
local--
Cargando contador
Endpoints disponibles
Primer bloque de capacidades expuestas por la API.
/api/leo/profilePerfil compacto para UI.
/api/leo/profile/fullPerfil completo sanitizado.
/api/leo/kardexKardex, ciclos y progreso.
/api/leo/schedulesHorarios por ciclo.
/api/leo/cardCredencial resumida.
/api/leo/statsContador operativo persistente si Redis esta conectado.
Body
Credenciales enviadas por el consumidor de la API.
JSON
{
"codigo": "A00000000",
"password": "tu_contraseña"
}Respuesta OK
Perfil academico compacto, listo para UI.
200
{
"ok": true,
"profile": {
"student": {},
"plan": {},
"stats": {},
"cycles": [],
"completedCourses": [],
"schedules": [],
"studentCard": {}
}
}Errores
Formato estable para credenciales, LEO o servidor.
4xx/5xx
{
"ok": false,
"code": "INVALID_CREDENTIALS",
"message": "No se pudo iniciar sesion en LEO. Revisa tu codigo y contraseña."
}Acceso
Todos los endpoints POST usan el mismo body.
Header
Content-Type: application/jsonPor ahora el consumo documentado no requiere clave adicional. Las credenciales del alumno se envian en el body y solo se usan para ejecutar la consulta solicitada.
Rate limit
Proteccion basica contra abuso.
Limite
100
Ventana
60s
Agrupado por
IP + ruta
Headers
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
X-RateLimit-Reset: 2026-06-01T18:00:00.000ZReferencia de endpoints
Que devuelve cada ruta y cuando usarla.
Perfil compacto/api/leo/profile
Uso recomendado para interfaces, dashboards y apps cliente.
Perfil completo/api/leo/profile/full
Respuesta amplia de la libreria, sanitizada antes de salir.
Kardex/api/leo/kardex
Materias capturadas, ciclos, progreso y datos de historial.
Horarios/api/leo/schedules
Materias actuales o inscritas por ciclo, separadas del kardex.
Credencial/api/leo/card
Resumen de credencial sin imagenes, firma ni QR en base64.
Estadisticas/api/leo/stats
Contador operativo y desglose por ruta.
Codigos de error
Todos los errores mantienen el formato ok/code/message.
INVALID_JSONerror
El body no es JSON valido.
MISSING_CREDENTIALSerror
Falta codigo o contraseña.
CORS_ORIGIN_DENIEDerror
El origen web no esta permitido.
RATE_LIMITEDerror
Se excedio el limite de peticiones.
INVALID_CREDENTIALSerror
LEO no acepto las credenciales.
HTTP_ERRORerror
LEO respondio con un error temporal.
UNKNOWN_ERRORerror
Error inesperado del servidor.
Perfil compacto
Campos principales devueltos por /api/leo/profile.
studentprofile
Datos basicos del alumno.
planprofile
Plan academico, estado, nivel y ciclo activo.
statsprofile
Creditos, promedio, ciclos y conteos.
cyclesprofile
Resumen por ciclo cursado.
completedCoursesprofile
Materias capturadas en kardex.
schedulesprofile
Horarios y materias por ciclo.
studentCardprofile
Credencial resumida y estado de recursos.
Seguridad y privacidad
Medidas aplicadas en servidor.
- No se guardan contraseñas ni sesiones academicas.
- Las respuestas privadas usan Cache-Control: no-store.
- Se sanitizan raw, tokens, imagenes, firmas, QR y base64.
- La credencial de servidor permanece solo en variables de entorno.
Casos de uso
Escenarios donde esta API tiene sentido.
Acceso e integraciones
¿Tienes dudas o quieres empezar?
Escríbenos para solicitar acceso, revisar una integración o resolver dudas sobre el uso de la API.