UFC Stats Fights Scraper avatar

UFC Stats Fights Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
UFC Stats Fights Scraper

UFC Stats Fights Scraper

Scrape UFC fights from ufcstats.com. Filter by completed or upcoming cards, or paste a UFC Stats URL.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Marco Rodrigues

Marco Rodrigues

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

🥊 UFC Stats Fights Scraper

Want UFC Stats fights in a spreadsheet? This scraper makes it easy.

Use structured filters — better for AI agents — or paste an input_url or start_urls. When either URL field is set, those pages are scraped and the filters are left unused. If both are set, both lists are scraped.

Each UFC event page lists the fights with weight class, method, round, time, and the strike, takedown, and knockdown counts. Turn on include_fight_details to add the fight page totals for target, position, and control time. This actor returns up to 2000 rows per run.

💡 Perfect for...

  • Matchups: Export bout results with method, round, and time.
  • Media: Track recent cards without paging every event.
  • Data analysts: Join fights to fighters by the public profile URL.
  • 🤖 AI Agents: Power Claude, Cursor, Codex, the Hermes Agent, and OpenClaw workflows with live results.

✨ Why you'll love this scraper

  • 🔗 Input URL or Filters: Paste UFC Stats pages, or type the same filters as the site. URLs win over filters. input_url and start_urls are combined.
  • 🎯 Website-Matched Filters: Completed or upcoming, weight class, and keyword.
  • 🌐 Listing rows: Fighters, result, method, round, time, and bout stats. Fight-page striking totals are optional.

📦 What's inside the data?

id, url, event, date, location, weight_class, fighter_1, fighter_2, result, winner, method, round, time, plus knockdowns, strikes, takedowns, and submission attempts for each fighter.

fight_stats is added only when include_fight_details is on.

🚀 Quick start

Option A: paste an event URL such as http://ufcstats.com/event-details/72c9c2eadfc3277e. Option B: set status to Completed, a weight class such as Welterweight, and max_results.

Input Example (filters):

{
"status": "Completed",
"weight_class": "Welterweight",
"include_fight_details": true,
"max_results": 5
}

Input Example (URL):

{
"input_url": "http://ufcstats.com/event-details/72c9c2eadfc3277e",
"max_results": 100
}

Output Example:

{
"id": "c20c949ceba035f3",
"url": "http://ufcstats.com/fight-details/c20c949ceba035f3",
"event": "UFC Fight Night: Buckley vs. Malott",
"event_url": "http://ufcstats.com/event-details/55e94a9b525dcf45",
"date": "October 17, 2026",
"location": "Edmonton, Alberta, Canada",
"weight_class": "Welterweight",
"result": "win",
"winner": "Mike Malott",
"fighter_1": "Mike Malott",
"fighter_2": "Joaquin Buckley",
"method": "KO/TKO / Knee",
"round": "2",
"time": "2:32",
"fighter_1_kd": "1",
"fighter_2_kd": "0",
"fighter_1_str": "37",
"fighter_2_str": "14",
"fight_stats": {
"totals": {
"fighter_1": {
"kd": 1,
"sig_str": "37 of 50",
"sig_str_pct": 74,
"total_str": "38 of 51",
"td": "0 of 0",
"ctrl": "1:25"
},
"fighter_2": {
"kd": 0,
"sig_str": "14 of 53",
"sig_str_pct": 26,
"total_str": "20 of 59",
"ctrl": "0:08"
}
},
"significant_strikes": {
"fighter_1": {
"head": "15 of 24",
"body": "20 of 24",
"leg": "2 of 2",
"distance": "21 of 34",
"clinch": "15 of 15",
"ground": "1 of 1"
},
"fighter_2": {
"head": "6 of 45",
"body": "4 of 4",
"leg": "4 of 4",
"distance": "10 of 49",
"clinch": "4 of 4",
"ground": "0 of 0"
}
}
}
}

fight_stats is present when include_fight_details is on. totals and significant_strikes each have fighter_1 and fighter_2. The keys follow the fight page: knockdowns, significant strikes, striking accuracy, total strikes, takedowns, takedown accuracy, submission attempts, reversals, control time, and strikes by head, body, leg, distance, clinch, and ground. The example above keeps the fields that show the shape. A scored fight also includes takedown accuracy, reversals, and submission attempts. A bout that has not been scored yet has no fight_stats.

Output fields:

FieldDescription
idFight id.
urlPublic fight page.
eventEvent name.
event_urlPublic event page.
event_idEvent id.
dateEvent date.
locationEvent location.
weight_classWeight class.
resultWin, draw, or no contest when the card shows one.
winnerWinner name when the card shows a win.
fighter_1First fighter.
fighter_1_urlFirst fighter profile.
fighter_2Second fighter.
fighter_2_urlSecond fighter profile.
methodHow the fight ended.
roundRound.
timeTime in the round.
fighter_1_kdKnockdowns for the first fighter.
fighter_2_kdKnockdowns for the second fighter.
fighter_1_strSignificant strikes for the first fighter.
fighter_2_strSignificant strikes for the second fighter.
fighter_1_tdTakedowns for the first fighter.
fighter_2_tdTakedowns for the second fighter.
fighter_1_subSubmission attempts for the first fighter.
fighter_2_subSubmission attempts for the second fighter.
fight_statsFight-page totals and significant strikes when include_fight_details is on. Left out when the switch is off.

📋 Input reference

ParameterTypeRequiredDefaultDescription
input_urlstringNo—UFC Stats event list, event, or fight URL. Combined with start URLs. Filters are left unused when a URL is set.
start_urlsarrayNo—Event list, event, or fight URLs on ufcstats.com. Combined with input URL.
statusstringNoCompletedCompleted or Upcoming.
weight_classstringNo—Weight class, such as Welterweight or Women's Strawweight. Empty keeps every class.
querystringNo—Words matched against the event name and fighter names.
include_fight_detailsbooleanNofalseAdd striking and grappling totals from each fight page.
max_resultsintegerNo50How many rows to return (1–2000).