Integration GuidesReference Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

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

FeedPurpose
SeasonsThe season catalog: every year and phase on file, with dates and statuses
ScheduleEvery game of one season phase
Daily ScheduleEvery game on one US Eastern date
Series SchedulePlayoff series (covered in Playoffs and Tournaments)
Daily Change LogThe trigger for off-cycle schedule refreshes


High-Level Workflow

Seasons for the catalog → Schedule per phase → Daily Schedule to seed each day

Schedules WorkflowDiscover the season, pull the slate, seed each day
DiscoverSeasonspick season_year + season_type
Season slateScheduleevery game of the phase, one response
Each dayDaily Schedulehand off to live trackingUS Eastern date
Cadences come from Update Frequencies; postponements surface in the daily change log; past seasons are covered on Historical Data.


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:

  • status is the game lifecycle state: completed games read closed, and games that were not played read postponed (or, in playoff series, unnecessary); the full lifecycle is on Game Status Workflow
  • coverage (full or extended_boxscore) and track_on_court state the data depth available for the game; see Game Status Workflow for what each level carries
  • home_points and away_points carry the final score once play ends
  • time_zones gives the venue, home, and away time zones for rendering local times alongside the UTC scheduled timestamp
  • broadcasts lists where the game airs: each entry carries a network and type (TV or Internet), plus a locale and provider channel number where they apply. National and International entries sit alongside Home and Away entries 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 field
  • reference is 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:

January 15 Scoreboard3 of the day's 7 games
GRGGrand Rapids Gold102NOBNoblesville Boom92FINALRiverview Health Arena at Innovation Mile, NoblesvilleESPN+
GBOGreensboro Swarm123WESWestchester Knicks111FINALWestchester County Center, White PlainsESPN+MSG
RAPRaptors 905115CCGCapital City Go-Go104FINALCareFirst Arena, WashingtonMonumental
The logo slots are generic placeholders; fill them from Sportradar's image products or your own assets.


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 schedule section 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

Did this page help you?