Docs/API Reference/MMA Archive API

MMA Archive API

PRIDE, Strikeforce, WEC, DREAM, EliteXC and Affliction as clean JSON: cards, results, official round-by-round stats in the same shape as /ufc, fighters and head-to-head, and /mma for a fighter's whole career across promotions. With Bellator, that is 235 cards and 2,053 bouts from 1997 to 2017, 1,714 of them with official round-by-round stats, and 1,492 fighters, of whom 471 keep their UFC slug. Bellator has its own page.

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

One route shape for every promotion

Each promotion has its own prefix (/pride, /strikeforce, /wec, /dream, /elitexc, /affliction) with the same routes and payloads as /bellator, and the stat rows use /ufc's field names and formats: significantStrikes, totalStrikes, takedowns, head, body, leg, distance, clinch and ground as "13 of 18", controlTime as "1:42", plus knockdowns, submissionAttempts and reversals. /mma answers across all of them.

GET /api/v1/pride/events/pride-34

Promotions

PRIDE

/pride

PRIDE Fighting Championships, 1997 to 2007: 66 cards (1997-10-11 to 2007-04-08), 567 bouts, all with official round-by-round stats, 287 fighters (121 with a UFC record). PRIDE rules: a 10-minute first round, then 5-minute rounds, so round 1 rows cover twice the time of later rounds. Early PRIDE fights can run past five rounds (pride-1829 has six), and round stats cover every round.

Example event
pride-34
Example fighter
fedor-emelianenko (Fedor Emelianenko)
GET /api/v1/pride/events/pride-34GET /api/v1/pride/fighters/fedor-emelianenko

Strikeforce

/strikeforce

2006 to 2013: 63 cards (2006-03-10 to 2013-01-13), 605 bouts, 344 with official round-by-round stats. Stats coverage is lower here: many Strikeforce Challengers prelims have results only, so 344 of the 605 bouts carry official round-by-round stats.

Example event
strikeforce-barnett-vs-cormier
Example fighter
daniel-cormier (Daniel Cormier)
GET /api/v1/strikeforce/events/strikeforce-barnett-vs-cormierGET /api/v1/strikeforce/fighters/daniel-cormier

WEC

/wec

World Extreme Cagefighting, 2001 to 2010: 50 cards (2001-06-30 to 2010-12-16), 362 bouts, 348 with official round-by-round stats. WEC merged into the UFC, so many of its fighters continue on /ufc under the same slug.

Example event
wec-48
Example fighter
jose-aldo (Jose Aldo)
GET /api/v1/wec/events/wec-48GET /api/v1/wec/fighters/jose-aldo

DREAM

/dream

2008 to 2012: 24 cards (2008-03-15 to 2012-12-31), 224 bouts, 223 with official round-by-round stats.

Example event
dream-1
Example fighter
shinya-aoki (Shinya Aoki)
GET /api/v1/dream/events/dream-1GET /api/v1/dream/fighters/shinya-aoki

EliteXC

/elitexc

2007 to 2008: 10 cards (2007-02-10 to 2008-10-04), 42 bouts, all with official round-by-round stats.

Example event
elitexc-primetime
Example fighter
kevin-ferguson (Kevin Ferguson, "Kimbo Slice")
GET /api/v1/elitexc/events/elitexc-primetimeGET /api/v1/elitexc/fighters/kevin-ferguson

Affliction

/affliction

Affliction Entertainment, 2008 to 2009: 2 cards (2008-07-19 to 2009-01-24), 21 bouts, 17 with official round-by-round stats.

Example event
affliction-banned
Example fighter
fedor-emelianenko (Fedor Emelianenko)
GET /api/v1/affliction/events/affliction-bannedGET /api/v1/affliction/fighters/fedor-emelianenko

Bellator

/bellator

Bellator MMA, 2014 to 2017: Bellator 131 to Bellator 172, on the same routes. It is part of /mma too.

Bellator API docs

Routes for each promotion

Replace {promotion} with pride, strikeforce, wec, dream, elitexc, affliction or bellator.

GET/api/v1/{promotion}
PromotionOverview: coverage window, counts (events, bouts, bouts with official stats, fighters, fighters with a UFC record) and the endpoint list.

Summary

Overview: coverage window, counts (events, bouts, bouts with official stats, fighters, fighters with a UFC record) and the endpoint list.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/search?q={name}
SearchFighters and events by name or nickname. Fighters carry ufcFighterSlug when they also have a UFC record.

Summary

Fighters and events by name or nickname. Fighters carry ufcFighterSlug when they also have a UFC record.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/search?q={name}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/events
List EventsEvery card on file, newest first. Filter by from, to, q or hasStats.

Summary

