UFC Fighters
Profiles, records, full pro careers (UFC and other promotions), career stats, style profiles, and fight history
New
Full pro career (UFC and other promotions)
Every pro MMA fight we have for the fighter, in the UFC and outside it (regional promotions, Bellator, PFL, Contender Series, Road to UFC, TUF house fights), newest first, with the record split into UFC and outside-UFC. UFC fights carry boutId for /bouts/{id}. record.official is the UFC's published W-L-D; record.listed is counted from the fights in the list, and listedMatchesOfficial says whether they agree. TUF house fights are exhibitions (isExhibition) and count on the record only where the official record counts them. outsideUfcHistory is false when only UFC cards are on file for the fighter. RAF wrestling is a different sport and is served on /raf only.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| promotion | string | Only these promotion slugs, comma-separated (e.g. bellator,pfl). Records are not filtered. |
| excludeUfc | boolean | true drops UFC-card fights from the list (Contender Series and Road to UFC stay) |
| page | number | Page number (default 1) |
| limit | number | Page size (default 100, max 500) |
Example
curl "https://api.citoapi.com/api/v1/ufc/fighters/arman-tsarukyan/career?excludeUfc=true" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"fighter": { "slug": "arman-tsarukyan", "name": "Arman Tsarukyan" },
"record": {
"official": { "wins": 24, "losses": 3, "draws": 0, "text": "24-3-0" },
"listed": { "wins": 24, "losses": 3, "draws": 0, "noContests": 0, "text": "24-3-0" },
"ufc": { "wins": 11, "losses": 2, "draws": 0, "noContests": 0, "text": "11-2-0" },
"outsideUfc": { "wins": 13, "losses": 1, "draws": 0, "noContests": 0, "text": "13-1-0" },
"listedMatchesOfficial": true
},
"outsideUfcHistory": true,
"promotions": [
{ "slug": "ufc", "name": "Ultimate Fighting Championship", "fights": 13, "record": { "text": "11-2-0" } },
{ "slug": "mfp", "name": "MFP", "fights": 8, "record": { "text": "7-1-0" } }
],
"fights": [
{
"date": "2018-08-22",
"promotion": { "slug": "league-s-70", "name": "League S-70" },
"onUfcRecord": false,
"countsOnProRecord": true,
"isExhibition": false,
"event": { "name": "League S-70: Plotforma S-70: 2018", "slug": null },
"boutId": null,
"opponent": { "name": "Felipe Olivieri", "slug": null },
"result": "W",
"method": "KO/TKO",
"methodGroup": "KO/TKO",
"round": 3,
"time": "1:25",
"titleFight": false,
"weightClass": null,
"isUpcoming": false,
"dataSource": "career_history"
}
]
},
"meta": { "count": 14, "total": 14, "page": 1, "limit": 100, "hasMore": false }
}New
Fighter style profile
Four style labels built from official round stats across the fighter's bouts in the UFC (with the Contender Series and Road to UFC) and the Bellator, PRIDE, Strikeforce, WEC, DREAM, EliteXC and Affliction archives: striker (split into volume and accuracy by subtype), clinch fighter (how much of the work comes in the clinch), wrestler (takedowns and control time) and submission grappler (submission attempts and ground control). Each label's score is 0-1, a blend of percentiles against every fighter with 3+ bouts with stats; primary marks the top label when it scores 0.5 or more. The numbers behind it: where they land (distance, clinch, ground), what they target (head, body, legs) and what they absorb (opponents' landed strikes and takedowns against them, per minute and by target and position). sample.lowConfidence is true under 3 bouts with stats, and sample.byPromotion counts the bouts per promotion. tentative.pressureVsOutfighter is inferred from pace and exchange balance (output per minute vs absorbed per minute, attempts) and is always marked tentative: true with its basis; treat it as a hint, not a fact. Control share is null where control time was not logged for at least half the fight time (PRIDE, DREAM and Bellator never log it). OKTAGON is not included (landed-only stats). Free and Starter plans get a profile from the bouts inside their history window (30 / 90 days, see meta.historyWindow); Pro gets the whole career. Refreshed every 6 hours.
Example
curl "https://api.citoapi.com/api/v1/ufc/fighters/max-holloway/style" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"fighter": { "slug": "max-holloway", "name": "Max Holloway" },
"sample": {
"bouts": 33, "rounds": 112, "minutes": 533.9, "byPromotion": { "ufc": 33 },
"firstBoutOn": "2012-02-03", "lastBoutOn": "2026-07-12", "lowConfidence": false, "controlTimeLoggedShare": 1
},
"normaliser": { "population": "Fighters with 3+ bouts with official round stats (UFC and the MMA archives)", "fighters": 2232 },
"primaryStyle": "striker",
"labels": [
{ "style": "striker", "score": 0.93, "level": "strong", "primary": true, "basis": "Distance strikes landed per minute and share of significant strikes landed at distance (percentiles)." },
{ "style": "clinch", "score": 0.4, "level": "low", "primary": false, "basis": "..." },
{ "style": "submission", "score": 0.31, "level": "low", "primary": false, "basis": "..." },
{ "style": "wrestler", "score": 0.12, "level": "low", "primary": false, "basis": "..." }
],
"striker": {
"subtype": "volume-and-precision",
"volume": { "sigAttemptedPerMin": 14.36, "sigLandedPerMin": 6.92, "distanceAttemptedPerMin": 13.24, "distanceLandedPerMin": 6.09 },
"accuracy": { "significant": 0.482, "distance": 0.46 },
"knockdowns": 12, "knockdownsPer15": 0.34
},
"position": {
"distance": { "landed": 3252, "attempted": 7071, "share": 0.881 },
"clinch": { "landed": 246, "attempted": 324, "share": 0.067 },
"ground": { "landed": 195, "attempted": 271, "share": 0.053 }
},
"target": {
"head": { "landed": 2389, "attempted": 5935, "share": 0.647, "accuracy": 0.403 },
"body": { "landed": 899, "attempted": 1207, "share": 0.243, "accuracy": 0.745 },
"leg": { "landed": 405, "attempted": 524, "share": 0.11, "accuracy": 0.773 }
},
"grappling": {
"takedowns": { "landed": 8, "attempted": 15, "accuracy": 0.533, "landedPer15": 0.22 },
"control": { "share": 0.056, "seconds": 1785 },
"submissionAttempts": 10, "submissionAttemptsPer15": 0.28
},
"absorbed": {
"sigLandedPerMin": 4.6, "sigAttemptedPerMin": 11.14, "strikingDefence": 0.587, "knockdowns": 2,
"target": { "head": 0.635, "body": 0.141, "leg": 0.225 },
"position": { "distance": 0.921, "clinch": 0.051, "ground": 0.027 },
"takedowns": { "landed": 31, "attempted": 167, "defence": 0.814 }
},
"tentative": {
"pressureVsOutfighter": {
"tag": "pressure", "tentative": true, "confidence": "inferred",
"basis": "Inferred, not an official classification: pace and exchange balance from significant strike attempts. ..."
}
}
},
"meta": { "computedAt": "2026-11-02T14:17:52.000Z", "refreshHours": 6 }
}List fighters
/athletes is an alias of /fighters.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| page | number | Page number (default 1) |
| limit | number | Page size (default 50) |
Example
curl "https://api.citoapi.com/api/v1/ufc/fighters?page=1&limit=50" \
-H "x-api-key: YOUR_API_KEY"Search
Resolve a fighter slug (also returns events and bouts).
Query parameters
| Parameter | Type | Description |
|---|---|---|
| q* | string | Search text |
Example
curl "https://api.citoapi.com/api/v1/ufc/search?q=islam" \
-H "x-api-key: YOUR_API_KEY"Fighter profile
Bio, record, weight class, stance, height/reach, rankings, image.
Example
curl "https://api.citoapi.com/api/v1/ufc/fighters/islam-makhachev" \
-H "x-api-key: YOUR_API_KEY"Response
{
"success": true,
"data": {
"slug": "islam-makhachev",
"name": "Islam Makhachev",
"record": { "wins": 27, "losses": 1, "draws": 0 },
"weightClass": "Lightweight",
"stance": "Orthodox",
"imageUrl": "https://..."
}
}Career stats
Striking and grappling accuracy, defense, win methods, strike targets.
Example
curl "https://api.citoapi.com/api/v1/ufc/fighters/islam-makhachev/stats" \
-H "x-api-key: YOUR_API_KEY"Fight history
Past bouts with opponents, events, and results.
Example
curl "https://api.citoapi.com/api/v1/ufc/fighters/islam-makhachev/fights" \
-H "x-api-key: YOUR_API_KEY"Ship fighter profiles
Cito is how you build UFC fighter profiles, fight cards, rankings pages, research tools, and MMA dashboards. Try these requests in the sandbox, then drop them into your app.
curl "https://api.citoapi.com/api/v1/ufc/fighters/arman-tsarukyan/career" \
-H "x-api-key: YOUR_API_KEY"
curl "https://api.citoapi.com/api/v1/ufc/search?q=islam" \
-H "x-api-key: YOUR_API_KEY"
curl "https://api.citoapi.com/api/v1/ufc/fighters/islam-makhachev" \
-H "x-api-key: YOUR_API_KEY"
curl "https://api.citoapi.com/api/v1/ufc/fighters/islam-makhachev/stats" \
-H "x-api-key: YOUR_API_KEY"
curl "https://api.citoapi.com/api/v1/ufc/fighters/islam-makhachev/fights" \
-H "x-api-key: YOUR_API_KEY"