Deu no BichoJogar
Editorial

Metodologia — como coletamos, verificamos e publicamos

Processo técnico completo por vertical (Federal, bancas, cotações, sonhos, legalidade) + política de correção.

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:

  1. Puxamos JSON completo da API
  2. Extraímos {concurso, dataApuracao, listaDezenas[0..4]}
  3. Canonizamos: JSON.stringify(payload, Object.keys(payload).sort())
  4. 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/federal

Como 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/:banca retorna último resultado; site consome via SCRAPER_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:

  1. Consulta manual em 5+ plataformas afiliadas (BetsBet, Pixnobicho, LotoBet, etc.)
  2. Registro em planilha com timestamp de coleta
  3. Divergência >5% entre bancas dispara nota pública
  4. 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:

  1. Edições históricas do Livro dos Sonhos (Cascadura, 1930s+)
  2. Recolhas etnográficas em bancas de rua RJ+SP
  3. 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