Growing Discord community — direct access to the developer, live coverage & picks. Join now →
Docs MCP Images Standings Matches Predictions ⚡ Get the Sports Addon
Hockey API · v2

Hockey data API.

REST endpoints for NHL, KHL, SHL, Liiga, CHL — leagues, teams, matches with period-by-period score, ML predictions, plus an MCP server for Claude/ChatGPT/Gemini. Sports Addon · $5/mo

Quickstart

  1. Register at sports.bzzoiro.com/register/ — free.
  2. Subscribe to the Sports Addon ($5/mo) to unlock the hockey API.
  3. Send Authorization: Token YOUR_TOKEN on every request.
# Live hockey matches with period scores curl -H "Authorization: Token YOUR_TOKEN" \ "https://sports.bzzoiro.com/hockey/api/v2/matches/live/"

Authentication

Pass your token via the Authorization header:

Authorization: Token YOUR_TOKEN

Without an active Sports Addon subscription, gated endpoints return 402 Payment Required.

Base URL

Base URL
https://sports.bzzoiro.com/hockey
API prefix
/hockey/api/v2/
Subscription
Sports Addon · $5/mo

Pagination

List endpoints use limit + offset query params and return:

{ "count": 3500, "next": "https://sports.bzzoiro.com/hockey/api/v2/teams/?limit=50&offset=50", "previous": null, "results": [/* … */] }
  • limit — page size. Default 50, max 200.
  • offset — items to skip. Default 0.

Leagues

GET/hockey/api/v2/leagues/List

Active hockey leagues sorted by priority (NHL, KHL, SHL, Liiga, CHL, etc.).

ParameterTypeDescription
countrystringFilter by country (ISO 3166-1 alpha-2)
include_inactivebooleanDefault false
limit / offsetintPagination
GET/hockey/api/v2/leagues/{id}/Detail

League detail. Cached 5 min.

Teams

GET/hockey/api/v2/teams/List

Hockey teams sorted by ELO rating.

ParameterTypeDescription
searchstringCase-insensitive name fragment
countrystringISO 3166-1 alpha-2
limit / offsetintPagination
GET/hockey/api/v2/teams/{id}/Detail

Full team details with current ELO rating. Cached 5 min.

Matches

GET/hockey/api/v2/matches/List

Hockey matches with overtime / shootout flags. Defaults to next 7 days.

ParameterTypeDescription
date_from / date_todateYYYY-MM-DD bounds
leagueint / strLeague ID or name fragment
teamint / strTeam ID or name fragment
statusstringscheduled, live, finished
limit / offsetintPagination
GET/hockey/api/v2/matches/live/Live

In-progress matches with current period and minute. Cached 30s.

GET/hockey/api/v2/matches/{id}/Detail

Full match details including periods_score array (per-period home/away).

{ "id": 17187, "league": { "name": "NHL" }, "home_team": { "name": "Boston Bruins", "elo_rating": 1620 }, "away_team": { "name": "Toronto Maple Leafs", "elo_rating": 1602 }, "status": "finished", "home_score": 4, "away_score": 3, "is_overtime": true, "is_shootout": false, "periods_score": [{"home":1,"away":1}, …] }

Predictions

GET/hockey/api/v2/predictions/List

ML predictions for upcoming hockey matches.

Each prediction returns:

  • home_win_prob, away_win_prob (0–100)
  • predicted_winner, confidence (0–100)
  • Match nested with both teams + league

MCP server

The hockey MCP exposes 6 typed tools to LLM clients (Claude Desktop, ChatGPT, Cursor, Gemini). Same Sports Addon subscription unlocks it.

POST/hockey/mcp/JSON-RPC 2.0

Available tools:

  • list_leagues — active leagues by priority
  • list_teams — sorted by ELO, filter by country
  • search_teams — by name fragment
  • list_matches — by status, date window
  • get_match
  • get_predictions — upcoming match predictions

Claude Desktop config

// claude_desktop_config.json { "mcpServers": { "bzzoiro-hockey": { "url": "https://sports.bzzoiro.com/hockey/mcp/", "transport": "http", "headers": { "Authorization": "Token YOUR_TOKEN" } } } }

Static images

Team logos and league shields served as PNG via the BSD image proxy. Public endpoint — no auth required, drop directly into <img src=> tags. Cached up to 1 year.

GET/img/hockey-team/{team_id}/PNG

Team logo. team_id is the id from any hockey API response.

<img src="https://sports.bzzoiro.com/img/hockey-team/3834/" alt="Boston Bruins" />
GET/img/hockey-league/{league_id}/PNG

League shield (NHL, KHL, SHL, Liiga, CHL).

Returns 404 when upstream has no image. Sister endpoints across sports: /img/tennis-player/, /img/csgo-team/, /img/csgo-player/, /img/darts-player/.

Need help? Email bzzoiro@proton.me. Or subscribe to the addon first if you're getting 402s.