Ultimate Fighting Calendar

UFC & MMA Blog · News

Live fight stats are here: round, clock and in-cage numbers as they happen

UFCalendar now streams the bout in the cage in real time on every UFC event page, and the same feed is available to developers over WebSocket in the Fight API.

Author
Mate Bersenadze
Published
Sep 20, 2026
Read time
2 min read
Tags
ufc · fight-api · live

Open a UFC event page on UFCalendar while a bout is in the cage and you now get a live panel: the round and a clock that ticks every second, significant strikes, total strikes, takedowns, knockdowns, submission attempts and control time for both corners as they land, a round-by-round strip, the referee, and a play-by-play timeline (round starts, knockdowns, takedowns, submission attempts, the unofficial winner call). It went live during UFC 331 on Saturday and ran through the main event.

How it works

UFC publishes an in-fight statistics feed on its own site. We read it every one to two seconds, build one document per event, and push it over a WebSocket the moment anything changes. The clock is derived from the official round-start timestamp rather than a lagging counter, so the number on your screen is the number on the arena clock, whether the last update arrived one second ago or forty.

Everything in the panel is flagged "unofficial until final". The promotion's statisticians confirm the numbers after each bout, and that is when the official totals land on the bout page, with the usual round-by-round breakdown.

Two things it does not do yet: it is UFC only, because no other promotion publishes a real-time feed, and it does not replace the results path. Winner, method, round and time still come through the normal pipeline within seconds of the finish, so every other page on the site behaves exactly as before.

For developers

The same document ships in the Fight API. Pro plans and up can hold a socket open at wss://live.ufcalendar.com/v1?key=…, send {"action":"subscribe","event":"<slug>"} and receive a snapshot, then an update frame every time the numbers move and a fight.final frame the moment a bout ends. Messages are not metered. There is also a REST snapshot at GET /v1/events/{slug}/live, a get_event_live tool on the MCP server, and event_live / eventLive in the Python and TypeScript SDKs.

Docs and samples: ufcalendar.com/developers/ufc-live-api.

What is next

The native apps will get the same stream, and the timeline will feed the Live Activity on iPhone. If you build something on it, tell us: ceo@ufcalendar.com.