AFAPI FutebolResultados • Odds • Estatísticas

Uma única API para resultados, odds e estatísticas de 6 provedores.

Mercuriobet, Vai de Bet, Pix.bet, SofaScore, Parlay e ESPN normalizados no mesmo JSON. Ao vivo com minuto, placar por período, escanteios, cartões e guia de liquidação — sem expor chaves e sem cara de template.

—carregando…
—Prontos para liquidação
—SQLite + MySQL

Provedores

Cada provedor entra como fonte. A API escolhe, agrega e, quando possível, enriquece cruzando fontes.

Mercuriobet — Betby

Escanteios, cartões, períodos, odds em tempo real. Fonte mais rica para liquidação.

source: mercuriobet

Vai de Bet — Altenar

Boa cobertura de ligas BR e europeias. Cruzável com Mercuriobet para estatísticas.

source: vaidebet

Pix.bet — FSSB

Grade nacional forte, boa para pré-jogo e ligas regionais.

source: pixbet

SofaScore

Miolo de dados global, ligas e eventos. Fallback sólido.

source: sofascore

Parlay

WebSocket e SSE de odds/lance-a-lance. Latência baixa.

source: parlay — WS / SSE

ESPN

Scores e estatísticas oficiais. Sem odds.

source: espn — até 48h

Como funciona

Três estados. Um contrato. Seu front decide o que mostrar — a API garante o que liquidar.

Pré-jogo

not_started — `schedule.start_time_br` e `kickoff_br` em Brasília. Odds de abertura quando a fonte enviar.

Ao vivo

in_progress — `score.period.minute` + `score.period.description`. Polling 20s no servidor + cache 12s. Parlay via WS/SSE em ~50ms.

Liquidado

finished — `completed: true`, `final_score` e `finished_at`. 1T em `score.first_half` quando `completed`.

Endpoints ao vivo
GET /api/football/live?source=vaidebet
GET /api/football/today?source=mercuriobet
GET /api/football/events/:id?source=vaidebet
GET /api/football/compare?mode=live
Liquidação
GET /api/results?status=finished&limit=50
GET /api/football/history?status=finished&limit=50
GET /api/football/unified/:id  # guia de liquidação

Integração em 30 segundos

Troque `source` e pronto. Sem chave. CORS liberado.

# ao vivo (Vai de Bet)
curl "https://apitestefb.evolutisistemas.com/api/football/live?source=vaidebet"

# histórico paginado (SQLite/MySQL)
curl "https://apitestefb.evolutisistemas.com/api/football/history?status=finished&limit=20&page=1"

# evento master (unified)
curl "https://apitestefb.evolutisistemas.com/api/football/unified/2719..."

Tempo ao vivo: snapshot a cada ~20s (poll) + 12s de cache. Tempo real mesmo só na Parlay via wss://…/ws/odds e /api/parlay/sports/:sport/live/sse.