UFC API

Fighter profiles, rankings, event cards, live fight-night state, bout results, and deep round-by-round statistics for MMA applications and research.

BASEhttps://api.citoapi.com/api/v1
UFC API RootAppend any endpoint path below.

New

Full fighter careers, not just UFC fights

/ufc/fighters/{slug}/career returns every pro MMA fight we have for a fighter: UFC cards plus Bellator, PFL, regional promotions, Contender Series, Road to UFC and TUF. Each fight carries the promotion, opponent, result, method and round, and the record is split into UFC and outside-UFC next to the official record. Arman Tsarukyan, for example: 24-3-0, of which 13-1 came before the UFC.

GET /api/v1/ufc/fighters/arman-tsarukyan/careerCareer docs

New

Road to UFC and the MMA archives

Road to UFC is on the same endpoints as the Contender Series: all 5 seasons (2022 to 2026), 19 cards and 166 fights, every one with official round-by-round stats, on slugs like road-to-ufc-2-7. At Road to UFC 2.7, Rongzhu landed 64 of 121 significant strikes and submitted Shin Haraguchi at 3:06 of round 3. The Bellator archive (2014 to 2024, official round-by-round stats for Bellator 131 to 172) is on /bellator, the PFL (every card since 2018, live fight status, results only) is on /pfl, and PRIDE, Strikeforce, WEC, DREAM, EliteXC and Affliction are on their own routes, with /mma across all of them. Fighters with a UFC record keep their UFC slug, the stat rows use the same format as /ufc, and all of it comes with any UFC plan.

GET /api/v1/ufc/events/road-to-ufc-2-7/statsMMA archive docs

UFC Live — REST, SSE, and WebSockets available now

Poll /ufc/live and /ufc/live/{boutId} every ~1–2s for fight clocks, bout status, and live stats when available. SSE push is at /ufc/live/stream. Room-based WebSockets are live at wss://…/ufc/live/ws.

GET /api/v1/ufc/liveUFC Live docs

What UFC data is available?

Fighter profiles, records, weight classes, rankings, stance, height, reach, and profile stats
Meta UFC Rankings (official algorithmic) and media-panel rankings as separate endpoints
Upcoming, recent, and historical event cards with clean IDs and pagination
Live fight-night clocks, bout state, lag metadata, and SSE push (WebSockets on paid plan soon)
Bout results: winner, method, finish round, finish time, referee, weight class, and scheduled rounds
Fight totals: knockdowns, significant strikes, total strikes, takedowns, submission attempts, reversals, and control time
Round stats: per-fighter rows by round with head/body/leg and distance/clinch/ground splits
Fighter stat charts: striking accuracy, takedown accuracy, defense, win by method, significant strikes by target, and position
Betting odds: moneyline, totals, method of victory, round props, bookmaker filters (including live prediction-market prices), and data-quality metadata

Live fight night

Use /ufc/live and bout detail for clocks, live status, and SSE push. WebSockets on paid plan soon.

Fight cards

Use events, event detail, and event bouts for upcoming and completed card pages.

Fighter profiles

Use fighter profile, stats, fights, and rankings endpoints for profile screens.

Round stats

Use bout stats and round filters for detailed fight analytics and research tools.

Odds screens

Use event and fight odds for market boards, sportsbook comparison, betting research, and model inputs.

No-friction workflow

Rather be told than poll? UFC webhooks send a signed POST at each bell, result and official stat line.

1List events
GET /ufc/events?hasStats=true&page=1&limit=50
2Open the card
GET /ufc/events/{eventIdOrSlug}
3Get all fights
GET /ufc/events/{eventIdOrSlug}/bouts
4Load card odds
GET /ufc/events/{eventIdOrSlug}/odds?bookmaker=all
5Fetch card stats
GET /ufc/events/{eventIdOrSlug}/stats
6Filter one fight
GET /ufc/fights/{boutId}/odds?bookmaker=draftkings

Start here for card pages, fighter profiles, or deep round analytics. All endpoints return clean JSON with stable IDs.

Endpoints

UFC coverage paths for live fight night, fighter profiles, event cards, rankings, bout stats, and betting odds. Full live + WebSocket guide →

GET/api/v1/ufc
UfcCoverage overview, data groups, and sync metadata.

Summary

Coverage overview, data groups, and sync metadata.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/search?q=islam
SearchSearch fighters, events, bouts, and divisions.

Summary

Search fighters, events, bouts, and divisions.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/search?q=islam" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/live
Live OverviewLive card overview: active bouts, clocks, lagSeconds, recommendedPollSeconds.

Summary

Live card overview: active bouts, clocks, lagSeconds, recommendedPollSeconds.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/live" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/live/events
Live EventsSupervisor state for fight-night events tracked by the live worker.

