UFC fight stats API

UFC fight stats API for bout results and round-by-round analytics.

Fetch completed fight results, fighter totals, and individual round rows so your app can power fight recaps, research screens, and matchup pages.

Users searching this term usually need bout IDs, event stats, and exact round filters.

773

event records

8.6k+

fight rows

40k+

round stat rows

500

free calls/month

Live API shape

UFC fight stat workflow

curl "https://api.citoapi.com/api/v1/ufc/events?hasStats=true&page=1&limit=50" \
  -H "x-api-key: YOUR_API_KEY"

{
  "success": true,
  "pagination": { "page": 1, "limit": 50, "hasMore": true },
  "data": [
    {
      "slug": "ufc-328-chimaev-vs-strickland",
      "dataId": "9eedac48b497de5a",
      "hasStats": true,
      "boutCount": 13
    }
  ]
}

Round filter

GET /api/v1/ufc/bouts/770c5302e32916ea/stats?round=1

Fighter profile data

Fighter profile data that is ready for real product screens.

Use fighter images, record data, accuracy stats, win method splits, and strike target fields to build UFC profile pages, dashboards, and matchup tools without cleaning the data yourself.

Welterweight28-1-0
Live profile shape

featured fighter

Islam Makhachev

GETendpoint
/api/v1/ufc/fighters/islam-makhachev/stats

2.45

Sig. str. landed/min

3.10

Takedowns/15 min

0.30

Knockdown avg

46%

Wins by submission

sample response fields

{
  "fighter": "Islam Makhachev",
  "record": "28-1-0",
  "sigStrikesByTarget": {
    "head": { "count": 344, "percent": 0.71 },
    "body": { "count": 114, "percent": 0.24 },
    "leg": { "count": 27, "percent": 0.06 }
  }
}

fighter stat graphic

Sig. Str. By Target

REST JSON
Head
34471%
Body
11424%
Leg
276%
58%

Striking Accuracy

Sig. Strikes Landed

485

Sig. Strikes Attempted

830

56%

Takedown Accuracy

Takedowns Landed

13

Takedowns Attempted

73

Fight recap pages

Render card-by-card results with winners, finish methods, and stat leaders.

Round scoring tools

Pull round-specific strike and grappling rows for detailed breakdowns.

Historical databases

Page through events and bouts to seed your own MMA analytics product.

ufc fight stats api

Data developers can actually ship with

Fight winner, method, finish round, finish time, referee, and weight class
Per-fighter totals for the full fight or selected round
Round rows for round 1, round 2, round 3, championship rounds, and decision fights
Stable bout IDs so your database can store and re-fetch stat rows
Event-level stats endpoint for loading a full fight card in one workflow
GET/api/v1/ufc/bouts?hasStats=true&includeStats=true

Find completed fights that already have stats.

GET/api/v1/ufc/bouts/{boutId}

Get bout result, fighters, method, round, time, and event context.

GET/api/v1/ufc/bouts/{boutId}/stats?round=1

Get one fight's stats, filtered to a specific round.

GET/api/v1/ufc/events/{eventIdOrSlug}/stats?round=3

Get all event fight stats for one round.

Built for product screens

From event list to fight stats without guessing endpoints.

Start with events, open the card, fetch bouts, then request event-level or bout-level stats. Every page in the UFC cluster links back to the same no-friction docs and signup flow.

FAQ

How do I get UFC stats for one fight?

Call /api/v1/ufc/bouts/{boutId}/stats. Add ?round=1 when you only want one round.

How do I find bout IDs?

Start with /api/v1/ufc/events?hasStats=true or /api/v1/ufc/bouts?hasStats=true, then use the returned bout ID.

Can I load all stats for a card?

Yes. Use /api/v1/ufc/events/{eventIdOrSlug}/stats to fetch stats for every fight on an event card.

Start building with UFC data today

Create a free key, test the UFC endpoints, and upgrade only when your app, dashboard, or data product needs more volume.

Get Free API Key