Integration GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

Update Frequencies

Intro

Each NHL API endpoint updates at a variable frequency, in terms of both its cache and its data.

For example, a Game endpoint may have a 3-second cache during a live game. After the game concludes, this shifts to a 600-second cache, and after seven days, to 4 hours. Alternatively, a Standings endpoint may have a 10-minute cache, with the data updating when games conclude.

Given your limited amount of API requests and QPS, these frequencies should be understood and factored into your pull rate.

Use this section to help determine the best pull frequency for your needs.



Time-to-Live (TTL) and Data Updates

Understanding the distinction between TTL and data updates is crucial for designing an efficient and reliable NBA API solution. TTL is focused on the length of time an object is cached, whereas data updates are concerned with the actual data within the API.


Time-to-Live (TTL)

Time-to-Live (TTL) defines the maximum duration a response may be served from cache before revalidation. TTL values are returned in the Cache-Control header for each REST feed. For example:

Cache-Control: public, must-revalidate, max-age=300

This indicates a TTL of 300 seconds.

TTL is an upper bound, not a guarantee. When underlying event data changes, our system proactively invalidates and replaces the cached object immediately, even if the TTL has not expired.


Data Updates

Data Updates refer to the changes made to the underlying data that the API provides access to. This can occur through various operations such as creating, updating, or deleting our sports data.

Data updates are critical to ensuring that the API delivers the most current and accurate information. Data entry workflows and processes specific to NFL data will affect your suggested request frequency.

See a daily breakdown of data updates for the NHL API.



Additional Frequency Resources

Visit our Headers documentation to learn how to interpret and use header responses to access the freshest sports data.



Frequency Chart

What is the right request frequency for your use? Which endpoints should you pull to get the most efficient use of your allotted calls?

The below chart provides answers to these questions, with a breakdown of the cache and data updates for every NHL API endpoint, as well as our recommended pulling frequency.


EndpointTTL / CacheData Updates

Recommended Pull

(Non-Live)

Recommended Pull

(Live)

Awards List4 hoursNew awards appear as they are added to the databasePull on an as needed basisNot applicable
Daily Change Log
  • 15 minutes for current day
  • 1 hour for current month
  • 4 hours for current year
  • 12 hours for past years

Entries populate live for changes to teams, players, game statistics, schedules, and standings

Start time of the log is 05:00:00 UTC; end time is 04:59:59 UTC

Pull every ten minutes or less, depending on your use caseNot applicable
Daily Schedule

10 minutes for days with active games (games in non-closed status)

4 hours for days without active games

Schedule info updates in realtime as changes are made

Pull every hour or less, depending on your use case

Note that this feed should be used for schedule info prior to a game start

For status of a live game, reference a "game" endpoint

Not applicable

Use this feed for non-live schedule retrieval only

Daily Transfers4 hoursUpdates in realtime as transactions are enteredPull every hour or less, depending on your use caseNot applicable
Depth Charts4 hoursDepth chart info updates in realtime as changes are madePull every hour or less, depending on your use caseNot applicable
Free Agents4 hoursUpdates in realtime as changes are made to rosters or player profilesPull every hour or less, depending on your use caseNot applicable
Game Analytics

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis

Feed can be ignored until 30 minutes before the scheduled game start, depending on your use case

Utilize the daily change log to capture data changes after a game has ended

Can request as fast as every 3 seconds (matching the TTL) when a game is live

Game feeds should be requested 10 minutes before the scheduled start

Game Boxscore

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case

Utilize the daily change log to capture data changes after a game has ended

Can request as fast as every 3 seconds (matching the TTL) when a game is live

Game feeds should be requested 10 minutes before the scheduled start

Game Faceoffs

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case

Utilize the daily change log to capture data changes after a game has ended

Can request as fast as every 3 seconds (matching the TTL) when a game is live

Game feeds should be requested 10 minutes before the scheduled start

Game Play-by-Play

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case

Utilize the daily change log to capture data changes after a game has ended

Can request as fast as every 3 seconds (matching the TTL) when a game is live

Game feeds should be requested 10 minutes before the scheduled start

Game Shot Zones

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case

Utilize the daily change log to capture data changes after a game has ended

Can request as fast as every 3 seconds (matching the TTL) when a game is live

Game feeds should be requested 10 minutes before the scheduled start

Game Summary

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis

Feed can be ignored until 30 minutes before the scheduled game start, depending on your use case

Utilize the daily change log to capture data changes after a game has ended

Can request as fast as every 3 seconds (matching the TTL) when a game is live

Game feeds should be requested 10 minutes before the scheduled start

Game Time On Ice

60 seconds when a game is in scheduled status

