The UFC API for developers.
Fighters, rankings, fight cards, results, and round-by-round stats in clean REST JSON. Build profiles, fight-night apps, and MMA dashboards without scraping.
- 773 event records
- 40k+ round stat rows
- 500 free requests / month
{ "success": true, "pagination": { "page": 1, "hasMore": true }, "data": [{ "slug": "ufc-328-chimaev-vs-strickland", "dataId": "9eedac48b497de5a", "hasStats": true, "boutCount": 13 }, ...]}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 serverEverything UFC
Fight cards, fighter profiles, rankings, results, and round-by-round stats in one REST API for every event.
Fight cards and events
Upcoming, recent, and historical UFC cards with clean slugs, stable IDs, and pagination.
Fighter profiles
Bio fields, records, rankings, and profile stats ready for real product screens.
Round-by-round fight stats
Strikes, takedowns, control time, and target splits as bout totals or per round.
Official and media rankings
Meta UFC Rankings and media-panel rankings grouped by division, as separate endpoints.
Live fight night
Clocks, bout state, and an SSE stream for apps that follow the card as it happens.
Odds
Moneyline, totals, and method props per card or fight, with sportsbook filters.
Endpoints you can ship with
Pick what you are building. Start with events, open the card, then pull bouts and stats.
Live data
Poll the live card every 1-2 seconds on fight night, or subscribe to the SSE stream for pushed bout updates.
- 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
Coverage, free testing, live data, and AI agents
Can't find what you're looking for? Contact our customer support team
UFC API by use case
Jump straight to the part of the UFC API you are building with.
- UFC WebSocket APIPush fight-night updates over one socket.
- UFC live APIClocks, bout state, and live stats during the card.
- UFC odds APIMoneylines and props from 24 sportsbooks.
- UFC schedule APIUpcoming events with dates, time zones, and venues.
- UFC fight card APIEvery bout, corner, and section on a card.
- UFC results APIWinners, methods, rounds, and times.
- UFC fight stats APIBout totals and round-by-round stat rows.
- UFC stats APICareer striking, grappling, and defense per fighter.
- UFC fighter APIProfiles, records, and bios for every fighter.
- UFC rankings APIMeta and media-panel rankings by division.
- DWCS APIDana White's Contender Series cards and results.
- Free UFC APIWhat a free key includes, and its limits.
Build UFCÂ fight apps
Free is for testing. Commercial MMA apps run on Pro. Install MCP, hit /ufc/live on the next card, then upgrade when the app is real.