---
updatedAt: 2026-08-20T12:52:06.000Z
agentTools:
  siteIndex: https://developer.sportradar.com/llms.txt
  projectIndex: https://developer.sportradar.com/basketball/llms.txt
---

# Update Frequencies

Every response carries a `cache-control: max-age` header: the feed's TTL, meaning how long that payload may be served from cache before a fresh copy is available. A TTL is a **cache floor, not a polling recommendation**: poll at the cadence your product needs, and read the header on the responses you actually receive.

<br />

***

## Frequency Chart

Several feeds are state-dependent, with the tiers shown. The recommended-pull columns are recommendations, not limits.

| Feed                                                                                                                     | TTL (cache)                                                                                                               | Data updates                                          | Recommended pull (non-live)                                                                                                           | Recommended pull (live)                                                                                         |
| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| <Anchor label="Daily Change Log" target="_blank" href="ref:g-league-daily-change-log">Daily Change Log</Anchor>          | 15 minutes (current day); 1 hour (current month); 4 hours (current year); 12 hours (past years)                           | As entities change during the day                     | Every hour or less, depending on your use case                                                                                        | Not applicable                                                                                                  |
| <Anchor label="Daily Schedule" target="_blank" href="ref:g-league-daily-schedule">Daily Schedule</Anchor>                | 10 minutes                                                                                                                | As that date's games change and complete              | Every hour or less during the current day, depending on your use case                                                                 | Not applicable                                                                                                  |
| <Anchor label="Daily Transfers" target="_blank" href="ref:g-league-daily-transfers">Daily Transfers</Anchor>             | 2 hours                                                                                                                   | As transactions post                                  | Every hour or less, depending on your use case                                                                                        | Not applicable                                                                                                  |
| <Anchor label="Free Agents" target="_blank" href="ref:g-league-free-agents">Free Agents</Anchor>                         | 4 hours                                                                                                                   | On player movement                                    | Every hour or less, depending on your use case                                                                                        | Not applicable                                                                                                  |
| <Anchor label="Game Boxscore" target="_blank" href="ref:g-league-game-boxscore">Game Boxscore</Anchor>                   | 1 minute (scheduled); 2 seconds (in progress); 10 minutes (recently closed); 4 hours (more than seven days after closing) | Continuously during play                              | As needed; the feed can be ignored until 10 minutes before the scheduled start, with the daily change log capturing post-game changes | As fast as the response TTL allows while a game is live; begin requesting 10 minutes before the scheduled start |
| <Anchor label="Game Play-by-Play" target="_blank" href="ref:g-league-play-by-play">Game Play-by-Play</Anchor>            | 1 minute (scheduled); 2 seconds (in progress); 10 minutes (recently closed); 4 hours (more than seven days after closing) | Continuously during play                              | As needed; the feed can be ignored until 10 minutes before the scheduled start, with the daily change log capturing post-game changes | As fast as the response TTL allows while a game is live; begin requesting 10 minutes before the scheduled start |
| <Anchor label="Game Summary" target="_blank" href="ref:g-league-game-summary">Game Summary</Anchor>                      | 1 minute (scheduled); 2 seconds (in progress); 10 minutes (recently closed); 4 hours (more than seven days after closing) | Continuously during play                              | As needed; the feed can be ignored until 10 minutes before the scheduled start, with the daily change log capturing post-game changes | As fast as the response TTL allows while a game is live; begin requesting 10 minutes before the scheduled start |
| <Anchor label="Injuries" target="_blank" href="ref:g-league-injuries">Injuries</Anchor>                                  | 2 hours                                                                                                                   | Injury reporting is not included in G League coverage | Not applicable                                                                                                                        | Not applicable                                                                                                  |
| <Anchor label="League Hierarchy" target="_blank" href="ref:g-league-league-hierarchy">League Hierarchy</Anchor>          | 4 hours                                                                                                                   | On league structure changes                           | Daily or less, depending on your use case                                                                                             | Not applicable                                                                                                  |
| <Anchor label="League Leaders" target="_blank" href="ref:g-league-league-leaders">League Leaders</Anchor>                | 15 minutes                                                                                                                | After games close                                     | As needed; the daily change log captures post-game changes                                                                            | 20 to 25 minutes after a game closes                                                                            |
| <Anchor label="Player Profile" target="_blank" href="ref:g-league-player-profile">Player Profile</Anchor>                | 15 minutes (active players); 12 hours (retired players)                                                                   | On player changes; statistics after games close       | As needed; the daily change log captures post-game changes                                                                            | 5 to 10 minutes after a game closes                                                                             |
| <Anchor label="Rankings" target="_blank" href="ref:g-league-rankings">Rankings</Anchor>                                  | 15 minutes                                                                                                                | After games close                                     | As needed                                                                                                                             | 30 to 90 minutes after the day's final game closes                                                              |
| <Anchor label="Schedule" target="_blank" href="ref:g-league-schedule">Schedule</Anchor>                                  | 10 minutes                                                                                                                | As games are scheduled, moved, or completed           | Every hour or less, depending on your use case; use the game feeds for live status                                                    | Not applicable                                                                                                  |
| <Anchor label="Seasonal Statistics" target="_blank" href="ref:g-league-seasonal-statistics">Seasonal Statistics</Anchor> | 15 minutes                                                                                                                | After games close                                     | As needed; the daily change log captures post-game changes                                                                            | 5 to 10 minutes after a game closes                                                                             |
| <Anchor label="Seasons" target="_blank" href="ref:g-league-seasons">Seasons</Anchor>                                     | 4 hours                                                                                                                   | When seasons are added or dated                       | As needed                                                                                                                             | Not applicable                                                                                                  |
| <Anchor label="Series Schedule" target="_blank" href="ref:g-league-series-schedule">Series Schedule</Anchor>             | 5 minutes (series with active games); 12 hours (otherwise)                                                                | As series are created and decided                     | As needed                                                                                                                             | Every hour or less; use the game feeds for live status                                                          |
| <Anchor label="Series Statistics" target="_blank" href="ref:g-league-series-statistics">Series Statistics</Anchor>       | 4 hours                                                                                                                   | After series games close                              | As needed; the daily change log captures post-game changes                                                                            | 5 to 10 minutes after a game closes                                                                             |
| <Anchor label="Standings" target="_blank" href="ref:g-league-standings">Standings</Anchor>                               | 10 minutes                                                                                                                | After games close                                     | Every hour or less, depending on your use case                                                                                        | 2 to 5 minutes after a game closes                                                                              |
| <Anchor label="Team Profile" target="_blank" href="ref:g-league-team-profile">Team Profile</Anchor>                      | 4 hours                                                                                                                   | On roster or staff changes                            | Every hour or less, depending on your use case                                                                                        | Not applicable                                                                                                  |
| <Anchor label="Teams" target="_blank" href="ref:g-league-teams">Teams</Anchor>                                           | 4 hours                                                                                                                   | On team changes                                       | As needed                                                                                                                             | Not applicable                                                                                                  |

