Documentación de la API de resultados
Resultados de las loterías, el chance y el Baloto de Colombia. 44 sorteos activos, archivo desde 2024. JSON, UTF-8, fechas en hora de Colombia.
Por defecto no recibes resultados en disputa ni con una sola fuente detrás. status distingue los verificados de los pendientes: si notificas a personas, filtra por confirmed. Con ?include=preliminary recibes además lo que no llega a ese umbral.
Especificación OpenAPI 3.1 en /openapi.json, si prefieres generar el cliente.
Autenticación
Cabecera X-Api-Key. No hay query param ni Bearer.
Solo guardamos el SHA-256 de tu clave, así que no podemos reenviártela. Si la pierdes, se revoca y se emite otra.
curl -H "X-Api-Key: TU_CLAVE" "https://www.loteriaya.com.co/v1/draws"¿Todavía no tienes clave? Los planes y cómo pedirla.
Endpoints
Las fechas van en YYYY-MM-DD, hora de Colombia. Los identificadores de sorteo no se traducen: son nombres propios.
Catálogo de sorteos
GET/v1/draws
Los sorteos que cubrimos, con su calendario y su hora. Sus identificadores son los que aceptan los demás endpoints.
curl -H "X-Api-Key: TU_CLAVE" \
"https://www.loteriaya.com.co/v1/draws"Respuestas
200El catálogo completo.401Falta la clave o no es válida.429Límite por minuto o cuota mensual agotada.500Error interno.
Todos los resultados de un día
GET/v1/results
Un día sin resultados devuelve 200 con results vacío, no un 404.
- dateen la query · obligatorio
Fecha en
YYYY-MM-DD, hora de Colombia.- includeen la query · opcional
Con
preliminaryrecibes también los resultados en disputa y los de una sola fuente. Cualquier otro valor devuelveinvalid_parameter.
curl -H "X-Api-Key: TU_CLAVE" \
"https://www.loteriaya.com.co/v1/results?date=2026-08-25"Respuestas
200Los resultados de ese día.resultsvacío si aún no hay ninguno.400Parámetro ausente o con formato erróneo.401Falta la clave o no es válida.403La fecha es anterior al histórico que cubre tu plan. El dato existe.429Límite por minuto o cuota mensual agotada.500Error interno.
Serie histórica de un sorteo
GET/v1/results/{draw}
Máximo 366 días por petición. Se pagina por rango.
- drawen la ruta · obligatorio
Identificador del sorteo, tal y como lo devuelve
/v1/draws.- fromen la query · obligatorio
Primer día del rango, incluido.
- toen la query · obligatorio
Último día del rango, incluido. No puede ser anterior a
from.- includeen la query · opcional
Con
preliminaryrecibes también los resultados en disputa y los de una sola fuente. Cualquier otro valor devuelveinvalid_parameter.
curl -H "X-Api-Key: TU_CLAVE" \
"https://www.loteriaya.com.co/v1/results/loteria-del-huila?from=2026-08-01&to=2026-08-25"Respuestas
200Los resultados del rango, del más reciente al más antiguo.400Parámetro con formato erróneo,fromposterior ato, o rango de más de 366 días.401Falta la clave o no es válida.403El rango empieza antes del histórico que cubre tu plan.404Ese identificador de sorteo no existe.429Límite por minuto o cuota mensual agotada.500Error interno.
Último resultado de un sorteo
GET/v1/results/{draw}/latest
Si el sorteo de hoy aún no alcanza el umbral, recibes el de la sesión anterior. Comprueba draw_date antes de notificar.
- drawen la ruta · obligatorio
Identificador del sorteo, tal y como lo devuelve
/v1/draws.- includeen la query · opcional
Con
preliminaryrecibes también los resultados en disputa y los de una sola fuente. Cualquier otro valor devuelveinvalid_parameter.
curl -H "X-Api-Key: TU_CLAVE" \
"https://www.loteriaya.com.co/v1/results/loteria-del-huila/latest"Respuestas
200El último resultado publicado.400Parámetro ausente o con formato erróneo.401Falta la clave o no es válida.404Ese sorteo no existe, o todavía no tiene ningún resultado publicado.429Límite por minuto o cuota mensual agotada.500Error interno.
Resultado de un sorteo en una fecha
GET/v1/results/{draw}/{date}
pending_confirmation y no_result comparten el 404 y no significan lo mismo: ante el primero reintenta en unos minutos, el dato existe. Ante el segundo, no.
- drawen la ruta · obligatorio
Identificador del sorteo, tal y como lo devuelve
/v1/draws.- dateen la ruta · obligatorio
Fecha del sorteo en
YYYY-MM-DD, hora de Colombia.- includeen la query · opcional
Con
preliminaryrecibes también los resultados en disputa y los de una sola fuente. Cualquier otro valor devuelveinvalid_parameter.
curl -H "X-Api-Key: TU_CLAVE" \
"https://www.loteriaya.com.co/v1/results/loteria-del-huila/2026-08-25"Respuestas
200El resultado de ese sorteo en esa fecha.400Parámetro ausente o con formato erróneo.401Falta la clave o no es válida.403La fecha es anterior al histórico que cubre tu plan.404Sorteo inexistente, día sin resultado, o resultado que todavía no alcanza el umbral de entrega.429Límite por minuto o cuota mensual agotada.500Error interno.
Forma de un resultado
Un resultado. Las claves comunes salen siempre, con null cuando no aplican.
{
"draw": "loteria-del-huila",
"name": "Lotería del Huila",
"category": "loteria",
"draw_date": "2026-08-25",
"draw_number": "4770",
"winning_number": "7401",
"winning_series": "168",
"top_prize": 2000000000,
"secondary_prizes": [
{
"label": "SECO DE $100 MILLONES",
"type": "secondary",
"number": "6567",
"series": "028",
"amount": 100000000
}
],
"status": "confirmed",
"published_at": "2026-08-25T23:01:02-05:00"
}Los endpoints de lista devuelven un sobre, no un array desnudo:
GET /v1/results/loteria-del-huila?from=2026-08-01&to=2026-08-25
{
"draw": "loteria-del-huila",
"from": "2026-08-01",
"to": "2026-08-25",
"total": 4,
"results": [ … ]
}| Campo | Tipo | Qué es |
|---|---|---|
| draw | string | Identificador del sorteo. No se traduce: es un nombre propio. |
| name | string | Nombre del sorteo. |
| category | string | Categoría del sorteo. Determina qué campos adicionales trae. |
| draw_date | string | Fecha del sorteo en hora de Colombia. |
| draw_number | string o null | Número de sorteo que le da el operador, cuando lo publica. |
| winning_number | string o null | Número ganador. Cadena, porque el cero a la izquierda es significativo: "0207" no es 207. En Baloto y Revancha es |
| winning_series | string o null | Serie ganadora. Cadena, por el mismo motivo. |
| top_prize | integer o null | Premio mayor en pesos colombianos, sin decimales. |
| secondary_prizes | array o null | Secos, aproximaciones y especiales. |
| status | string |
Por defecto recibes |
| published_at | string | Cuándo entró el resultado en el archivo, con el offset de Colombia. No es la hora del sorteo y no se actualiza, ni siquiera al verificarse. |
| fifth_digit(según categoría) | string o null | Solo en |
| balls(según categoría) | array | Solo en |
| super_ball(según categoría) | integer o null | Solo en |
| no_draw(según categoría) | boolean | Solo en los días declarados sin sorteo. Distingue «ese día no se jugó» de «todavía no ha salido». |
Los campos marcados según categoría salen solo donde aplican. Los demás salen siempre, con null cuando no hay valor.
Errores
Todos los errores tienen esta forma. code es estable; message puede cambiar de redacción sin previo aviso.
{
"error": {
"code": "quota_exceeded",
"message": "Monthly quota of 50000 requests exhausted."
}
}Los códigos posibles: missing_key · invalid_key · rate_limited · quota_exceeded · unknown_draw · history_not_included · no_result · pending_confirmation · invalid_parameter · range_too_large · internal_error.
no_result y pending_confirmation comparten el 404: ante el segundo reintenta en unos minutos, el dato existe.
Cuotas
Toda respuesta autenticada lleva tu consumo. Un 401 no: sin clave válida no hay plan del que informar.
X-RateLimit-Limit: 50000 peticiones de tu plan este mes
X-RateLimit-Remaining: 49873 lo que te queda
X-RateLimit-Reset: 1788238800 epoch del primer instante del mes siguienteLas cifras del ejemplo son las del plan Profesional. El tuyo llega en la cabecera, no hace falta que lo codifiques.
En un 429 se añade Retry-After en segundos: hasta el próximo minuto si el rechazo fue por el límite por minuto, y hasta el cambio de mes si fue por la cuota.
Webhooks
En vez de consultar, recibes un POST firmado con HMAC-SHA256 en tres momentos: cuando hay número, cuando se verifica y si el operador lo rectifica después.
Se configuran al dar de alta la clave. Escríbenos a contacto@loteriaya.com.co y te mandamos la especificación de la firma y los eventos.
Uso de los datos
Puedes almacenar los resultados en tu base y usarlos dentro de tu producto. Dos condiciones, que van por escrito en el acuerdo:
- Atribución: enlace visible a LoteríaYa donde muestres los resultados.
- Sin redistribución: el conjunto de datos no se revende ni se cede a terceros como producto de datos.
¿Algo que esta página no responde? contacto@loteriaya.com.co.