API REST omegaUp
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 con formato 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.
Formato de respuesta
Todas las respuestas de API siguen un formato consistente:
Respuesta exitosa
{
"status": "ok",
"data": { ... }
}
Respuesta de error
{
"status": "error",
"error": "Error message",
"errorcode": 400
}
Categorías API
- API de concursos - Gestión y participación del concurso
- API de problemas - Creación y gestión de problemas
- API de usuarios - Gestión y autenticación de usuarios
- Ejecuta API - Manejo de envíos y resultados
- API de Aclaraciones - Aclaraciones del concurso
Ejemplo: Obtener la hora del servidor
Este es un punto final público que no requiere autenticación:
Solicitud:
GET https://omegaup.com/api/time/get/
{
"time": 1436577101,
"status": "ok"
}
Detalles del punto final
GET time/get/
Devuelve la marca de tiempo actual de UNIX según el reloj interno del servidor. Útil para sincronizar relojes locales.
| Campo | Tipo | Descripción |
|---|---|---|
| estado | cadena | Devuelve "ok" si la solicitud fue exitosa |
| tiempo | entero | Marca de tiempo UNIX que representa la hora del servidor |
Permisos requeridos: Ninguno
Catálogo completo de endpoints
Para una lista exhaustiva de métodos agrupados por controlador, consulte el README de Controllers generado automáticamente en el repositorio omegaUp. Las páginas aquí (users.md, contests.md, …) cubren los flujos más frecuentes; el README es la mejor referencia para un nombre concreto de apiAlgo.
Limitación de velocidad
Algunos puntos finales tienen límites de velocidad:
- Envíos: un envío por problema cada 60 segundos
- Llamadas API: varía según el punto final
Límite de tasa excedido respuestas:
{
"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? Explore las categorías de API o comience con Autenticación.