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.
Events & cards
List cards, open one event by its slug (for example ufc-328-chimaev-vs-strickland), and pull every bout on it.
- GET
/api/v1/ufc/events?page=1&limit=50Paginated events with clean slugs and stable IDs.
- GET
/api/v1/ufc/events/upcomingUpcoming fight cards.
- GET
/api/v1/ufc/events/recentRecently completed events.
- GET
/api/v1/ufc/events/{eventIdOrSlug}Event detail by slug or stable data ID.
- GET
/api/v1/ufc/events/{eventIdOrSlug}/boutsAll bouts on one card, including corner fighters.
Bouts & results
Results for any fight: who won, how, when it ended, and the event context around it.
- GET
/api/v1/ufc/bouts?hasStats=truePaginated bout list with optional stat rows.
- GET
/api/v1/ufc/bouts/{boutId}Fighters, result, method, round, time, referee, weight class.
Fight stats
Significant strikes, takedowns, control time, and knockdowns as bout totals or per round, with head/body/leg and position splits.
- GET
/api/v1/ufc/bouts/{boutId}/statsBout-level fighter stat totals, or one round with ?round=1.
- GET
/api/v1/ufc/bouts/{boutId}/roundsRound-by-round fighter stat rows for one bout.
- GET
/api/v1/ufc/events/{eventIdOrSlug}/statsFight stats for a whole card, filterable by round.
Fighters
Build profile pages and matchup tools: record, bio, career stat aggregates, and every past fight.
- GET
/api/v1/ufc/search?q={name}Search fighters, events, bouts, and divisions.
- GET
/api/v1/ufc/fighters?page=1&limit=50Paginated fighter directory.
- GET
/api/v1/ufc/fighters/{slug}Profile, bio, record, rankings, and stat summary.
- GET
/api/v1/ufc/fighters/{slug}/statsStriking, grappling, accuracy, defense, and win-method stats.
- GET
/api/v1/ufc/fighters/{slug}/fightsFight history for one fighter.
Rankings
Algorithmic Meta rankings and media-panel rankings by division, as separate endpoints.
- GET
/api/v1/ufc/rankingsMeta UFC Rankings grouped by division.
- GET
/api/v1/ufc/rankings/meta/{division}Meta rankings for one division, such as lightweight.
- GET
/api/v1/ufc/rankings/mediaMedia-panel rankings grouped by division.
- GET
/api/v1/ufc/rankings/media/{division}Media-panel rankings for one division.
Odds
Card and fight odds grouped by market, bookmaker, and outcome, with sportsbook filters.
- GET
/api/v1/ufc/events/{eventIdOrSlug}/odds?bookmaker=allAll odds for one card, grouped by fight and market.
- GET
/api/v1/ufc/fights/{boutId}/odds?bookmaker=draftkingsOdds for one fight, filterable by sportsbook.
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.