Dados abertos das loterias
O histórico de todos os concursos (24.237 no total) em CSV, uma API JSON somente leitura e o widget do último resultado para colar no seu site. Gratuito, sem cadastro e sem chave de acesso.
O que tem aqui
| Loteria | Concursos | Último concurso | Histórico |
|---|---|---|---|
| Mega-Sena | 3.073 | 3073 | megasena.csv |
| Quina | 7.150 | 7150 | quina.csv |
| Lotofácil | 3.812 | 3812 | lotofacil.csv |
| Lotomania | 2.991 | 2991 | lotomania.csv |
| Dupla Sena | 3.024 | 3024 | duplasena.csv |
| Timemania | 2.457 | 2458 | timemania.csv |
| Dia de Sorte | 1.330 | 1330 | diadesorte.csv |
| +Milionária | 400 | 400 | maismilionaria.csv |
Os arquivos e a API são atualizados logo depois de cada sorteio, assim que a Caixa publica o resultado.
Colunas do CSV
Uma linha por concurso, do mais antigo ao mais recente. Separador vírgula, ponto como separador decimal, valores em reais com 2 casas, datas em AAAA-MM-DD, codificação UTF-8 sem BOM. Cada loteria tem só as colunas que se aplicam a ela.
| Coluna | O que é |
|---|---|
| concurso | Número do concurso. |
| data | Data do sorteio (AAAA-MM-DD). |
| dezena_1 … dezena_N | Dezenas sorteadas, em ordem crescente. |
| ordem_1 … ordem_N | Dezenas na ordem em que foram sorteadas; vazias quando a Caixa não publicou a ordem. |
| dezena2_1 … dezena2_6 | Só na Dupla Sena: dezenas do 2º sorteio, em ordem crescente. |
| ordem2_1 … ordem2_6 | Só na Dupla Sena: dezenas do 2º sorteio na ordem do sorteio; vazias quando a Caixa não publicou a ordem. |
| trevo_1, trevo_2 | Só na +Milionária: trevos sorteados, em ordem crescente. |
| time_do_coracao | Só na Timemania: Time do Coração sorteado, como a Caixa publicou; a grafia do mesmo time muda ao longo do tempo (com e sem acento, abreviada). |
| time_do_coracao_normalizado | Só na Timemania: o mesmo time em maiúsculas, sem acento e com as grafias antigas unificadas; use esta coluna para agrupar ou contar por time. |
| mes_da_sorte | Só no Dia de Sorte: Mês da Sorte sorteado. |
| acumulou | 1 se o prêmio principal acumulou, 0 se não. |
| arrecadacao | Total arrecadado no concurso, em reais; vazio quando não foi publicado. |
| estimativa_proximo | Prêmio estimado para o concurso seguinte, em reais; vazio quando não foi publicado. |
| ganhadores_principal | Ganhadores da faixa principal; vazio quando o rateio não foi publicado ou não foi reconhecido. |
| premio_principal | Prêmio da faixa principal por ganhador, em reais; vazio sem ganhador ou sem rateio reconhecido. |
| ganhadores_principal_2 | Só na Dupla Sena: ganhadores da sena do 2º sorteio. |
| premio_principal_2 | Só na Dupla Sena: prêmio da sena do 2º sorteio por ganhador, em reais; vazio sem ganhador. |
| moeda_original | Moeda em que a Caixa divulgou os valores: BRL (real) ou BRR (cruzeiro real, antes de 1/7/1994, convertido para reais dividindo por 2.750). |
API JSON
Somente leitura (GET), versão 1. Troque megasena pelo identificador de outra loteria: megasena, quina, lotofacil, lotomania, duplasena, timemania, diadesorte, maismilionaria. Use as URLs exatamente como abaixo, com a barra no fim: sem ela, o site responde com um redirecionamento 301, que não traz os cabeçalhos de CORS e falha no navegador.
- https://loteria.superfacil.site/api/v1/
Índice: cada loteria com o total de concursos, o último número, a data da última mudança e os links abaixo. - https://loteria.superfacil.site/api/v1/megasena/ultimo/
Último concurso da loteria. - https://loteria.superfacil.site/api/v1/megasena/concursos/
Todos os concursos, 100 por página, do mais antigo ao mais recente. Use ?pagina=2, ?pagina=3… ou os links anterior e proxima da resposta. - https://loteria.superfacil.site/api/v1/megasena/concursos/3073/
Um concurso pelo número. - https://loteria.superfacil.site/api/v1/megasena/historico.csv
Histórico inteiro em CSV, uma linha por concurso.
Loteria, concurso ou página que não existem dão 404 com {"erro": "..."}. O rateio vem de cada faixa identificada pela descrição da Caixa; valores anteriores a 1/7/1994 foram convertidos do cruzeiro real para reais.
Exemplo: o último concurso da Mega-Sena
{
"loteria": "megasena",
"nome": "Mega-Sena",
"concurso": 3073,
"data": "2026-10-22",
"dezenas": [
4,
13,
23,
28,
41,
58
],
"ordem_sorteio": [
23,
13,
41,
28,
58,
4
],
"segundo_sorteio": null,
"trevos": null,
"time_do_coracao": null,
"time_do_coracao_normalizado": null,
"mes_da_sorte": null,
"acumulou": true,
"arrecadacao": 153236202.0,
"estimativa_proximo": 230000000.0,
"proximo_concurso": {
"concurso": 3074,
"data": "2026-10-24"
},
"premio_principal": {
"faixa": 1,
"ganhadores": 0,
"premio": null
},
"rateio": [
{
"sorteio": 1,
"faixa": 1,
"descricao": "Sena",
"acertos": 6,
"trevos": null,
"ganhadores": 0,
"premio": null
},
{
"sorteio": 1,
"faixa": 2,
"descricao": "Quina",
"acertos": 5,
"trevos": null,
"ganhadores": 203,
"premio": 23138.67
},
{
"sorteio": 1,
"faixa": 3,
"descricao": "Quadra",
"acertos": 4,
"trevos": null,
"ganhadores": 13143,
"premio": 510.55
}
],
"moeda": "BRL",
"moeda_original": "BRL",
"atualizado_em": "2026-10-23T09:00:23.132044+00:00",
"url": "https://loteria.superfacil.site/megasena/3073/"
}
Campos do JSON de cada concurso
| Campo | O que é |
|---|---|
| loteria | Identificador da loteria (ex.: megasena). |
| nome | Nome da loteria. |
| concurso | Número do concurso. |
| data | Data do sorteio (AAAA-MM-DD). |
| dezenas | Dezenas sorteadas, em ordem crescente. |
| ordem_sorteio | Dezenas na ordem do sorteio, ou null quando a Caixa não publicou a ordem. |
| segundo_sorteio | Só na Dupla Sena: o 2º sorteio; null nas outras loterias. |
| segundo_sorteio.dezenas | Dezenas do 2º sorteio, em ordem crescente. |
| segundo_sorteio.ordem_sorteio | Dezenas do 2º sorteio na ordem do sorteio, ou null. |
| trevos | Só na +Milionária: trevos sorteados; null nas outras. |
| time_do_coracao | Só na Timemania: Time do Coração como a Caixa publicou, com a grafia que muda ao longo do tempo (com e sem acento, abreviada); null nas outras. |
| time_do_coracao_normalizado | Só na Timemania: o mesmo time em maiúsculas, sem acento e com as grafias antigas unificadas, para agrupar ou contar por time; null nas outras. |
| mes_da_sorte | Só no Dia de Sorte: Mês da Sorte; null nas outras. |
| acumulou | true se o prêmio principal acumulou. |
| arrecadacao | Total arrecadado, em reais, ou null quando não foi publicado. |
| estimativa_proximo | Prêmio estimado para o concurso seguinte, em reais, ou null. |
| proximo_concurso | Número e data do concurso seguinte, ou null. |
| proximo_concurso.concurso | Número do concurso seguinte. |
| proximo_concurso.data | Data prevista do concurso seguinte, ou null. |
| premio_principal | Faixa principal do 1º sorteio, ou null quando o rateio não foi reconhecido. |
| premio_principal.faixa | Número da faixa principal. |
| premio_principal.ganhadores | Ganhadores da faixa principal. |
| premio_principal.premio | Prêmio por ganhador, em reais, ou null sem ganhador. |
| rateio | Faixas de premiação identificadas pela descrição da Caixa, ou null quando o rateio não foi publicado ou não foi reconhecido. |
| rateio.sorteio | Sorteio da faixa (1, ou 2 no 2º sorteio da Dupla Sena). |
| rateio.faixa | Número da faixa, da maior para a menor. |
| rateio.descricao | Nome da faixa (ex.: Sena, 14 acertos, Time do Coração). |
| rateio.acertos | Dezenas acertadas na faixa, ou null no Time do Coração e no Mês da Sorte. |
| rateio.trevos | Só na +Milionária: trevos acertados que valem a faixa; null nas outras. |
| rateio.ganhadores | Ganhadores na faixa. |
| rateio.premio | Prêmio por ganhador, em reais, ou null sem ganhador. |
| moeda | Moeda dos valores: sempre BRL (real). |
| moeda_original | Moeda divulgada pela Caixa: BRL, ou BRR (cruzeiro real) antes de 1/7/1994. |
| atualizado_em | Quando o conteúdo do concurso mudou pela última vez (ISO 8601). |
| url | Página do concurso no site. |
Cache, CORS e limite
- Toda resposta com dados (200) traz
ETag,Last-ModifiedeCache-Control: public, max-age=300(5 minutos). Mande o ETag de volta emIf-None-Match(ou a data emIf-Modified-Since) e, sem novidade, a resposta é304 Not Modified, sem corpo. - CORS liberado para qualquer origem (
Access-Control-Allow-Origin: *), só para GET; o preflight vale por 24 horas. - Até 600 pedidos por IP a cada 10 minutos, somando a API e os CSV. Passou disso, a resposta é
429comRetry-After(segundos até liberar). - Sem cookies e sem sessão. A API e os CSV ficam fora dos buscadores (
X-Robots-Tag: noindex).
Origem e licença
Fonte: Caixa Econômica Federal (portal de loterias). Os resultados são buscados no portal de loterias da Caixa depois de cada sorteio. Pode haver erro de cópia ou atraso: confira sempre o resultado oficial na Caixa antes de qualquer decisão.
A compilação (formato, colunas, conversão de moeda e identificação das faixas) está sob a licença CC BY 4.0: pode usar, copiar e adaptar, inclusive para fins comerciais, desde que dê o crédito. Use a atribuição:
Dados: Caixa Econômica Federal, compilados por Loterias (loteria.superfacil.site)
Exemplos de uso
curl, com ETag
curl -i https://loteria.superfacil.site/api/v1/megasena/ultimo/
# depois, com o ETag da resposta anterior:
curl -i -H 'If-None-Match: "ETAG-DA-RESPOSTA"' https://loteria.superfacil.site/api/v1/megasena/ultimo/
JavaScript (fetch)
const resposta = await fetch("https://loteria.superfacil.site/api/v1/megasena/ultimo/");
const concurso = await resposta.json();
console.log(concurso.concurso, concurso.dezenas);
Python (pandas)
import pandas as pd
mega = pd.read_csv("https://loteria.superfacil.site/api/v1/megasena/historico.csv", parse_dates=["data"])
print(mega.tail())
Widget do último resultado
Cole no seu site o último resultado de qualquer loteria, atualizado sozinho a cada sorteio, com link para o resultado completo. Sem cookies, sem JavaScript e sem rastreamento.
Prévia
O widget tem 320 px de largura e se ajusta a telas menores. A altura já vem certa para o widget da Mega-Sena.