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. Probabilities are delivered on a 15-second delay across every feed.
Frequency Chart
The event-scoped feeds are live-tiered in behavior: probabilities recalculate through play for events covered live, so the live column applies to those events only. The recommended-pull columns hold recommendations, not limits.
| Feed | TTL (cache) | Data updates | Recommended pull (non-live) | Recommended pull (live) |
|---|---|---|---|---|
| Competition Seasons | 60 seconds | When seasons are added | As needed | Not applicable |
| Seasonal Outright Probabilities | 60 seconds | As results land; markets tied to games in play are removed until those games end | Daily, or after each completed game day | Not applicable |
| Seasonal Probabilities | 60 seconds | As event probabilities revise | Daily | Not applicable |
| Sport Competitions | 60 seconds | As competition coverage changes | Daily | Not applicable |
| Sport Event Probabilities | 1 second | Pre-match as estimates revise; continuously in play for events covered live | Near game time for the pre-game figure | At the cadence your display needs; the 1-second TTL supports near-real-time polling |
| Sport Event Probabilities Timeline | 1 second | A point per pre-match revision and per in-play recalculation | One pull after the event ends for the full curve | Optional in play; the current figure comes from Sport Event Probabilities |
| Sport Schedule | 1 second | As the day's probabilities update | A few times per day for upcoming dates | Every few minutes to refresh a whole-slate display |
| Sports | 60 seconds | As covered sports change | As needed | Not applicable |
TTLs Are Cache FloorsThe 60-second TTL on the seasonal feeds means a fresh table can be available every minute, not that you need one that often: outright probabilities move with results, so a daily pull keeps a season table current. Conversely, the 1-second TTL on the event feeds is a ceiling on freshness, not a mandate to poll that fast.
Reading TTL from Responses
Every response states its own TTL:
HTTP/1.1 200 OK
cache-control: max-age=60, privateThe value is in seconds (60 is the one-minute tier). The header on each response is definitive for that feed, so check it rather than hardcoding the chart's values.
Best Practices
- Read
cache-controlon every response rather than hardcoding TTLs; values differ by feed - Poll Sport Event Probabilities only for events you are actively displaying; the Sport Schedule covers a whole slate in one call
- Pull the Timeline once after an event ends rather than polling it through play
- Refresh the seasonal feeds after completed game days rather than on a timer during idle hours
Updated 1 day ago
