G League Fundamentals
This page explains the concepts the rest of the guide builds on: how a G League year is organized into season types, how the league is structured, which feeds carry game data, how coverage is flagged, and what changes if you are coming from the NBA API. The mechanics (authentication, the URL shape, errors, and cache behavior) are on G League API Basics.
The Season Model
{season_year} is the year the G League season starts: 2025 addresses the 2025-26 season, whose regular season ran from December 2025 into March 2026. {season_type} selects the phase. Seasons lists every season and phase on file; the 2025-26 entries:
{
"league": {
"id": "ac79301f-9b1a-4e72-a4cb-230d4418ae08",
"name": "NBA G League",
"alias": "NBDL"
},
"seasons": [
{
"id": "fbba7dc8-d6bf-4ce3-b63d-5a8626beaa49",
"year": 2025,
"status": "closed",
"type": {
"code": "EX",
"name": "Exhibition"
}
},
{
"id": "e0eeac1f-0b20-4576-8f62-63ad4c712feb",
"year": 2025,
"status": "closed",
"type": {
"code": "PRE",
"name": "Pre-season"
}
},
{
"id": "d32bbe62-5116-42c5-a96c-95ff0c87de03",
"year": 2025,
"start_date": "2026-03-31",
"end_date": "2026-04-13",
"status": "closed",
"type": {
"code": "PST",
"name": "Post-season"
}
},
{
"id": "fea41a6e-80d4-4756-bfea-37c7b347a21a",
"year": 2025,
"start_date": "2025-12-19",
"end_date": "2026-03-28",
"status": "closed",
"type": {
"code": "REG",
"name": "Regular Season"
}
},
{
"id": "ebf401bb-9bc2-4d18-832c-cd1d32f6dcdd",
"year": 2025,
"start_date": "2025-11-07",
"end_date": "2025-12-22",
"status": "closed",
"type": {
"code": "SC",
"name": "Showcase Cup"
}
},
{
"id": "885e15b0-b071-49de-8d70-4b8f45a6b331",
"year": 2025,
"start_date": "2025-12-22",
"end_date": "2025-12-23",
"status": "closed",
"type": {
"code": "SCC",
"name": "Showcase Cup Championship"
}
}
]
}<?xml version="1.0" ?>
<!-- Generation started @ 2026-06-30 00:44:52 +0000 -->
<league xmlns="http://feed.elasticstats.com/schema/basketball/seasons-v6.0.xsd" id="ac79301f-9b1a-4e72-a4cb-230d4418ae08" name="NBA G League" alias="NBDL">
<!-- ... omitted for brevity -->
<season id="fbba7dc8-d6bf-4ce3-b63d-5a8626beaa49" year="2025" status="closed">
<type code="EX" name="Exhibition"/>
</season>
<season id="e0eeac1f-0b20-4576-8f62-63ad4c712feb" year="2025" status="closed">
<type code="PRE" name="Pre-season"/>
</season>
<season id="d32bbe62-5116-42c5-a96c-95ff0c87de03" year="2025" start_date="2026-03-31" end_date="2026-04-13" status="closed">
<type code="PST" name="Post-season"/>
</season>
<season id="fea41a6e-80d4-4756-bfea-37c7b347a21a" year="2025" start_date="2025-12-19" end_date="2026-03-28" status="closed">
<type code="REG" name="Regular Season"/>
</season>
<season id="ebf401bb-9bc2-4d18-832c-cd1d32f6dcdd" year="2025" start_date="2025-11-07" end_date="2025-12-22" status="closed">
<type code="SC" name="Showcase Cup"/>
</season>
<season id="885e15b0-b071-49de-8d70-4b8f45a6b331" year="2025" start_date="2025-12-22" end_date="2025-12-23" status="closed">
<type code="SCC" name="Showcase Cup Championship"/>
</season>
</league>The XML response is shown with earlier seasons omitted for brevity.
SC(Showcase Cup): the season-opening tournament phase, November to late DecemberSCC(Showcase Cup Championship): the Showcase Cup's standalone championship gameREG(Regular Season): late December to late MarchPST(Post-season): the playoffs, in AprilPRE(Pre-season) andEX(Exhibition): additional game sets some seasons carry
Each phase is addressed separately and keeps its own schedule, standings, and statistics: the Showcase Cup crowns its champion in the SCC game, then records reset and the Regular Season starts fresh. A product covering the full G League year works phase by phase.
Not every feed accepts every type: for example, Standings covers the played phases (there is no SCC table for the one-game championship), and Rankings applies to REG and SC. Each endpoint's reference page lists its accepted values.
League Structure
Standings, rankings, and rosters all follow one structural tree, served by League Hierarchy: the league, two conferences, and divisions holding the teams. In the current alignment, teams sit directly in one conference-wide division per side: 16 teams in the Eastern Conference and 15 in the Western.
Two structural details to handle:
- The hierarchy also lists a league-level placeholder conference and divisions from earlier alignments, none of which contain teams; build navigation from the entries that do
- The Teams feed includes a placeholder
TBDteam used for not-yet-determined matchups; filter it from team pickers (ID Handling covers it)
Standings and Rankings walks the hierarchy feed and the tables built on it.
The Game Feed Set
Three feeds cover a single game at increasing depth, all keyed by the game's GUID:
| Feed | Returns | Build with it |
|---|---|---|
| Game Boxscore | Score, clock, quarter scoring, and per-team statistical leaders | Scoreboards and game cards |
| Game Summary | The full statistical view: everything in the boxscore plus complete team and per-player statistics | Stat pages and post-game reports |
| Game Play-by-Play | The event stream: every play with locations, possession, and the on-court players | Timelines, shot charts, and live trackers |
Schedule feeds provide the game IDs; Live Game Updates walks all three feeds in play.
Coverage
Every scheduled game carries a coverage flag (full or extended_boxscore) and a track_on_court flag stating the data depth to expect from the game feeds. Read them per game rather than assuming them; the full treatment of both flags is under Coverage Flags on Game Status Workflow.
Coming from the NBA API
The G League API shares its shape with the NBA API: the same URL structure, status model, ID scheme, and core feed set. If you have integrated the NBA API, these are the differences that matter:
| Difference | What it means for your integration |
|---|---|
| The year runs in phases | The season is addressed as separate season types (SC, SCC, REG, PST), and records reset after the Showcase Cup. Pull each phase you need separately (The Season Model, above) and show the Showcase Cup table on its own (Standings and Rankings) |
| Playoff formats are shorter and vary | In the 2025-26 postseason the first three rounds were single elimination and the Finals best of three. Read each season's bracket from Series Schedule rather than assuming a format (Playoffs and Tournaments) |
| Weighted free throws | G League rules include a single free throw attempt worth the full value of the trip. Free throw statistics carry free_throw_type (regular or weighted), so score from the events rather than assuming one point per make (Live Game Updates) |
| Injury reporting is not included | The Injuries feed is part of the shared basketball feed set, but injury reporting is not included in G League coverage, and the feed returns the report structure with no team entries (Rosters and Player Statuses) |
| One team-bearing division per conference | In place of the NBA's six-division alignment, teams sit in one conference-wide division per side; earlier-alignment divisions and their record splits appear without data (League Structure, above) |
| Roster movement is constant | Two-way assignments and call-ups move players between the leagues all season. Daily Transfers tracks the movement (Rosters and Player Statuses), and sport_profile keeps one cross-league identity per player (ID Handling) |
Updated about 13 hours ago
