Live sports data integration
Data integration

Live stats from your source — without operator overload

Genius Sports, FIBA LiveStats, FEB, OCR and custom feeds. Auto-fire that triggers graphics on its own, replay forensics and MANUAL mode as safety net.

Sports data integration is the difference between a broadcast where the operator is overloaded firing 80 graphics per match — and one where the system knows a player just picked up their second foul and shows the graphic on its own. KronoGraph connects to Genius Sports, FIBA LiveStats, FEB, OCR and custom APIs, transforms each source into the same internal schema, and lets templates react automatically to the feed. Operator supervises and corrects; no longer the single point of failure.

Who this service is for

  • Federations with official feeds (Genius Sports, FIBA LiveStats) wanting to capitalize the investment and surface real-time stats to the broadcast.
  • Independent production companies covering mid-size leagues that need to shrink the operator team to one person without quality loss.
  • Federations with their own APIs (legacy systems, internal stacks) needing custom integration — REST or WebSocket — to feed their graphics.
  • Productions where the official feed isn't public and rely on OCR over the physical scoreboard to feed broadcast graphics.

Integrated sources

Genius Sports REST + FLS (✅ production)

Boxscore and play-by-play polling via REST, plus FLS (Live Stats) WebSocket for real-time events. FLS is what FIBA LiveStats distributes — any league using that stack is covered out-of-the-box. In production with DPB Colombia, BCLA and other competitions.

FEB scraper (✅ production)

HTML scraper for the baloncestoenvivo.feb.es portal of the Spanish Basketball Federation. We transform the public HTML into internal frame schema. In production for Primera FEB and other federation categories.

OCR ingestion (✅ beta)

For cases without an official feed: plug a camera pointed at the physical scoreboard, an OCR process converts video into data frames (score, quarter, clock, fouls) and injects them like any other feed. Useful for regional leagues or events with LED boards but no API.

Generic REST/WebSocket feeds (🔧 in development)

Dynamic bindings via configuration: upload a schema mapping from your API to the internal frame schema and KronoGraph polls REST or opens the WebSocket without a code release. Available in alpha for clients with custom APIs.

Graphics auto-fire

ScoreBug + IngameStats react automatically to the feed without manual triggers. Configurable rules: when to show "2nd FOUL", when to overlay "8 PTS (2/3) 67% 3PT" on the scorebug, when "Player of the Match" appears. "Stochastic dominance" model for team-level milestones. Operator can override any auto-fire from the panel.

Replay forensics

Any recorded match persists as a re-executable JSONL. Three uses: train new operators on real data, reproduce specific auto-fire bugs, validate config changes before pushing to a live event. Speed 1x or Nx (accelerated for fast QA).

How it works

  1. Configure the source — Genius Sports / FLS credentials, FEB feed URL, OCR parameters, or the schema mapping for the custom feed.
  2. The ingestion process (Node, port 3001) polls and/or maintains an open WebSocket. Converts each update into the internal frame schema.
  3. Templates listen for frames and update on their own. Auto-fire rules decide what shows and when.
  4. Operator supervises from the panel — flip to MANUAL on any group (score / fouls / time) if the source fails, or override a specific auto-fire.
  5. Everything persists as JSONL for replay and post-event audit.

MANUAL mode as safety net

If the source drops during the match, the operator flips the affected group to MANUAL and keeps operating with hand-entered numbers. When the feed returns, flip back to LIVE and the merged state snapshots — data doesn't clash. This architecture means a Genius or FEB outage doesn't stop the broadcast.

Real production use cases

  • DPB Colombia — Genius Sports REST + FLS for the full season, scorebug auto-fire, ingame stats and final score.
  • Primera FEB — FEB scraper for every league match, integrated with the FEB graphics bundle.
  • BCLA 2026 — Genius Sports in production for Basketball Champions League Americas.
  • Reto 3X3 — custom feed adapted to 3x3 ruleset with score-to-21 and 12s clock.

What's included

  • Genius Sports REST + FLS WebSocket connection (production)
  • FEB scraper for baloncestoenvivo.feb.es (production)
  • OCR ingestion for scenarios without official feeds (beta)
  • Generic REST/WebSocket feeds via configuration (in development)
  • ScoreBug + IngameStats auto-fire with configurable rules
  • Replay forensics — re-executable JSONL captures at 1x/Nx
  • MANUAL mode flip per group (score / fouls / time) on failure
  • Schema mapping for custom integrations (1-3 weeks typical)
  • Multi-source, multi-match in parallel (dedicated Node process)
  • JSONL persistence for audit and debugging

Frequently asked questions

What is auto-fire?

Graphics react to the feed automatically, no manual trigger from the operator. Configurable rules (e.g., show stats when a player picks up 2nd foul).

Which sources are in production?

Genius Sports REST + FLS, FEB scraper. OCR in beta. Generic REST/WS feeds in development.

What is replay forensics?

Re-executable JSONL captures at 1x/Nx for QA, training and bug reproduction.

Can unlisted APIs be integrated?

Yes. Generic REST polling and WebSocket via configuration. 1-3 weeks typical.

What happens if the source goes down?

Flip to MANUAL on the affected group without restart. When it returns, flip to LIVE with merged-state snapshot.

Want to connect your feed to KronoGraph?

Tell us your source and we'll plan an integration with timelines.

Talk to the team