Schedules
This scenario pulls and maintains the G League schedule: the full slate for any season phase and a single date's games.
This scenario is commonly used to:
- Populate season and team schedule pages
- Discover today's games to hand off to live-game polling
- Label games with their season phase, venue, and coverage flags
Relevant Feeds
| Feed | Purpose |
|---|---|
| Seasons | The season catalog: every year and phase on file, with dates and statuses |
| Schedule | Every game of one season phase |
| Daily Schedule | Every game on one US Eastern date |
| Series Schedule | Playoff series (covered in Playoffs and Tournaments) |
| Daily Change Log | The trigger for off-cycle schedule refreshes |
High-Level Workflow
Seasons for the catalog → Schedule per phase → Daily Schedule to seed each day
Integration Steps
1. Pull a season's full schedule
Schedule takes the {season_year}/{season_type} pair and returns every game of that phase in one response: 561 games for the 2025-26 regular season. Two entries, one completed and one postponed (the full season carried 558 closed games and 3 postponed):
GET https://api.sportradar.com/nbdl/trial/v8/en/games/2025/REG/schedule.json
x-api-key: YOUR_API_KEY{
"league": {
"id": "ac79301f-9b1a-4e72-a4cb-230d4418ae08",
"name": "NBA G League",
"alias": "NBDL"
},
"season": {
"id": "fea41a6e-80d4-4756-bfea-37c7b347a21a",
"year": 2025,
"type": "REG"
},
"games": [
{
"id": "cc32f8b6-904d-4210-9f9b-b7a39c361db4",
"status": "closed",
"title": "Showcase Cup Quarterfinal",
"coverage": "full",
"scheduled": "2025-12-19T17:00:00+00:00",
"home_points": 117,
"away_points": 119,
"track_on_court": true,
"reference": "2022500001",
"time_zones": {
"venue": "US/Eastern",
"home": "US/Central",
"away": "US/Pacific"
},
"venue": {
"id": "db7644f4-45dc-4ee1-a2ab-f4467ffc03c6",
"name": "Orange County Convention Center",
"address": "9800 International Drive",
"city": "Orlando",
"state": "FL",
"zip": "32819",
"country": "USA"
},
"broadcasts": [
{
"network": "ESPNU",
"type": "TV",
"locale": "National",
"channel": "208"
}
],
"home": {
"name": "Austin Spurs",
"alias": "AUS",
"id": "0f009580-dda8-4080-aa43-5d58a17028f6",
"seed": 3,
"reference": "1612709890"
},
"away": {
"name": "Stockton Kings",
"alias": "STO",
"id": "b971b187-c542-4b76-9548-114acc564e05",
"seed": 6,
"reference": "1612709914"
}
},
{
"id": "35062e4c-8fc1-4184-9ca6-b1b70db8ff9c",
"status": "postponed",
"coverage": "full",
"scheduled": "2026-02-20T01:00:00+00:00",
"track_on_court": true,
"time_zones": {
"venue": "US/Central",
"home": "US/Central",
"away": "US/Pacific"
},
"venue": {
"id": "0c04b68b-a69e-451e-84a8-e9e60a1f17c3",
"name": "Landers Center",
"capacity": 8362,
"address": "4560 Venture Drive",
"city": "Southaven",
"state": "MS",
"zip": "38671",
"country": "USA",
"location": {
"lat": "34.927201",
"lng": "-89.996536"
}
},
"home": {
"name": "Memphis Hustle",
"alias": "MHU",
"id": "4e26f748-e98f-412e-9c27-f04b255e7f25",
"reference": "1612709926"
},
"away": {
"name": "Stockton Kings",
"alias": "STO",
"id": "b971b187-c542-4b76-9548-114acc564e05",
"reference": "1612709914"
}
}
]
}Reading a game entry:
statusis the game lifecycle state: completed games readclosed, and games that were not played readpostponed(or, in playoff series,unnecessary); the full lifecycle is on Game Status Workflowcoverage(fullorextended_boxscore) andtrack_on_courtstate the data depth available for the game; see Game Status Workflow for what each level carrieshome_pointsandaway_pointscarry the final score once play endstime_zonesgives the venue, home, and away time zones for rendering local times alongside the UTCscheduledtimestampbroadcastslists where the game airs: each entry carries anetworkandtype(TVorInternet), plus alocaleand providerchannelnumber where they apply.NationalandInternationalentries sit alongsideHomeandAwayentries for each side's regional network or team stream. Networks are an open set that changes from season to season, so treat them as display data rather than an enumerated list; not every game carries the fieldreferenceis the official league identifier for the game; see ID Handling
2. Pull one date's games
Daily Schedule takes a date and returns that day's games. The date is the US Eastern date: an evening tip-off whose UTC timestamp has rolled past midnight still belongs to the Eastern calendar day, as in this response, where a game scheduled 2026-01-16T00:00:00+00:00 sits on January 15:
GET https://api.sportradar.com/nbdl/trial/v8/en/games/2026/01/15/schedule.json
x-api-key: YOUR_API_KEY{
"league": {
"id": "ac79301f-9b1a-4e72-a4cb-230d4418ae08",
"name": "NBA G League",
"alias": "NBDL"
},
"date": "2026-01-15",
"games": [
{
"id": "5e712734-759a-4f18-b069-26ab17d961ca",
"status": "closed",
"coverage": "full",
"scheduled": "2026-01-16T00:00:00+00:00",
"home_points": 92,
"away_points": 102,
"track_on_court": true,
"reference": "2022500152",
"time_zones": {
"venue": "US/Eastern",
"home": "US/Eastern",
"away": "US/Eastern"
},
"season": {
"id": "fea41a6e-80d4-4756-bfea-37c7b347a21a",
"year": 2025,
"type": "REG"
},
"venue": {
"id": "1f499b56-7cbc-48cd-a312-7bb55734b4c8",
"name": "Riverview Health Arena at Innovation Mile",
"capacity": 3400,
"address": "14157 CJ Way",
"city": "Noblesville",
"state": "IN",
"zip": "46060",
"country": "USA",
"location": {
"lat": "39.99217",
"lng": "-85.91165"
}
},
"broadcasts": [
{
"network": "ESPN+",
"type": "Internet"
}
],
"home": {
"name": "Noblesville Boom",
"alias": "NOB",
"id": "5335bf84-d1ec-4c85-bc0e-1c36abc091e6",
"reference": "1612709910"
},
"away": {
"name": "Grand Rapids Gold",
"alias": "GRG",
"id": "bbeebcb5-0d9b-4992-bcba-cbde3ec60628",
"reference": "1612709917"
}
}
]
}The response is shown with one of the day's seven games. Unlike the season Schedule, each entry carries its own season object, so a date that spans phases (a Showcase Cup date, a playoff date) labels each game with the phase it belongs to.
Rendered as a scoreboard, a day needs nothing beyond this one response:
Common Use Cases
Typical builds on this workflow include:
- A season schedule page with phase tabs (Showcase Cup, Regular Season, Post-season)
- A daily scoreboard that seeds itself each morning from the Daily Schedule
- A results database kept current from the season schedule, backfilled per Historical Data
Best Practices
- Pull the full-season Schedule daily during the season and cache it; the feed's TTL is 10 minutes, but schedule changes are infrequent
- Use the Daily Schedule, not repeated full-season pulls, to seed each day's live tracking
- Watch the
schedulesection of the daily change log to catch postponements and reschedules without re-pulling every phase; the workflow is on Monitoring Data Changes - Remember the season-type split: a full G League year means four schedules (
SC,SCC,REG,PST) - For completed seasons and how far back the data reaches, see Historical Data
Updated about 12 hours ago
