Do pagamento ao primeiro resultado em menos de 5 minutos.
Use esta chave temporária gratuita. Ela expira em até 1 hora e acessa apenas os primeiros 100 concursos de cada jogo.
HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg
Imagine a API como um garçom digital: você faz um pedido (chamado de requisição), ele consulta o banco de dados e te entrega o resultado sempre no mesmo formato — chamado JSON, que é basicamente um texto organizado que qualquer linguagem de programação consegue ler.
Você não precisa baixar nada. Basta montar o endereço (URL) correto e acessar pelo navegador, pelo seu sistema ou por qualquer ferramenta como Postman, JavaScript, PHP, Python, etc.
https://apiloterias.com/v1/{jogo}/{sua-chave}/{o-que-você-quer}
{jogo}
Nome da loteria em minúsculo.
Ex: megasena, quina, lotofacil
{sua-chave}
Sua chave de API pessoal, copiada do painel da conta.
{o-que-você-quer}
Opcional. Sem ele, retorna o último resultado. Com ele, filtra o que você quer.
Último resultado da Mega-Sena
https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjgConcurso nº 50 da Quina
https://apiloterias.com/v1/quina/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/50Últimos 3 resultados da Lotofácil
https://apiloterias.com/v1/lotofacil/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/ultimos3Como identificar sua conta em cada chamada.
Toda requisição precisa incluir sua chave de API diretamente na URL, no segundo segmento do caminho — logo após o nome do jogo. Não é necessário configurar cabeçalhos HTTP ou tokens especiais: basta ter a URL correta.
# Formato:
/v1/{jogo}/SUA_CHAVE_AQUI
# Exemplo real:
https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg
Chave não existe ou está inativa
{"erro": "Chave de API inválida ou não autorizada."}
Plano com pagamento pendente
{"erro": "Seu pagamento foi recusado ou está inativo..."}
Limite mensal atingido
{"erro": "Limite mensal de requisições atingido: 500."}
Use exatamente o nome abaixo (em minúsculo, sem acento) na URL.
loteca e federal não possuem o campo dezenas — por isso os endpoints de análise estatística (frequência, atrasados, sequências) não estão disponíveis para eles.
Para buscar resultados de sorteios. Substitua CHAVE pela sua chave de API.
Retorna o concurso mais recente disponível no banco de dados.
https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg
Busca um concurso específico pelo número do sorteio.
https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/50
Substitua 50 pelo número do concurso desejado.
Retorna os últimos N concursos em ordem do mais recente para o mais antigo.
https://apiloterias.com/v1/lotofacil/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/ultimos5
Substitua 5 pela quantidade desejada (ex: ultimos3, ultimos10).
Retorna todos os concursos em páginas de 30 registros cada, do mais recente para o mais antigo.
https://apiloterias.com/v1/quina/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/todos/pagina1
dados retornou 30 registros — se sim, existe uma próxima página.
Análises históricas sobre os sorteios. Não disponível para loteca e federal.
Os N números que mais saíram em todo o histórico do jogo.
https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/frequencia/quente/6
Filtrar por ano: adicione /ano{YYYY} no final — ex: /frequencia/quente/6/ano2024
Os N números que menos saíram em todo o histórico do jogo.
https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/frequencia/frio/6
Também aceita filtro por ano: /frequencia/frio/6/ano2024
Os N números que estão há mais concursos sem sair. Quanto maior o atraso, mais tempo faz que esse número não é sorteado.
https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/frequencia/mais-atrasados/10
Identifica grupos de 3 ou mais números consecutivos que aparecem juntos nos sorteios com mais frequência.
https://apiloterias.com/v1/lotofacil/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/sequencias-comuns
Mostra, em percentual, com que frequência cada combinação de pares/ímpares ocorreu no histórico. Ex: "8 pares e 7 ímpares saíram juntos em 12% dos sorteios".
https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/pares-impares
Analisa em quais faixas de soma os sorteios se concentram nos últimos N concursos. Útil para apostar em combinações cujas somas são mais frequentes.
https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/soma-dezenas/100
O número no final indica quantos concursos recentes analisar (ex: 100 = últimos 100 sorteios).
Veja quantas vezes seus números teriam acertado no histórico completo de um jogo.
Envie seus números e receba quantas vezes você teria ganho em cada faixa de premiação, ano a ano.
megasena
lotofacil
quina
duplasena
timemania
lotomania
Corpo da requisição (JSON):
{"numeros": [5, 11, 23, 38, 41, 55]}
Exemplo com curl:
curl -X POST "https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/simulador" \
-H "Content-Type: application/json" \
-d '{"numeros": [5, 11, 23, 38, 41, 55]}'
Exemplo com JavaScript (fetch):
const res = await fetch('https://apiloterias.com/v1/megasena/HVEbw2AzJIRy4ABU0XJfI19tBcATBsjg/simulador', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ numeros: [5, 11, 23, 38, 41, 55] })
});
const data = await res.json();
Resposta esperada:
{
"concurso": "megasena",
"aposta": [5, 11, 23, 38, 41, 55],
"concursos_analisados": 2750,
"total_acertos": {
"acertos_4": 87,
"acertos_5": 12,
"acertos_6": 1
},
"desempenho_ano_a_ano": {
"2024": { "acertos_4": 3, "acertos_5": 0, "acertos_6": 0 },
"2023": { "acertos_4": 5, "acertos_5": 1, "acertos_6": 0 }
}
}
concursos_analisados: total de sorteios verificados. total_acertos: quantas vezes cada faixa foi alcançada no histórico completo. desempenho_ano_a_ano: o mesmo detalhado por ano.
Código pronto para copiar e usar no seu projeto.
// Busca o último resultado da Mega-Sena
const response = await fetch('https://apiloterias.com/v1/megasena/SUA_CHAVE');
const sorteio = await response.json();
console.log('Concurso nº:', sorteio.numero_concurso);
console.log('Data:', sorteio.data_concurso);
console.log('Dezenas:', sorteio.dezenas);
console.log('Acumulou?', sorteio.acumulou === 1 ? 'Sim' : 'Não');
// Busca o concurso 2888 da Mega-Sena
$url = 'https://apiloterias.com/v1/megasena/SUA_CHAVE/2888';
$json = file_get_contents($url);
$sorteio = json_decode($json, true);
echo 'Concurso nº: ' . $sorteio['numero_concurso'] . PHP_EOL;
echo 'Dezenas: ' . implode(', ', $sorteio['dezenas']) . PHP_EOL;
import requests
url = 'https://apiloterias.com/v1/quina/SUA_CHAVE/ultimos5'
response = requests.get(url)
sorteios = response.json()
for s in sorteios:
print(f"Concurso {s['numero_concurso']} — {s['data_concurso']}: {s['dezenas']}")
Este é o JSON que a API retorna para o último resultado da Mega-Sena:
{
"id": 2887,
"numero_concurso": 2887,
"nome": "Mega Sena",
"data_concurso": "2025-07-12",
"local_realizacao": "ESPAÇO DA SORTE",
"acumulou": 1,
"dezenas": ["50", "14", "57", "30", "29", "53"],
"premiacao": [
{
"faixa": 1,
"valor_do_premio": 0,
"numero_de_ganhadores": 0,
"quantidade_de_acertos": "6 acertos"
},
{
"faixa": 2,
"valor_do_premio": 96688.72,
"numero_de_ganhadores": 39,
"quantidade_de_acertos": "5 acertos"
}
],
"ganhadores": [],
"arrecadacao_total": "64746132.00",
"data_proximo_concurso": "2025-07-15",
"valor_estimado_proximo_concurso": "46000000.00",
"acumulou": 1,
"created_at": "2025-07-15 16:38:39"
}
O que significa cada campo que a API retorna.
numero_concurso
nome
data_concurso
dezenas
acumulou
premiacao
ganhadores
arrecadacao_total
data_proximo_concurso
valor_estimado_proximo_concurso
/todos/paginaN){
"pagina": 1,
"limite": 30,
"dados": [ /* array com até 30 concursos */ ]
}
Para saber se há mais páginas: se dados retornou 30 registros, provavelmente há uma próxima página.
Incremente o número da página até dados retornar menos de 30 registros.
Para visualizar a resposta de forma legível no navegador, instale a extensão JSON Formatter (disponível para Chrome e Firefox). Com ela, o JSON aparece colorido e com recuos, muito mais fácil de ler.
Ou acesse qualquer URL da API direto no navegador com sua chave de teste — a resposta aparece como texto estruturado.
Quando algo dá errado, a API retorna um código HTTP específico e uma mensagem em JSON explicando o problema.
Chave de API não foi enviada na URL.
{"erro": "Chave de API não fornecida."}
A chave enviada não existe no sistema ou está inativa.
{"erro": "Chave de API inválida ou não autorizada."}
O plano está ativo no sistema mas o pagamento foi recusado ou cancelado na Stripe.
{"erro": "Seu pagamento foi recusado ou está inativo..."}
O período de acesso da conta chegou ao fim.
{"erro": "Plano expirado. Acesso bloqueado."}
O concurso solicitado não existe no banco de dados (ainda não foi realizado ou não está cadastrado).
{"status": "Erro!", "message": "Concurso nº 9999 não encontrado."}
O número de requisições do mês foi esgotado. O contador reinicia no 1º dia do mês seguinte.
{"erro": "Limite mensal de requisições atingido: 500."}
Verifique sempre o código HTTP da resposta antes de processar o JSON:
const response = await fetch('https://apiloterias.com/v1/megasena/SUA_CHAVE');
if (!response.ok) {
const erro = await response.json();
console.error(`Erro ${response.status}:`, erro.erro);
return;
}
const sorteio = await response.json();
// processar sorteio...