FIFA WORLD CUP 2026
Group AMexico·Czechia·South Africa·South KoreaGroup BBosnia & Herzegovina·Canada·Qatar·SwitzerlandGroup CBrazil·Haiti·Morocco·ScotlandGroup DAustralia·Paraguay·Türkiye·USAGroup ECuraçao·Ecuador·Germany·Côte d'IvoireGroup FJapan·Netherlands·Sweden·TunisiaGroup GBelgium·Egypt·Iran·New ZealandGroup HCabo Verde·Saudi Arabia·Spain·UruguayGroup IFrance·Iraq·Norway·SenegalGroup JAlgeria·Argentina·Austria·JordanGroup KColombia·DR Congo·Portugal·UzbekistanGroup LCroatia·England·Ghana·Panama Group AMexico·Czechia·South Africa·South KoreaGroup BBosnia & Herzegovina·Canada·Qatar·SwitzerlandGroup CBrazil·Haiti·Morocco·ScotlandGroup DAustralia·Paraguay·Türkiye·USAGroup ECuraçao·Ecuador·Germany·Côte d'IvoireGroup FJapan·Netherlands·Sweden·TunisiaGroup GBelgium·Egypt·Iran·New ZealandGroup HCabo Verde·Saudi Arabia·Spain·UruguayGroup IFrance·Iraq·Norway·SenegalGroup JAlgeria·Argentina·Austria·JordanGroup KColombia·DR Congo·Portugal·UzbekistanGroup LCroatia·England·Ghana·Panama
Open full hub →
Growing Discord community — direct access to the developer, live coverage & picks. Join the Discord Join now →
Docs MCP WebSocket Images Live demo Leagues Matches Value Bets Stats
v2Now with WebSocket + MCP

The data others gate. Free.

Per-shot xG with coordinates. Ball trajectories every 5 seconds. Goal build-up sequences. Minute-by-minute momentum. 14 bookmakers + Polymarket in one call. An MCP server that drops into Claude, ChatGPT, Gemini. No tier locks any of it.

53leagues
63,065matches
53,381players
13,913shotmaps
curl · api.bzzoiro.com
$ curl "/api/v2/events/live/"
// → 200 OK · 4 live
{
  "count": 4,
  "events": [{
    "home_team": "Avaí",
    "away_team": "Goiás",
    "current_minute": 84,
    "home_score": 0,
    "away_score": 2,
    "live_websocket": true
  }]
}
What you get

Three surfaces — REST, WebSocket, MCP — on the same spatial-grade feed.

Per-shot coordinates, live ball trajectories, build-up sequences, momentum, prediction markets — features that elsewhere live behind enterprise tiers, request caps, or "contact sales". Here they're on a free token.

Live · WebSocket
/ws/live/

Ball trajectories every 5 seconds.

Each livedata frame carries a ball trail with up to 4 (x,y) points, the side controlling it, and the situation: attack, dangerous, shotontarget, corner, freekick, throwin, penalty, substitution, more.

5s push interval 4 coords/frame ≤2s latency
odds frame

Live consensus, on change.

30s tick, dedup'd against the previous payload. No frame fires while the line is flat.

type: "odds"
odds_book frame

Per-bookmaker, on change.

Subscribe with bookmaker_slug and get only that book's quotes, only when they move.

type: "odds_book"
event frame

14 stats per side, every 30 seconds.

Possession · total/on-target shots · corners · cards · fouls · cumulative xG · attack count · dangerous attacks · ball-safe phases — plus attack_pct, dangerous_attack_pct, ball_safe_pct. Score, period, status, kickoff timestamp on every tick.

Spatial
/events/{id}/stats/

Per-shot xG with coordinates.

Every shot: (x, y), xg, body_part, situation, assist chain, scorer.

13,913 matches enriched
/events/{id}/incidents/

Goal build-up sequences.

Every touch leading to the goal — not just the scorer.

average_positions

Average position per player.

One (x, y) per player. Drop into your own pitch chart, post-match.

momentum

Minute-by-minute momentum.

Pressure index from −100 (away dominance) to +100 (home dominance), one value per minute. Plot it on a chart and you see exactly when the game shifted.

Odds
/events/{id}/odds/comparison/

14 top books + Polymarket, side-by-side.

Pinnacle2.04
Bet3652.10
Betano2.05
1xBet2.07
Polymarket0.46 → 2.17
previous_decimal_odds

Line movement on every row.

Each quote carries the previous price + an is_max_quote flag, so you see the latest move without a history call.

/odds/best/

Best price, automatic.

Per-outcome best across the books, updated every 3 min for live + imminent kickoffs.

ML & AI
/api/v2/predictions/

8 calibrated CatBoost markets.

Match result, expected goals, over/under 1.5/2.5/3.5, BTTS, most-likely score. Probabilities calibrated against market implied — not raw model output.

4,466 predictions and counting
predicted_lineup

AI lineups before kickoff.

11 + subs predicted from recent form, rest, suspensions.

ai_preview

Match previews, written.

Twitter-style preview generated by Haiku 4.5 on every fixture.

Integration
MCP server · OAuth 2.1 + PKCE

Plug it into Claude, ChatGPT, or Gemini.

One config block, an /mcp endpoint and a free token. The LLM gets 24 typed tools (search matches, get shotmap, compare odds, predict lineups, …) and can answer in plain English.

Claude ChatGPT Gemini Cursor
free tier

$0. Forever.

No daily quota. No credit card. No locked endpoints. The shotmap is on the same token as the score.

$0
Integration

Five lines. Real data.

Pick your stack. Each snippet hits a live endpoint with a real token — copy, paste, $ python, done.

# Live matches with ball-trajectory-ready event IDs
curl -H "Authorization: Token YOUR_TOKEN" \
     "https://sports.bzzoiro.com/api/v2/events/live/"