Integration GuidesReference Docs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

Update Frequencies

Two different numbers govern how you poll a feed: how often its data changes, and how long its responses cache. This page carries both: the cache TTL each feed serves, what actually drives its data to change, and a recommended pull cadence. Match your cadence to the data's rhythm, not to the TTL.



Reading TTLs from Responses

Every response carries a cache-control header with the TTL in seconds:

cache-control: public, max-age=601

Check the header on the responses you receive; several feed families serve tiered TTLs that follow game activity, and the chart below carries each feed's tiers. The frequency model is shared with the NFL API, so an NFL integration's polling plan carries over directly.



Frequency Chart

FeedTTL (cache)Data updatesRecommended pull
League Hierarchy4 hoursHierarchy updates appear as they are madeDaily
Seasons4 hoursNew seasons appear as they are addedDaily
Teams4 hoursNew teams appear as they are addedDaily
Season Schedule10 minutes with active games; 4 hours with noneSchedule edits in real time; scores at completeHourly in season; a few times per day otherwise
Current Season / Current Week Schedule10 minutes with active games; 60 minutes with noneThe window rolls forward as the next game reaches createdHourly; every few minutes on game days
Weekly Schedule10 minutes with active games; 4 hours with noneSchedule edits in real time, plus deleted_gamesWith each schedule pass
Postgame Standings10 minutesWithin 2 minutes of each game reaching completeAfter each game day; 2 to 5 minutes after complete for the fastest updates
Seasonal Statistics4 hoursAbout 5 minutes after a game reaches closed5 to 10 minutes after closed on game days
Player Profile4 hoursSeasonal stats land about 5 minutes after closed; roster activity as it happensOn change-log signal
Weekly Injuries4 hoursMade available by day of gameDaily in game weeks
Weekly Depth Charts4 hoursShortly before each game; can update during and afterDaily in game weeks
Game Boxscore / Play-by-Play / Statistics / Roster60 seconds at scheduled; 3 seconds in play; 600 seconds at closed; 4 hours seven days after closedReal time while in play; validation at closedAs fast as every 3 seconds in play, starting 10 minutes before kickoff; one final pull at closed
Daily Transactions4 hoursIn real time as transactions are enteredDaily, plus intraday in active periods
Daily Change Log15 minutes for the current league day; up to 12 hours for past periodsEntries populate live; the league day rolls at 04:00:00ZDaily after 04:00:00Z, plus intraday in active periods
Tournament List / Schedule / Summary4 hoursEntries appear shortly after the regular-season schedule releases; teams advance about 2 minutes after the feeding game reaches complete; brackets and seeds when officialDaily; after each playoff game

The recommended-pull column is guidance to start from, not a limit; scale it to the freshness your product needs.

⏱️

The TTL Is a Cache Floor

A feed's TTL is the fastest its responses can change, not a request to poll that fast. For example, the weekly report feeds' data moves on a weekly rhythm regardless of the cache window; match your cadence to the report cycle.



Live Game Windows

During a game window the game feeds update in real time as games are played, and polling is driven by game status rather than by this chart: the Tracking Live Games workflow poll cycle covers kickoff to closed. The game feeds' TTL drops to 3 seconds in play, so live polling can run as fast as every 3 seconds. Once a game is closed its feeds serve a 600-second TTL (4 hours after seven days), and one final pull captures the validated record.



Keeping a Store in Sync

  • Daily: pull the Daily Change Log for the league day and refetch what it lists; honor deleted_games in the weekly schedules
  • Game days: refresh schedules and standings as games reach complete and closed
  • Weekly: pick up the new week's injuries and depth charts in game weeks
  • Seasonally: re-pull Hierarchy, Teams, and Seasons ahead of a new season for structure and identity changes


Best Practices

  • Respect cache-control: requesting inside the TTL returns the same payload and spends quota
  • Distribute non-urgent pulls across the hour rather than bunching them at the top
  • On 429, slow your request rate and retry, increasing the wait between attempts
  • Build cadences per feed family rather than one global timer

Did this page help you?