Summary

Supervisor state for fight-night events tracked by the live worker.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/live/events" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/live/{boutId}
Live BoutOne live bout by ufc-{id} or bare numeric id (clock, fighters, stats).

Summary

One live bout by ufc-{id} or bare numeric id (clock, fighters, stats).

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/live/{boutId}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/live/{boutId}/state
Live Bout StateCompact live state for polling clients.

Summary

Compact live state for polling clients.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/live/{boutId}/state" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/live/stream
Live SSE StreamSSE push feed (filter with boutId and/or eventSlug).

Summary

SSE push feed (filter with boutId and/or eventSlug).

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/live/stream" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/live/health
Live HealthLive worker health and heartbeat lag.

Summary

Live worker health and heartbeat lag.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/live/health" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/rankings
RankingsOfficial Meta UFC Rankings grouped by division (algorithmic).

Summary

Official Meta UFC Rankings grouped by division (algorithmic).

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/rankings" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/rankings/meta
MetaExplicit Meta UFC Rankings endpoint (same data as /rankings).

Summary

Explicit Meta UFC Rankings endpoint (same data as /rankings).

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/rankings/meta" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/rankings/meta/{division}
DivisionMeta rankings for one division, such as lightweight.

Summary

Meta rankings for one division, such as lightweight.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/rankings/meta/{division}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/rankings/media
MediaTraditional media-panel rankings grouped by division.

Summary

Traditional media-panel rankings grouped by division.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/rankings/media" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/rankings/media/{division}
DivisionMedia-panel rankings for one division.

Summary

Media-panel rankings for one division.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/rankings/media/{division}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/rankings/{division}
DivisionMeta rankings for one division (alias of /rankings/meta/{division}).

Summary

Meta rankings for one division (alias of /rankings/meta/{division}).

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/rankings/{division}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/fighters?page=1&limit=50
List FightersPaginated fighter directory with profile metadata and stat availability.

Summary

Paginated fighter directory with profile metadata and stat availability.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/fighters?page=1&limit=50" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/fighters/{slug}
SlugFighter profile, bio, record, rankings, and stat summary.

Summary

Fighter profile, bio, record, rankings, and stat summary.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/fighters/{slug}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/fighters/{slug}/stats
Slug StatsStriking, grappling, accuracy, defense, win method, target, and position stats.

Summary

Striking, grappling, accuracy, defense, win method, target, and position stats.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/fighters/{slug}/stats" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/fighters/{slug}/fights
FightsFight history for one fighter.

Summary

Fight history for one fighter.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/fighters/{slug}/fights" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/fighters/{slug}/career
CareerFull pro MMA career: UFC fights plus every other promotion, with UFC and outside-UFC records.

Summary

Full pro MMA career: UFC fights plus every other promotion, with UFC and outside-UFC records.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/fighters/{slug}/career" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/fighters/{slug}/style
StyleStyle profile: striker, clinch, wrestler and submission scores from official round stats (UFC plus MMA archives), with position, target and absorbed numbers and a tentative pressure/outfighter tag.

Summary

Style profile: striker, clinch, wrestler and submission scores from official round stats (UFC plus MMA archives), with position, target and absorbed numbers and a tentative pressure/outfighter tag.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/fighters/{slug}/style" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/athletes
AthletesAlias for /fighters.

Summary

Alias for /fighters.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/athletes" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/athletes/{slug}
SlugAlias for /fighters/{slug}.

Summary

Alias for /fighters/{slug}.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/athletes/{slug}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/events?hasStats=true&page=1&limit=50
List EventsPaginated events, optionally filtered to cards with fight stats.

Summary

Paginated events, optionally filtered to cards with fight stats.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/events?hasStats=true&page=1&limit=50" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/events/recent
Recent MatchesRecently completed UFC events.

Summary

Recently completed UFC events.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/events/recent" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/events/upcoming
Upcoming ScheduleUpcoming UFC fight cards.

Summary

Upcoming UFC fight cards.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/events/upcoming" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/events/{eventIdOrSlug}
EventIdOrSlugEvent detail by clean slug or stable data ID.

Summary

Event detail by clean slug or stable data ID.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/events/{eventIdOrSlug}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/events/{eventIdOrSlug}/bouts
Event BoutsAll bouts on an event card.

Summary

All bouts on an event card.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/events/{eventIdOrSlug}/bouts" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/events/{eventIdOrSlug}/stats?round=1
EventIdOrSlug StatsFight stats for an event, filtered by round when needed.

Summary

Fight stats for an event, filtered by round when needed.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/events/{eventIdOrSlug}/stats?round=1" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/events/{eventIdOrSlug}/odds?bookmaker=all
EventIdOrSlug OddsAll available odds for one UFC card, grouped by fight, market, bookmaker, and outcome.

