Skip to content

Data

UFC round-by-round stats

Strikes, takedowns, control time and submission attempts for every round of nearly every UFC card since 2000, checked against fight totals. REST or MCP.

FighterAPI serves round-by-round statistics for UFC fights since 2000: each fighter's significant and total strikes, strikes by target and position, knockdowns, takedowns, control time, reversals and submission attempts, for every round.

Round lines are compiled by UFC Stats (FightMetric). Fight totals come separately, from ESPN. Every fight that matches across the two has its rounds added up and compared with its totals: 99.5% of fighter lines agree exactly, and a fight where they do not says so in the response rather than being served as clean. The table below is read from the database.

Coverage by season

Counted from the database on October 8, 2026: finished fights, by calendar year.

SeasonFightsCoveredRound lines
202647389%1,930
202557187%2,384
202456691%2,646
202357389%2,444
202256391%2,476
202156390%2,534
202050490%2,228
201956590%2,504
201852988%2,280
201749990%2,188
201649398%2,372
201547398%2,210
201450398%2,346
201338699%1,790
201234299%1,566
201130199%1,388
2010253100%1,220
2009215100%960
2008201100%834
2007171100%724
2006158100%640
200580100%308
200439100%146
200341100%176
20025398%228
200140100%184
200043100%182

How to get it

get_fight, 5 credits a call.

curl -X POST https://mcp.fighterapi.com/v1/get_fight \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
  "bout_id": "401612970"
}'

What comes back

bout
bout.bout_id
bout.event_id
bout.event_name
bout.event_date
bout.starts_at
bout.weight_class
bout.card_segment
bout.match_number
bout.title_fight
bout.scheduled_rounds
bout.status
bout.fighter_a
bout.fighter_a_name

Every field and a real response: get_fight docs.

Questions

Which fights have round-by-round stats?

Nearly every numbered and Fight Night card since 2000 (99% of their fights, 77 are still missing), with three exceptions that have totals but no rounds: Dana White's Contender Series and The Ultimate Fighter episodes, which UFC Stats does not publish, and the two Noche UFC cards (September 2023 and 2025), whose fights are missing from the public mirror the rounds come from. Contender Series is most of the gap in recent years in the table.

Do I have to scrape UFC Stats?

No. The rounds are already joined to each fight, keyed to the same fighter ids as everything else, and returned by get_fight.

What if the rounds and the totals disagree?

get_fight adds a rounds_note saying so. About 0.5% of fighter lines disagree; the rest match exactly.

Can I turn the round data off?

It is a separate layer, so a deployment can serve fight totals without rounds. Every tool keeps working either way.

What it will not do

  • No rounds for Contender Series or The Ultimate Fighter episodes (not on UFC Stats), or for the two Noche UFC cards (missing from the mirror).
  • Rounds for a new card follow when UFC Stats publishes them, usually within a few days.
  • Strikes are counted, not located: target is head, body or leg, with no coordinates.

Works with

Start with 500 free credits

No card. REST or MCP.