Every card on file, newest first. Filter by from, to, q or hasStats.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/events" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/events/{slug}
SlugOne event and its full card, main event first, with each fighter's whole-fight totals.

Summary

One event and its full card, main event first, with each fighter's whole-fight totals.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/events/{slug}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/events/{slug}/bouts
Event BoutsEvery bout on the card, main event first, with winner, method, round and time.

Summary

Every bout on the card, main event first, with winner, method, round and time.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/events/{slug}/bouts" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/events/{slug}/stats
Slug StatsSame shape as /ufc/events/{slug}/stats: bouts, boutStats and roundStats for the card. Pro for the archive.

Summary

Same shape as /ufc/events/{slug}/stats: bouts, boutStats and roundStats for the card. Pro for the archive.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/events/{slug}/stats" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/bouts
Event BoutsQuery bouts by fighter, opponent, event, weight class, method, title fight, date or hasStats.

Summary

Query bouts by fighter, opponent, event, weight class, method, title fight, date or hasStats.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/bouts" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/bouts/{boutId}
BoutIdResult, method, round and time, finish position and submission, referee, judges' scores, both corners with totals, and every round.

Summary

Result, method, round and time, finish position and submission, referee, judges' scores, both corners with totals, and every round.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/bouts/{boutId}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/bouts/{boutId}/rounds
Bout RoundsOfficial round-by-round stats per corner in the /ufc format. Pro for the archive.

Summary

Official round-by-round stats per corner in the /ufc format. Pro for the archive.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/bouts/{boutId}/rounds" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/bouts/{boutId}/stats
BoutId StatsWhole-fight totals (boutStats) and every round (roundStats). Paid plans; archive stats on Pro.

Summary

Whole-fight totals (boutStats) and every round (roundStats). Paid plans; archive stats on Pro.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/bouts/{boutId}/stats" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/fighters
List FightersEveryone who fought on a card on file. ufc=true keeps fighters who also have a UFC record.

Summary

Everyone who fought on a card on file. ufc=true keeps fighters who also have a UFC record.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/fighters" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/fighters/{slug}
SlugBio, record in that promotion, the UFC pointer, other promotions and the last five fights.

Summary

Bio, record in that promotion, the UFC pointer, other promotions and the last five fights.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/fighters/{slug}" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/fighters/{slug}/fights
FightsEvery bout in that promotion from the fighter's side, newest first.

Summary

Every bout in that promotion from the fighter's side, newest first.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/fighters/{slug}/fights" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/fighters/{slug}/stats
Slug StatsCareer totals in that promotion: landed, attempted and accuracy, plus strikes and takedowns absorbed. Paid plans.

Summary

Career totals in that promotion: landed, attempted and accuracy, plus strikes and takedowns absorbed. Paid plans.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/fighters/{slug}/stats" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/{promotion}/h2h?fighter1={slug}&fighter2={slug}
H2hHead-to-head record and every meeting between two fighters.

Summary

Head-to-head record and every meeting between two fighters.

REST
Bash
curl "https://api.citoapi.com/api/v1/{promotion}/h2h?fighter1={slug}&fighter2={slug}" \
  -H "x-api-key: YOUR_API_KEY"

Whole career across promotions (/mma)

/mma answers across every archive promotion, Bellator included, with the same routes. Its overview lists each promotion with counts and coverage. /mma/bouts?promotion= narrows any query to one promotion, and /mma/fighters/{slug} adds recordByPromotion: a fighter's whole non-UFC career in one call, next to the UFC pointer when they have a UFC record.

GET/api/v1/mma
MmaEvery promotion with its counts and coverage window, plus totals.

Summary

Every promotion with its counts and coverage window, plus totals.

REST
Bash
curl "https://api.citoapi.com/api/v1/mma" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/mma/search?q=fedor
SearchOne search across every promotion's fighters and events.

Summary

One search across every promotion's fighters and events.

REST
Bash
curl "https://api.citoapi.com/api/v1/mma/search?q=fedor" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/mma/events
List EventsEvery archive card from every promotion, newest first.

Summary

Every archive card from every promotion, newest first.

REST
Bash
curl "https://api.citoapi.com/api/v1/mma/events" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/mma/bouts?promotion=pride
Event BoutsBouts across the archive, filtered to one promotion with promotion= or to one fighter with fighter=.

Summary

Bouts across the archive, filtered to one promotion with promotion= or to one fighter with fighter=.

REST
Bash
curl "https://api.citoapi.com/api/v1/mma/bouts?promotion=pride" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/mma/fighters/daniel-cormier
Daniel CormierA fighter's whole non-UFC career in one call: recordByPromotion, the UFC pointer and recent fights.

Summary

