Every feed on BSI includes timestamps and source attribution. This page documents exactly where the data comes from, how BSI validates it, and what to expect during edge-case windows.
BSI validates data by cross-referencing across multiple providers before serving it to the frontend. The validation pipeline works in three stages:
The canonical provider for each sport (Highlightly for college, SportsDataIO for pro leagues) returns the initial dataset. This is cached in KV with a short TTL.
For critical data (scores, standings, rankings), a secondary provider is queried. If the primary and secondary disagree on final scores or standings positions, the conflict is logged and the more recently updated source is preferred.
If the primary source fails (timeout, 5xx, rate limit), the system falls back to the next provider in priority order, then to the last-known-good KV snapshot. The source label in the UI always reflects which provider actually served the data.
BSI's Cloudflare Workers respond in under 50ms for cached data. The architecture ensures this through two mechanisms:
<10ms
Pre-warmed by cron every 60s during in-season
200–800ms
Fetches from upstream provider, writes to KV, returns
Health endpoint: /api/health — returns current uptime, cache hit rate, and p95 latency.
Every BSI API response includes a meta object that tells you exactly when the data was fetched and where it came from:
{
"data": { ... },
"meta": {
"source": "highlightly",
"fetched_at": "2026-02-17T14:30:00.000Z",
"timezone": "America/Chicago"
}
}Primary pipeline — scores, rankings, team stats, player profiles
Live scores every 30s; standings/rankings every 30 min
Canonical source. All new integrations wire here first.
Scores, standings, rosters, player statistics, schedules
Live scores every 30–60s; rosters daily
Primary for all professional leagues. Authenticated via Ocp-Apim-Subscription-Key header.
Scores, rankings, and schedules for college baseball
Live scores every 60s; rankings weekly
Fallback source. ESPN dates labeled UTC are actually ET — BSI normalizes to America/Chicago. No API key required.
External APIs are never called from your browser. A Cloudflare Worker sits between you and every data provider — it fetches, transforms, caches, and serves the result. A cron job pre-warms the cache every minute for in-season sports so client requests read from KV in under 10ms.
Every API response carries a meta object with source, fetched_at, and timezone. The UI always shows when data was last updated and where it came from.
When a primary source fails, the system falls back to the next provider in the chain — then to the last-known-good KV snapshot. You'll always see data; the source label tells you how fresh it is.
Spring Training (Feb 15 – Mar 25): limited SportsDataIO coverage; some games unavailable until first pitch. Finalization delays of 5–10 minutes are expected.
Preseason (Feb 14 – Feb 20): opening weekend coverage may be patchy until conferences begin full play. Rankings update weekly during the regular season.
Off-season (Feb – Aug): no live scores. Preseason games begin in August with limited statistical depth.
Off-season (Jun – Oct): no live scores. Summer League coverage is not included.
Austin Humphrey. (2026, February 17). BSI Data Quality & Sources. Blaze Sports Intel. https://blazesportsintel.com/models/data-quality