<Callout icon="⏱️" theme="default">
  ### TTLs Are Cache Floors

  A 10-minute TTL on Standings means a fresh table can be available every 10 minutes, not that you need one that often: a standings page refreshed after each game day is fully current. Conversely, the 2-second in-progress TTL on the game feeds is a ceiling on freshness, not a mandate to poll that fast; poll live games at the cadence your product needs and let the header on each response guide you.
</Callout>

<br />

***

## Reading TTL from Responses

Every response states its own TTL:

```http
HTTP/1.1 200 OK
cache-control: public, max-age=601
```

The value is in seconds (`601` is the 10-minute tier). The header on each response is definitive for that feed.

<br />

***

## The Change-Log Window

The <Anchor label="Daily Change Log" target="_blank" href="ref:g-league-daily-change-log">Daily Change Log</Anchor> and <Anchor label="Daily Transfers" target="_blank" href="ref:g-league-daily-transfers">Daily Transfers</Anchor> cover one US Eastern day each (see [G League API Basics](https://developer.sportradar.com/basketball/docs/g-league-ig-api-basics) for the exact window boundaries), and past dates remain queryable. A daily pull of the change log, plus targeted refetches of what it lists, keeps a store current without re-crawling; the workflow is on the [Monitoring Data Changes](https://developer.sportradar.com/basketball/docs/g-league-ig-daily-change-log) page.

<br />

***

## Best Practices

* Read `cache-control` on every response rather than hardcoding TTLs; values differ by feed and can differ by game state
* Poll standings-family feeds after game days, not on a timer during idle hours
* During live games, poll the game-scoped feeds for the games you track rather than the full Daily Schedule
* Use the Daily Change Log as the trigger for off-cycle refreshes of profiles, results, and standings