Integration GuidesDocs
Coverage MatrixDocumentationChange LogLog InContact Us
Integration Guides

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: drive your cadence from the change logs and your product's freshness needs, and read the header on the responses you actually receive.



Frequency Chart

The shared discovery feeds (Books, Sports, Sport Competitions) exist in every package and carry the same TTL in each. The recommended-pull column holds recommendations, not limits.

FeedPackageTTL (cache)Data updatesRecommended pull
BooksEvery package5 minutesOn bookmaker configuration changesDaily
Category FuturesFutures5 minutesAs futures prices move; bookmaker prices refresh every 3 minutesA few times per day; more often around season milestones
Competition FuturesFutures5 minutesAs futures prices move; bookmaker prices refresh every 3 minutesA few times per day; more often around season milestones
Daily SchedulesPrematch1 secondAs events gain odds for that dateEvery hour or less on dates you cover
Daily Sport Event ScheduleLive Odds1 secondAs event statuses changeEvery few minutes on game days
Daily Sport Player PropsPlayer Props60 secondsAs props post and move for that dateEvery hour or less on dates you cover
Competition and Player MappingsEvery package6 minutesAs entities are addedDaily, cached locally
Sport Event MappingsEvery package6 minutesEntries appear 14 days before an event, once odds are availableDaily, cached locally
Player Props Change LogPlayer Props1 secondContinuously; each response covers a five-minute windowEvery 1 to 5 minutes while you track bettable events
Sport CompetitionsEvery package5 minutesAs competitions gain or lose odds coverageDaily
Sport Event MarketsPrematch1 secondAs bookmaker odds move; bookmaker prices refresh once per minuteWhen the change log reports the event
Sport Event MarketsLive Odds1 secondBookmaker prices refresh every 15 seconds while the event is in playEvery 30 seconds for events in play
Sport Event Markets Change LogPrematch1 secondContinuously; each response covers a five-minute windowEvery 1 to 5 minutes while you track bettable events
Sport Event Player PropsPlayer Props60 secondsAs prop odds move; bookmaker prices refresh once per minuteWhen the change log reports the event
Sport Event Player PropsLive Odds60 secondsBookmaker prices refresh every 15 seconds while the event is in playEvery 60 seconds for events in play
SportsEvery package5 minutesAs sports gain or lose odds coverageDaily

The Futures package has no change log, so the futures feeds are their own refresh trigger; see Tracking Futures Odds. The Live Odds package has none either: poll its event feeds directly during play, as on Tracking Live Odds. Bookmaker prices refresh into each package on a fixed cycle (the table under Bookmaker Price Refresh by Package below), so a 1-second TTL bounds cache staleness rather than how often prices change.


⏱️

TTLs Are Cache Floors

A 1-second TTL on Sport Event Markets means the cache will not serve stale data beyond a second, not that you should call every second. The change logs tell you which events moved; re-pull markets only for those, and let each response's own header guide anything you cache.



Bookmaker Price Refresh by Package

Separately from each feed's TTL, bookmaker prices are refreshed into each package on a fixed cycle. Polling a feed faster than its package refreshes returns the same prices, so these cycles are the practical ceiling on freshness:

PackageBookmaker prices refresh
PrematchOnce per minute
Player PropsOnce per minute
FuturesEvery 3 minutes
Live OddsEvery 15 seconds

The change logs report an event as soon as its prices refresh, so the loop on Monitoring Odds Changes already runs at the right cadence for Prematch and Player Props. Futures and Live Odds have no change log, so these cycles are the shortest polling interval that can return new prices.



Reading TTL from Responses

Every response states its own TTL:

HTTP/1.1 200 OK
cache-control: max-age=300, private

The value is in seconds (300 is the 5-minute tier). The header on each response is definitive for that feed, so check it rather than hardcoding the chart's values.



Cadence and the Change Logs

The change logs are the cadence backbone for the Prematch and Player Props packages: poll them every 1 to 5 minutes, re-pull markets or props only for the events they report, and skip every event they do not. The full loop, including how to reconcile after a gap longer than the five-minute window, is on Monitoring Odds Changes.



Best Practices

  • Read cache-control on every response rather than hardcoding TTLs; values differ by feed
  • Refresh the discovery feeds (Books, Sports, Sport Competitions) daily rather than alongside odds pulls
  • Pull the mappings feeds once, cache them locally, and refresh daily; they page at 1000 rows
  • Let the change logs decide which events to re-pull; a fixed per-event timer wastes most of its calls

Did this page help you?