Summary

All available odds for one UFC card, grouped by fight, market, bookmaker, and outcome.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/events/{eventIdOrSlug}/odds?bookmaker=all" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/fight-cards/{eventIdOrSlug}/odds?bookmaker=draftkings
EventIdOrSlug OddsAlias for event odds using the fight-card route family.

Summary

Alias for event odds using the fight-card route family.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/fight-cards/{eventIdOrSlug}/odds?bookmaker=draftkings" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/bouts?hasStats=true&includeStats=true
Event BoutsPaginated bout list with optional stat rows.

Summary

Paginated bout list with optional stat rows.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/bouts?hasStats=true&includeStats=true" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/bouts/{boutId}
BoutIdOne bout with fighters, result, method, round, time, and event context.

Summary

One bout with fighters, result, method, round, time, and event context.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/bouts/{boutId}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/fights/{boutId}/odds?bookmaker=draftkings
BoutId OddsOdds for one fight, filterable by sportsbook or bookmaker group.

Summary

Odds for one fight, filterable by sportsbook or bookmaker group.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/fights/{boutId}/odds?bookmaker=draftkings" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/fights/{boutId}/odds?bookmaker=prediction_market
BoutId OddsPrediction-market odds for one fight, live during the fight (refreshed every 20 seconds while the card is on).

Summary

Prediction-market odds for one fight, live during the fight (refreshed every 20 seconds while the card is on).

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/fights/{boutId}/odds?bookmaker=prediction_market" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/events/{eventIdOrSlug}/odds?bookmaker=prediction_market
EventIdOrSlug OddsPrediction-market odds for every fight on a card, live during the card.

Summary

Prediction-market odds for every fight on a card, live during the card.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/events/{eventIdOrSlug}/odds?bookmaker=prediction_market" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/bouts/{boutId}/odds?bookmaker=all
BoutId OddsAlias for fight odds using the bout route family.

Summary

Alias for fight odds using the bout route family.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/bouts/{boutId}/odds?bookmaker=all" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/bouts/{boutId}/stats?round=1
BoutId StatsBout-level fighter stat totals or one selected round.

Summary

Bout-level fighter stat totals or one selected round.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/bouts/{boutId}/stats?round=1" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/bouts/{boutId}/rounds?round=2
Bout RoundsRound-by-round fighter stat rows for one bout.

Summary

Round-by-round fighter stat rows for one bout.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/bouts/{boutId}/rounds?round=2" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/ufc/sync/status
StatusLatest UFC sync run status and coverage counters.

Summary

Latest UFC sync run status and coverage counters.

REST
Bash
curl "https://api.citoapi.com/api/v1/ufc/sync/status" \
  -H "x-api-key: YOUR_API_KEY"

Odds endpoints

Event odds

GET /api/v1/ufc/events/{eventIdOrSlug}/odds

Use this for full card odds pages, market boards, sportsbook comparison tables, and model inputs that need every fight on one event.

Fight odds

GET /api/v1/ufc/fights/{boutId}/odds

Use this for one-fight matchup pages, odds widgets, prop cards, and bookmaker-specific views tied to a bout ID.

Prediction-market live odds

GET /api/v1/ufc/fights/{boutId}/odds?bookmaker=prediction_marketGET /api/v1/ufc/events/{eventIdOrSlug}/odds?bookmaker=prediction_market

Prediction-market prices for each fight: moneyline, rounds over/under, goes the distance and method. These markets keep trading while a fight is on, so during a card these refresh every 20 seconds and the fight in progress has isLive: true. Add available=true for only the prices open right now. Field reference

Filters and aliases

  • bookmaker=all returns every available sportsbook.
  • bookmaker=draftkings, fanduel, or betonline narrows the response.
  • bookmaker=prediction_market returns prediction-market prices, refreshed every 20 seconds during a live card (how they work).
  • /ufc/fight-cards/{slug}/odds aliases event odds.
  • /ufc/bouts/{boutId}/odds aliases fight odds.

Market types

moneylinefight_totalmethod_of_victoryexact_roundround_methodround_groupfight_goes_distancefinish_only_moneylinedraw

Round stats example

curl "https://api.citoapi.com/api/v1/ufc/bouts/770c5302e32916ea/stats?round=1" \
  -H "x-api-key: YOUR_API_KEY"

Append ?round=1, ?round=2, or ?round=3 to pull a single round of per-fighter stats instead of the full bout totals.

Start with a free key

Test UFC endpoints with 500 free requests/month. Scale up for production fight cards, profiles, or stat dashboards.

Was this page helpful?