UFC fight night, pushed to your socket.
Open one WebSocket, join a bout or the whole card, and receive round, clock, result, and live strike updates the moment Cito has them. No polling loop, and frames do not count against your REST quota.
- Included on Scale
- +$15/mo add-on on Pro
- Frames off your REST quota
{ "success": true, "stream": "ufc.live", "websocket": "/api/v1/ufc/live/ws", "redis_subscriber_ready": true, "recommendedPollSeconds": 30}Seamless Integration with our MCP Server
Give Claude, Cursor, and Grok the UFC card. One command writes the MCP config, agents call live and card tools instead of inventing fight IDs, and your key stays on your machine.
MCPInstall the Cito MCP serverBuilt for the live card
Everything a fight-night app needs to stay current without hammering REST: rooms, pushed updates, live stats, and a clean way back after a dropped connection.
Rooms for a bout or a card
Send one subscribe action with bout:{boutId} or event:{eventSlug} rooms, and leave rooms you no longer need.
Pushed ufc.live.update frames
Status, current round, round clock, both corners, and lagSeconds, in the same fields as the live REST endpoints.
Live strike stats
Significant strikes and takedowns per corner while the fight is on, and full round tables once it ends.
SSE for one-way clients
The same updates as a Server-Sent Events stream on /ufc/live/stream, filterable by boutId or eventSlug.
Reconnect without gaps
Re-subscribe after every reconnect and read /ufc/live/{boutId} once to catch up on anything you missed.
Keepalive built in
Send a ping action to hold the socket open through the quiet minutes between bouts.
Endpoints you can ship with
Start on the live group: open the socket, subscribe to rooms, and fall back to REST to resync.
Live data
Connect to wss://api.citoapi.com/api/v1/ufc/live/ws with your key, wait for the ready frame, then subscribe to bout or event rooms. SSE and polling stay available for clients that cannot hold a socket.
- GET
/api/v1/ufc/liveLive card overview: active bouts, clocks, lagSeconds, recommendedPollSeconds.
- GET
/api/v1/ufc/live/eventsFight-night events currently tracked by the live worker.
- GET
/api/v1/ufc/live/{boutId}One live bout: clock, fighters, and stats when available.
- GET
/api/v1/ufc/live/{boutId}/stateCompact live state for polling clients.
- GET
/api/v1/ufc/live/wsWebSocket push: subscribe to bout:{boutId} or event:{eventSlug} rooms.
- GET
/api/v1/ufc/live/streamSSE push feed, filterable by boutId and/or eventSlug.
- GET
/api/v1/ufc/live/healthLive worker health and heartbeat lag.
FAQs
Connecting, plans, quotas, and reconnects
Can't find what you're looking for? Contact our customer support team
More for fight night
The pages and guides developers pair with the WebSocket.
- UFC APIFighters, cards, results, rankings, and round-by-round stats in one API.
- UFC live APIWhat the live feed contains: clocks, bout state, and live stats.
- UFC fight card APIThe full card behind the rooms you subscribe to.
- UFC results APIWinners, methods, rounds, and times once each bout ends.
- WebSocket connection guideAuth, rooms, payloads, and reconnect code.
- Build a live fight dashboardA step-by-step real-time UFC dashboard.
Push UFC to live scoreboards
Test the REST shape on a free key, then add Live WebSockets on Pro or move to Scale when your app follows the card in real time.