3 seconds when a game moves to inprogress

600 seconds when a game moves to closed

4 hours when seven days have passed since closed

Realtime

Pull on an as-needed basis

Feed can be ignored until 10 minutes before the scheduled game start, depending on your use case

Utilize the daily change log to capture data changes after a game has ended

Can request as fast as every 3 seconds (matching the TTL) when a game is live

Game feeds should be requested 10 minutes before the scheduled start

Injuries4 hoursWe monitor and update injuries and transactions throughout the day, using a combination of official and reliable sourcesPull every hour or less, depending on your use caseNot applicable
League Hierarchy4 hoursHierarchy updates appear as they are updated in the databasePull daily or less, depending on your use caseNot applicable
League Leaders - Daily4 hoursLeague Leaders update nightly after all games are closed and statistics validatedPull daily or less, depending on your use caseNot applicable
League Leaders - Goaltending4 hoursLLeague Leaders update nightly after all games are closed and statistics validatedPull daily or less, depending on your use caseNot applicable
League Leaders - Seasonal4 hoursLeague Leaders update nightly after all games are closed and statistics validatedPull daily or less, depending on your use caseNot applicable
League Leaders - Skaters4 hoursLeague Leaders update nightly after all games are closed and statistics validatedPull daily or less, depending on your use caseNot applicable
Player Profile4 hoursStats update around 5 minutes after a game is moved to closed

Pull on an as-needed basis

Utilize the daily change log to capture data changes after a game has ended

Pull 5-10 mins after a game moves to closed to receive the quickest updates
Rankings4 hoursRankings updated nightly, 60 minutes after all games are overPull every hour or less, depending on your use caseNot applicable
Schedule

10 minutes when season includes active games (games in non-closed status)

4 hours when no active games

Schedule info updates in realtime as changes are made

Pull every hour or less, depending on your use case

Note that this feed should be used for schedule info prior to a game start

For status of a live game, reference a "game" endpoint

Not applicable

Use this feed for non-live schedule retrieval only

Seasonal Analytics4 hoursSeasonal stats update around 5 minutes after a game is moved to closed

Pull on an as-needed basis

Utilize the daily change log to capture data changes after a game has ended

Pull 5-10 mins after a game moves to closed to receive the quickest updates
Seasonal Awards4 hoursAward entries are added as they are announcedPull on an as-needed basisPull 5-10 mins after a game is moved to closed to receive the quickest updates
Seasonal Faceoffs4 hoursSeasonal stats update around 5 minutes after a game moves to closedPull on an as-needed basisPull 5-10 mins after a game is moved to closed to receive the quickest updates
Seasonal Shot Zones4 hoursSeasonal stats update around 5 minutes after a game moves to closedPull on an as-needed basisPull 5-10 mins after a game is moved to closed to receive the quickest updates
Seasonal Statistics4 hoursSeasonal stats update around 5 minutes after a game moves to closedPull on an as-needed basisPull 5-10 mins after a game is moved to closed to receive the quickest updates
Seasons4 hours

New seasons appear as they are added to the database

The season status is updated on the same day

Pull on an as-needed basisNot applicable
Series Faceoffs3 secondsSeries stats update around 5 minutes after a game moves to closedPull on an as-needed basisPull 5-10 mins after a series game is moved to closed to receive the quickest updates
Series Schedule

300 seconds for series' with active games (games in non-closed status)

12 hours for series' without active games

Schedule info updates in realtime as changes are made

The initial playoff schedule (with TBD matchups) is available shortly after the regular season schedule is released

Pull on an as-needed basisPull 5-10 mins after a series game is moved to closed to receive the quickest updates
Series Statistics3 secondsSeries stats update around 5 minutes after a game moves to closedPull on an as-needed basisPull 5-10 mins after a series game moves to closed to receive the quickest updates
Standings10 minutesStandings update within 5 minutes of each game moving to completePull on an as-needed basisPull 5-10 mins after a game moves to closed to receive the quickest updates
Team Leaders - Daily4 hoursTeam Leaders update nightly after all games are closed and statistics validatedPull daily or less, depending on your use caseNot applicable
Team Leaders - Seasonal4 hoursTeam Leaders update nightly after all games are closed and statistics validatedPull daily or less depending on your use caseNot applicable
Team Profile4 hoursUpdates in realtime as changes are made to rosters or player profilesPull every hour or less, depending on your use caseNot applicable
Teams4 hoursNew teams appear as they are added to the databasePull on an as-needed basisNot applicable

🏒

Important Note

Pull recommendations are based on a typical customer's needs. We suggest starting with our recommended rate and adjusting as necessary according to your needs.