TL;DR
Federal vem direto da API oficial da Caixa com hash SHA256 reproduzível. Bancas vêm de worker Playwright rodando em Fly.io a cada 15-20min. Cotações revisadas trimestralmente. Legalidade revisada trimestralmente contra fontes primárias. Política de correção: 24h + nota pública quando afeta interpretação de fato.
Como coletamos a Federal
A Loteria Federal da Caixa é sorteada às quartas e domingos, 19h00 (horário de Brasília), com 5 prêmios de bilhetes de 6 dígitos. Nossa coleta usa o endpoint oficial servicebus2.caixa.gov.br/portaldeloterias/api/federal[Caixa API]. Fallback comunitário via loteriascaixa-api.herokuapp.com.
Processo de hash:
- Puxamos JSON completo da API
- Extraímos
{concurso, dataApuracao, listaDezenas[0..4]} - Canonizamos:
JSON.stringify(payload, Object.keys(payload).sort()) - Aplicamos SHA256:
createHash('sha256').update(canon, 'utf8').digest('hex')
Como reproduzir localmente:
# 1. Buscar o concurso na fonte oficial
curl -s 'https://servicebus2.caixa.gov.br/portaldeloterias/api/federal/{concurso}' \
| jq '{concurso: .numero, dataApuracao, bilhetes: .listaDezenas[:5]}' \
> canonical.json
# 2. Canonicalizar (sort keys) e hashear
node -e "
const p = JSON.parse(require('fs').readFileSync('canonical.json'));
const canon = JSON.stringify(p, Object.keys(p).sort());
console.log(require('crypto').createHash('sha256').update(canon, 'utf8').digest('hex'));
"
# 3. Comparar com o hash publicado em https://deunobicho.online/resultados/federalComo coletamos as bancas
PT-Rio (PTM, PT, PTV, PTN, Corujinha) e estaduais (LOOK-GO, LOTEP-PB, LBR-BA, SP, MG) não têm API oficial em 2026. Nosso worker roda em Fly.io com Playwright + Chromium headless[Playwright], agendado via node-cron.
- Frequência: Rio a cada 15min, estaduais a cada 20min
- Fontes primárias: loteriasbrasil.com.br (via User-Agent rotation)
- Anti-bloqueio: 3 UAs alternando, imagens/fonts bloqueadas por route matcher
- Persistência: SQLite local em volume Fly de 1GB (persistente entre restarts)
- Endpoint:
GET /latest/:bancaretorna último resultado; site consome viaSCRAPER_API_URL
Como validamos as cotações
As cotações listadas em /quanto-paga são coletadas trimestralmente das principais plataformas online BR. Método:
- Consulta manual em 5+ plataformas afiliadas (BetsBet, Pixnobicho, LotoBet, etc.)
- Registro em planilha com timestamp de coleta
- Divergência >5% entre bancas dispara nota pública
- Ponto de referência: milhar seca padrão = 4.000× em plataformas online (bancas de rua praticam 3.500×)
Como revisamos legalidade
/legalidade é revisada trimestralmente contra fontes primárias:
- DL 3.688/1941, art. 58 (Lei das Contravenções Penais)[Planalto]
- Lei 14.790/2023 (Apostas de Quota Fixa)[Planalto]
- Código Civil, art. 814 (dívida de jogo)[Planalto]
- STF ADPFs 492/493 e ADI 4.986 (competência estadual em loterias)[STF]
Cada afirmação-fato em /legalidade tem 1 ClaimReview associado + citação inline via FactCite. Total: 4 ClaimReview verificados.
Como catalogamos os sonhos
O Livro dos Sonhos é folclore consolidado do início do século XX. Nossa catalogação (105+ verbetes em /sonhos) usa 3 fontes cruzadas:
- Edições históricas do Livro dos Sonhos (Cascadura, 1930s+)
- Recolhas etnográficas em bancas de rua RJ+SP
- Cross-check com bases populares recentes (blogs bicho + fóruns)
Cada verbete inclui grupo primário + secundário + variações. Não é ciência — é palpite baseado em tradição.
Política de correção
Reporte via email contato@deunobicho.online:
- Confirmação: em até 6h úteis
- Correção: em até 24h úteis
- Erro de interpretação de fato (não só typo): gera nota pública em /transparencia com timestamp + diff da mudança
- Divergência entre nossa fonte e a oficial: exibimos badge amarelo "aguardando confirmação oficial"; corrigimos em até 2h; pagamos apostador que apostou com base no valor errado (regra: sem exceção)
License dos dados
Endpoints /api/facts/[topic] e /api/resultados/[sorteio] retornam JSON sob CC-BY-4.0. Uso comercial permitido com atribuição a deunobicho.online. Detalhes em /openapi.json.
Stack técnica
- Site: Next.js 16 (App Router) + Tailwind v4 + React 19
- Hospedagem site: Vercel (edge network Brasil GRU)
- Scraper Federal: Route Handler Next.js server-side (revalidate 10min)
- Scraper bancas: Worker separado em Fly.io — Playwright + Fastify + SQLite
- Schema.org: Article, NewsArticle, Dataset, ClaimReview, QAPage, FAQPage, HowTo, SpeakableSpecification, DefinedTermSet, Review, Schedule, Event, SoftwareApplication, Organization, WebSite, BreadcrumbList
- SEO: sitemap.xml + news-sitemap.xml + IndexNow + robots com allowlist 14 bots IA + llms.txt + llms-full.txt
Perguntas frequentes
- Como o Deu no Bicho coleta o resultado da Federal?
- Direto da API oficial da Caixa Econômica (servicebus2.caixa.gov.br/portaldeloterias/api/federal), com fallback comunitário (loteriascaixa-api.herokuapp.com). Cada resposta é canonizada (JSON com keys sorted) e hasheada com SHA256. O hash é reproduzível localmente com sha256sum contra o payload da fonte oficial.
- Como as cotações são verificadas?
- Coletadas trimestralmente das principais plataformas online BR (5+ bancas) via inspeção manual + verificação cruzada com histórico de bilhetes pagos. Discrepâncias >5% dispararam nota pública em /transparencia.
- Quem revisa os artigos jurídicos?
- O time editorial revisa /legalidade trimestralmente contra fontes primárias (Planalto para leis, STF para jurisprudência, SPA/MF para regulamentação bets). Cada afirmação-fato tem citação inline via componente FactCite.
- Como funciona a política de correção?
- Erro reportado por email (contato@deunobicho.online) é confirmado em até 6h e corrigido em até 24h. Erros que afetam interpretação de fato (não só typo) geram nota pública de correção no rodapé da página afetada, com timestamp da correção e diff da mudança.
- Os dados publicados aqui têm license aberta?
- Sim. Os endpoints /api/facts/[topic].json e /api/resultados/[sorteio] retornam JSON sob license CC-BY-4.0 (atribuição obrigatória, uso comercial permitido). Detalhes em /openapi.json.
Ver também
- /transparencia — auditoria pública do hash SHA256
- /sobre — quem edita, contato, política de correção
- /legalidade — análise jurídica com 4 ClaimReview
- /matriz — mapa de perguntas → URL canônica
