Historical Data
The API keeps completed seasons fully retrievable: schedules, standings, rankings, leaders, statistics, and complete game detail down to play-by-play. This page covers how far back the data reaches and how to retrieve it.
How Far Back the Data Reaches
The Seasons catalog reaches back to 2017, but complete game data begins with the 2018-19 season. The 2017 entries are catalog stubs: they carry no dates or status, and their schedules return no games. The boundary, and what a stub year returns:
{
"league": {
"id": "ac79301f-9b1a-4e72-a4cb-230d4418ae08",
"name": "NBA G League",
"alias": "NBDL"
},
"seasons": [
{
"id": "35862c75-5fc6-4f71-bf62-b8c606350906",
"year": 2017,
"type": {
"code": "PRE",
"name": "Pre-season"
}
},
{
"id": "11ebc3da-3f7a-438f-b6db-fbdff77cad54",
"year": 2017,
"type": {
"code": "PST",
"name": "Post-season"
}
},
{
"id": "e02125a9-3c57-43db-86e9-8b34578f74fe",
"year": 2017,
"type": {
"code": "REG",
"name": "Regular Season"
}
},
{
"id": "4d2d2b2c-5326-4bd0-abbf-1279dc8e2f5c",
"year": 2018,
"start_date": "2018-11-02",
"end_date": "2019-03-23",
"status": "closed",
"type": {
"code": "REG",
"name": "Regular Season"
}
}
]
}{
"league": {
"id": "ac79301f-9b1a-4e72-a4cb-230d4418ae08",
"name": "NBA G League",
"alias": "NBDL"
},
"season": {
"id": "e02125a9-3c57-43db-86e9-8b34578f74fe",
"year": 2017,
"type": "REG"
},
"games": []
}From 2018-19 onward the record is complete. Treat a season as available when its schedule returns games with scores, not merely because the catalog lists it.
Season types apply to history too. A full G League year means separateSC,SCC,REG, andPSTdata sets; backfill each phase you need. See G League Fundamentals for the type list.
Data Updates
- Completed games are final once their status reads
closed - Late corrections to closed games surface through the
resultssection of the daily change log, so a synced archive stays current without re-crawling; the workflow is on Monitoring Data Changes - The catalog gains new seasons as they are scheduled
Data Accessibility
Season-scoped feeds
Every season-scoped feed (Schedule, Standings, Rankings, League Leaders, Seasonal Statistics, Series Schedule) accepts any listed season_year from 2018 onward. The 2018 regular season returns 681 games with final scores; its opening game:
GET https://api.sportradar.com/nbdl/trial/v8/en/games/2018/REG/schedule.json
x-api-key: YOUR_API_KEY{
"league": {
"id": "ac79301f-9b1a-4e72-a4cb-230d4418ae08",
"name": "NBA G League",
"alias": "NBDL"
},
"season": {
"id": "4d2d2b2c-5326-4bd0-abbf-1279dc8e2f5c",
"year": 2018,
"type": "REG"
},
"games": [
{
"id": "2a7917b6-5418-4c89-b732-26f92dfad3af",
"status": "closed",
"coverage": "full",
"scheduled": "2018-11-02T23:00:00+00:00",
"home_points": 92,
"away_points": 95,
"track_on_court": true,
"reference": "2021800002",
"time_zones": {
"venue": "US/Eastern",
"home": "US/Eastern",
"away": "US/Eastern"
},
"venue": {
"id": "f70b605a-7d35-4127-b11e-d4390edb3a44",
"name": "Portland Exposition Building",
"capacity": 3000,
"address": "239 Park Avenue",
"city": "Portland",
"state": "ME",
"zip": "04102",
"country": "USA",
"location": {
"lat": "43.6564",
"lng": "-70.2773"
}
},
"home": {
"name": "Maine Red Claws",
"alias": "MNE",
"id": "5902b793-b75b-4707-b065-3a76f0314715",
"reference": "1612709915"
},
"away": {
"name": "Westchester Knicks",
"alias": "WES",
"id": "4dc54726-0738-413b-98b1-5b90dfe99aae",
"reference": "1612709919"
}
}
]
}Ancillary fields fill in over time: broadcast listings appear on recent seasons, while the 2018 season's schedule carries none.
Game-level detail
Completed games keep their full detail. The 2018-19 season opener still serves its complete Game Summary (shown with the statistics reduced to a selection of fields and the player lists omitted), and its Play-by-Play returns 475 events across four quarters, including entries in its deleted_events list:
GET https://api.sportradar.com/nbdl/trial/v8/en/games/2a7917b6-5418-4c89-b732-26f92dfad3af/summary.json
x-api-key: YOUR_API_KEY{
"id": "2a7917b6-5418-4c89-b732-26f92dfad3af",
"status": "closed",
"coverage": "full",
"scheduled": "2018-11-02T23:00:00+00:00",
"attendance": 1726,
"duration": "2:15",
"lead_changes": 3,
"times_tied": 5,
"home": {
"id": "5902b793-b75b-4707-b065-3a76f0314715",
"name": "Red Claws",
"market": "Maine",
"alias": "MNE",
"points": 92,
"statistics": {
"points": 92,
"field_goals_made": 35,
"field_goals_att": 83,
"field_goals_pct": 42.2,
"three_points_made": 4,
"three_points_att": 25,
"three_points_pct": 16.0,
"free_throws_made": 18,
"free_throws_att": 24,
"free_throws_pct": 75.0,
"assists": 10,
"steals": 7,
"blocks": 5,
"fast_break_pts": 8,
"bench_points": 23,
"biggest_lead": 3,
"effective_fg_pct": 44.6
}
},
"away": {
"id": "4dc54726-0738-413b-98b1-5b90dfe99aae",
"name": "Knicks",
"market": "Westchester",
"alias": "WES",
"points": 95
}
}Date-scoped feeds
The Daily Schedule, Daily Transfers, and Daily Change Log accept past dates (US Eastern; see G League API Basics), so day-by-day history can be reconstructed after the fact; Monitoring Data Changes uses this to backfill missed days.
Historical Retrieval Workflow
Updated about 12 hours ago
