Integration GuidesReference Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

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 December
  • SCC (Showcase Cup Championship): the Showcase Cup's standalone championship game
  • REG (Regular Season): late December to late March
  • PST (Post-season): the playoffs, in April
  • PRE (Pre-season) and EX (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.

The League StructureLeague, two conferences, one team-bearing division per side
Leagueac79301f-9b1a-4e72-...NBA G League, alias NBDL
Conferenceaa94c231-e9c7-48ac-...EASTERN CONFERENCE, one of two
Division29016614-48f3-4b2b-...conference-wide; holds all 16 Eastern teams
Teame74de5ce-3e98-4414-afe5-...Greensboro Swarm; reference 1612709922 is the official league id
Earlier-alignment divisions stay listed without teams, and standings rows keep the matching record splits at 0-0; build from the entries that contain teams.

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 TBD team 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:

FeedReturnsBuild with it
Game BoxscoreScore, clock, quarter scoring, and per-team statistical leadersScoreboards and game cards
Game SummaryThe full statistical view: everything in the boxscore plus complete team and per-player statisticsStat pages and post-game reports
Game Play-by-PlayThe event stream: every play with locations, possession, and the on-court playersTimelines, 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:

DifferenceWhat it means for your integration
The year runs in phasesThe 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 varyIn 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 throwsG 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 includedThe 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 conferenceIn 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 constantTwo-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)

Did this page help you?