Referencia de API
omegaUp proporciona una API REST completa a la que se puede acceder directamente. Todos los puntos finales utilizan métodos HTTP estándar (GET o POST) y devuelven respuestas JSON.
URL base
Todos los puntos finales de API tienen el prefijo:
https://omegaup.com/api/
Autenticación
Se requiere HTTPS
Sólo se permiten conexiones HTTPS. Las solicitudes HTTP devolverán HTTP 301 Permanent Redirect.
Algunos puntos finales son públicos y no requieren autenticación. Los puntos finales protegidos requieren autenticación a través de un auth_token obtenido del punto final user/login.
El token debe incluirse en una cookie denominada ouat (token de autenticación omegaUp) para solicitudes autenticadas.
Sesión única
omegaUp solo admite una sesión activa a la vez. Iniciar sesión mediante programación invalidará la sesión de su navegador y viceversa.
Categorías API
-
Crear, gestionar y participar en concursos de programación.
-
Crear, actualizar y gestionar problemas de programación.
-
Gestión de usuarios, autenticación y operaciones de perfiles.
-
Envíe el código, verifique el estado y recupere los resultados del envío.
-
Hacer y responder preguntas durante los concursos.
Ejemplo rápido
Obtenga la hora actual del servidor (punto final público):
curl https://omegaup.com/api/time/get/
{
"time": 1436577101,
"status": "ok"
}
Formato de respuesta
Todas las respuestas de API siguen un formato consistente:
{
"status": "ok",
"data": { ... }
}
{
"status": "error",
"error": "Error message",
"errorcode": 400
}
Limitación de velocidad
Algunos puntos finales tienen límites de velocidad para evitar abusos:
- Envíos: un envío por problema cada 60 segundos
- Llamadas API: varía según el punto final
Las respuestas sobre el límite de velocidad excedido incluyen:
{
"status": "error",
"error": "Rate limit exceeded",
"errorcode": 429
}
Documentación relacionada
- Guía de autenticación - Flujo de autenticación detallado
- Descripción general de la arquitectura - Arquitectura del sistema
- Guías de desarrollo - Uso de la API en desarrollo
¿Listo para usar la API? Comience con Autenticación o explore las categorías de API arriba.