A fighter's whole non-UFC career in one call: recordByPromotion, the UFC pointer and recent fights.

REST
Bash
curl "https://api.citoapi.com/api/v1/mma/fighters/daniel-cormier" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/mma/fighters/{slug}/fights
FightsEvery archive bout a fighter fought, across promotions, newest first.

Summary

Every archive bout a fighter fought, across promotions, newest first.

REST
Bash
curl "https://api.citoapi.com/api/v1/mma/fighters/{slug}/fights" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/mma/fighters/{slug}/stats
Slug StatsCareer totals over all of a fighter's archive bouts. Paid plans.

Summary

Career totals over all of a fighter's archive bouts. Paid plans.

REST
Bash
curl "https://api.citoapi.com/api/v1/mma/fighters/{slug}/stats" \
  -H "x-api-key: YOUR_API_KEY"
GET/api/v1/mma/h2h?fighter1={slug}&fighter2={slug}
H2hEvery meeting between two fighters in any archive promotion.

Summary

Every meeting between two fighters in any archive promotion.

REST
Bash
curl "https://api.citoapi.com/api/v1/mma/h2h?fighter1={slug}&fighter2={slug}" \
  -H "x-api-key: YOUR_API_KEY"
GET /api/v1/mma/fighters/fedor-emelianenko

{
  "slug": "fedor-emelianenko",
  "name": "Fedor Emelianenko",
  "nickname": "The Last Emperor",
  "record": { "wins": 18, "losses": 3, "draws": 0, "noContests": 1, "text": "18-3-0 (1 NC)" },
  "recordByPromotion": {
    "affliction":  { "wins": 2,  "losses": 0, "text": "2-0-0" },
    "dream":       { "wins": 1,  "losses": 0, "text": "1-0-0" },
    "pride":       { "wins": 14, "losses": 0, "noContests": 1, "text": "14-0-0 (1 NC)" },
    "strikeforce": { "wins": 1,  "losses": 3, "text": "1-3-0" }
  },
  "ufc": null,
  "otherPromotions": ["affliction", "dream", "pride", "strikeforce"]
}

Round example: PRIDE

Kazushi Sakuraba vs Royce Gracie (pride-1829) went six rounds, and every round has its own row per corner in the /ufc format. Round 6, Sakuraba's corner:

GET /api/v1/pride/bouts/pride-1829/rounds   (one of its 12 rows)

{
  "boutId": "pride-1829",
  "corner": "red",
  "fighterSlug": "kazushi-sakuraba",
  "round": 6,
  "knockdowns": 1,
  "significantStrikes": "20 of 61",
  "totalStrikes": "21 of 64",
  "takedowns": "1 of 1",
  "head": "7 of 43",
  "body": "0 of 1",
  "leg": "13 of 17",
  "distance": "14 of 41",
  "clinch": "0 of 0",
  "ground": "6 of 20",
  "controlTime": null
}

Same fighter ID as UFC

A fighter with a UFC record has the same slug on every archive route as on /ufc/fighters/{slug}: daniel-cormier on /strikeforce and /ufc, jose-aldo on /wec and /ufc. Every fighter object carries ufcFighterSlug (null without a UFC record), so joining PRIDE, Strikeforce, WEC or any other archive to UFC data never needs a name match. For a career that includes UFC fights, use the UFC career endpoint.

Good to know

  • These are closed archives: no live data, rankings or upcoming cards. /{promotion}/events/upcoming always returns an empty list with a note in meta.
  • Not every bout carries stats. Strikeforce has the lowest coverage (344 of 605 bouts) because many Challengers prelims have results only, and some PRIDE cards hold only their televised bouts. Check hasStats on events and bouts, or filter with hasStats=true.
  • PRIDE fights ran a 10-minute first round, then 5-minute rounds, and early PRIDE fights can run past five rounds (pride-1829 has six). Round stats cover every round; normalise by round length before comparing PRIDE rounds with other promotions.
  • A fighter's record on a promotion route counts that promotion's fights on file only, as recordNote says. /mma/fighters/{slug} gives the record per promotion.
  • Like /ufc, in-depth data follows your plan's history window. Older records are left out of lists and round stats are refused outside it, with the reason in meta.historyWindow. The dashboard sandbox opens any archive record before you upgrade.
  • OpenAPI spec: api.citoapi.com/api/v1/openapi.json

Included with UFC

Every MMA archive comes with UFC on every plan, no extra game to add. Fighters, profiles, fight histories and bout results work on a free key. Career and bout stats endpoints need Starter ($15/month) or above. Cards, bout lists and stats follow the history window (Free 30 days, Starter 90 days), and every archive card is from 1997 to 2017, so the full archive with its official round-by-round stats is on Pro ($59/month).