Growing Discord community — direct access to the developer, live coverage & picks. Join the Discord Join now →
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.

66leagues
394,819matches
116,547players
17,379shotmaps
9 live now 213 matches today 94 pre-season friendlies Transfer window open
curl · api.bzzoiro.com
$ curl "/api/v2/events/live/"
// → 200 OK · 9 live
{
  "count": 9,
  "events": [{
    "home_team": "Boca Juniors",
    "away_team": "Vélez Sarsfield",
    "current_minute": 72,
    "home_score": 1,
    "away_score": 1,
    "live_websocket": true
  }]
}
Team of the Week

The best XI, by the numbers.

Every finished match from Tue 4 Aug to Tue 11 Aug (68 games), ranked by our per-match player rating. A 4-4-2 of the top performers.

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.

17,379 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.

0 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/"
Coverage

66 leagues, every match.

Top European competitions plus continental cups, internationals, and the cup runs of the bigger nations.

CAF Champions League
Africa
Liga Profesional de Fútbol
Argentina
NPL Queensland
Australia
Pro League
Belgium
Brasileirão Serie A
Brazil
Brasileirão Serie B
Brazil
Copa do Brasil
Brazil
Parva Liga
Bulgaria
Chinese Super League
China
Categoría Primera A
Colombia
Copa Colombia
Colombia
Danish Superliga
Denmark
Carabao Cup
England
Championship
England
FA Cup
England
League One
England
League Two
England
Premier League
England
Champions League
Europe
Conference League
Europe
Europa League
Europe
UEFA Nations League
Europe
Suomen Cup
Finland
Veikkausliiga
Finland
Coupe de France
France
Ligue 1
France
Ligue 2
France
Bundesliga
Germany
DFB Pokal
Germany
Stoiximan Super League
Greece
International Friendly Games
International
World Cup 2026
International
Coppa Italia
Italy
Serie A
Italy
Emperor Cup
Japan
J1 League
Japan
Liga MX Apertura
Mexico
Liga MX Clausura
Mexico
Botola Pro
Morocco
Eredivisie
Netherlands
Nigeria Premier Football League
Nigeria
Eliteserien
Norway
Ekstraklasa
Poland
Puchar Polski
Poland
Liga 3
Portugal
Liga Portugal 2
Portugal
Liga Portugal Betclic
Portugal
Superliga
Romania
Saudi Pro League
Saudi Arabia
Scottish Premiership
Scotland
Copa Libertadores
South America
Copa Sudamericana
South America
K League 1
South Korea
Copa del Rey
Spain
La Liga
Spain
Liga F
Spain
Segunda División
Spain
Allsvenskan
Sweden
Super League
Switzerland
Coupe de Tunisie
Tunisia
Tunisian Ligue Professionnelle 1
Tunisia
Trendyol Super Lig
Turkey
MLS
USA
NWSL
USA
USL Championship
USA
Club Friendlies
World