Skip to content
Data
Skill

/gleague-data

NBA G League data via ESPN public endpoints, NBA Stats (stats.nba.com, LeagueID 20), and the G League live CDN (cdn-gleague.nba.com) — scores, standings, team rosters, schedules (Tip-Off Tournament, regular season, playoffs), game summaries, play-by-play, and news, plus

From plugin
sports-skills
26130 skills

Claude Code

$ npx -y skills add machina-sports/sports-skills --skill gleague-data --agent claude-code

SKILL.md

gleague-data.SKILL.md
name: gleague-data
description: |
  NBA G League data via ESPN public endpoints, NBA Stats (stats.nba.com, LeagueID 20), and the G League live CDN (cdn-gleague.nba.com) — scores, standings, team rosters, schedules (Tip-Off Tournament, regular season, playoffs), game summaries, play-by-play, and news, plus NBA-shaped official stats: game logs, player careers, team stats, shot charts, advanced box scores, leaders, and CDN box scores / play-by-play. Zero config, no API keys.

  Use when: user asks about NBA G League scores, standings, rosters, schedules, box scores, play-by-play, player or team stats, shot charts, leaders, or G League news.
  Don't use when: user asks about the NBA (use nba-data), WNBA (use wnba-data), college basketball (use cbb-data), or other sports.
license: MIT
metadata:
  author: machina-sports
  version: "0.1.0"

NBA G League Data

Before writing queries, consult `references/api-reference.md` for parameters and data shapes.

Setup

Before first use, check if the CLI is available:

which sports-skills || pip install sports-skills

No API keys required.

Quick Start

sports-skills gleague get_scoreboard
sports-skills gleague get_standings --season=2026
sports-skills gleague get_teams
sports-skills gleague get_nbastats_game_log --season=2025 --team=STO
sports-skills gleague get_nbastats_leaders --season=2025 --limit=10

CRITICAL: Before Any Query

  • Two id systems, never interchangeable:
  • **ESPN** (`get_teams` … `get_news`): ESPN G League team ids and event ids (e.g. `2`, `401867657`). ESPN team id `2` is the Austin Spurs here and the Boston Celtics in `nba-data`.
  • **Official NBA.com** (`find_nba_player`, `get_nbastats_*`, `get_live_*`): 10-digit G League game ids starting with `20` (e.g. `2022500001`), NBA.com person ids (e.g. `1630644`) and team ids (e.g. `1612709890`).
  • NBA (`00…`), WNBA (`10…`) and ESPN ids are rejected by the official commands before any request. Never pass ids between this skill and `nba-data`.
  • Dates are `YYYY-MM-DD`. For the current season, omit `season`.

Choosing the Season

The two sources number seasons differently:

  • **ESPN commands** use the year the season **ends**: 2025-26 is `2026`.
  • **`get_nbastats_*` commands** use the year it **starts** (like `nba-data`): 2025-26 is `2025` or `"2025-26"`. A mismatched range such as `"2025-27"` is an error, not repaired.

ESPN details:

  • **Current / unspecified**: omit `season`. `get_standings` skips an upcoming season that has no games yet and says so in `note` / `defaulted_from`. `get_team_schedule` returns the season ESPN selects.
  • **A past season**: pass its ending year (2025-26 → `2026`). An explicitly requested season never falls back.
  • `get_team_roster` has no season parameter: this module exposes only the roster ESPN's provider currently returns. Historical rosters are unverified and not supported here. The `season` label on a roster response is ESPN's, and neither it nor the retrieval time proves the roster is up to date.

Season Phases

ESPN rows carry `season_type`: `tournament` (the Tip-Off Tournament, ESPN type 5 — not the NBA play-in), `regular`, or `postseason`. `get_team_schedule` filters with `season_type=tournament` (alias `showcase`), `regular`, `postseason` (alias `playoffs`), or `all`.

The `get_nbastats_*` commands take `season_type` `regular` (default), `playoffs`, `preseason`, or `showcase` (aliases `Showcase Cup` and `tournament`). Showcase uses the verified upstream enum `Showcase`; there is no NBA play-in.

Commands

ESPN (`basketball/nba-development`):

| Command | Description | |---|---| | `get_scoreboard` | Scores for a date (ESPN's current game day without one) | | `get_schedule` | Games on a specific date (no season filter; see `get_team_schedule`) | | `get_standings` | Standings by conference | | `get_teams` | All G League teams with ESPN G League ids | | `get_team_roster` | A team's roster as ESPN currently returns it | | `get_team_schedule` | A team's schedule, by season and phase | | `get_game_summary` | Box score, scoring plays, leaders for a game | | `get_play_by_play` | Full play-by-play for a game | | `get_news` | G League news (feed also carries other leagues' stories) |

NBA Stats (stats.nba.com, `LeagueID=20`). Same parameters and row shapes as `nba-data`:

| Command | Description | |---|---| | `find_nba_player` | Search the G League player registry; returns NBA.com person ids | | `get_nbastats_game_log` | Team game log, or one player's games (`player`), with official game ids | | `get_nbastats_player_career` | A player's G League regular-season career, season by season | | `get_nbastats_team_stats` | League-wide team stats (base, advanced, …) | | `get_nbastats_shot_chart` | A player's shots with court coordinates | | `get_nbastats_play_by_play` | Play-by-play with coordinates for a completed game | | `get_nbastats_advanced_boxscore` | Ratings, pace, usage per player and team | | `get_nbastats_leaders` | Player leaders by stat category (G League only; not in `nba-data`) |

G League live CDN (cdn-gleague.nba.com). Same shape as `nba-data`:

| Command | Description | |---|---| | `get_live_boxscore` | Box score for an official game id | | `get_live_playbyplay` | Play-by-play, most recent first |

If a command is not listed in the tables above, it does not exist.

Commands that DO NOT exist

  • ~~`get_team_stats`~~ / ~~`get_player_stats`~~ — the ESPN G League team statistics endpoint returned 404 when checked. Use `get_nbastats_team_stats` / `get_nbastats_player_career`.
  • ~~`get_win_probability`~~ — the G League summary checked carried no win-probability data.
  • ~~`get_leaders`~~ — no ESPN G League source; use `get_nbastats_leaders`.
  • ~~`get_injuries`~~, ~~`get_transactions`~~, ~~`get_futures`~~, ~~`get_depth_chart`~~ — no verified G League source.
  • ~~`get_live_scoreboard`~~ / ~~`get_player_live_stats`~~ — no verified G League live scoreboard: the CDN schedule file answered HTTP 403 when checked.
Read more
@machina-sports
Ships withsports-skills

Open-source agent skills for live sports data and prediction markets. Built for the Agent Skills spec. Works with sportsclaw, OpenClaw, Claude Code, Cursor, Copilot, Gemini CLI, Hermes Agent, and every major AI agent. Zero API keys. Zero signup.

Stars on GitHub

Momentum

stars in total
261
Star history of machina-sports/sports-skills on GitHub, a chart by star-history.com

Other skills on sports-skills.

More skills from other plugins.

context-loader
SkillAuto-invoked

context-loader

Search memories from earlier Pi sessions in this repository. Use it when earlier work may already explain the code, error,…

@mem0ai@mem0aiInstall Skill

Questions about gleague-data.

Which coding agents can use gleague-data?
gleague-data installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.