MMA stats API

MMA stats API for fighter, bout, and round-level data.

Pull fight stats for MMA dashboards and research tools: strikes, takedowns, control time, target splits, position splits, and round rows.

Developers searching for UFC stats want concrete stat fields, not just event schedules.

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

MMA stat dashboards

Build sortable tables for fighter totals, round stats, and matchup comparisons.

Betting and research tools

Seed models with historical fight outcomes and detailed performance rows.

Content automation

Generate recap cards using method, round, time, knockdowns, and strike splits.

mma stats api

Data developers can actually ship with

Striking accuracy and takedown accuracy
Knockdowns, significant strikes, total strikes, takedowns, and submissions
Control time, reversals, head/body/leg splits, and distance/clinch/ground splits
Win by method, significant strikes by target, and significant strikes by position
Round filters for apps that need one round at a time
GET/api/v1/ufc/fighters/{slug}/stats

Fighter profile stat charts and career aggregates.

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

Bout-level fighter totals with optional round filtering.

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

Round-by-round fighter stat rows.

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

All fight stats for one UFC event card.

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.

Cito MCP

Give Claude, Cursor, and Grok the UFC card.

One command writes the MCP config. Agents load llms.txt and call live / card tools instead of inventing fight IDs. Your key stays on the machine.

npx cito-mcp install --key cito_your_key_here

# Detects Claude, Cursor, Windsurf, Codex, Grok.
# Then: "What's live on UFC tonight?"

FAQ

Does the API include round-by-round UFC stats?

Yes. Use /api/v1/ufc/bouts/{boutId}/rounds or add ?round=1 to bout/event stats endpoints.

Does Cito API include significant strike splits?

Yes, the UFC stats endpoints include significant strike target and position splits where available.

Can I filter stats by round?

Yes. Bout and event stat endpoints support a round query parameter for round-specific rows.

Ship the UFC product. Pay for the live feed.

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.