UFC Stats Fights Scraper
Pricing
from $3.00 / 1,000 results
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
Maintained by CommunityActor 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_urlandstart_urlsare 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:
| Field | Description |
|---|---|
id | Fight id. |
url | Public fight page. |
event | Event name. |
event_url | Public event page. |
event_id | Event id. |
date | Event date. |
location | Event location. |
weight_class | Weight class. |
result | Win, draw, or no contest when the card shows one. |
winner | Winner name when the card shows a win. |
fighter_1 | First fighter. |
fighter_1_url | First fighter profile. |
fighter_2 | Second fighter. |
fighter_2_url | Second fighter profile. |
method | How the fight ended. |
round | Round. |
time | Time in the round. |
fighter_1_kd | Knockdowns for the first fighter. |
fighter_2_kd | Knockdowns for the second fighter. |
fighter_1_str | Significant strikes for the first fighter. |
fighter_2_str | Significant strikes for the second fighter. |
fighter_1_td | Takedowns for the first fighter. |
fighter_2_td | Takedowns for the second fighter. |
fighter_1_sub | Submission attempts for the first fighter. |
fighter_2_sub | Submission attempts for the second fighter. |
fight_stats | Fight-page totals and significant strikes when include_fight_details is on. Left out when the switch is off. |
📋 Input reference
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
input_url | string | No | — | UFC Stats event list, event, or fight URL. Combined with start URLs. Filters are left unused when a URL is set. |
start_urls | array | No | — | Event list, event, or fight URLs on ufcstats.com. Combined with input URL. |
status | string | No | Completed | Completed or Upcoming. |
weight_class | string | No | — | Weight class, such as Welterweight or Women's Strawweight. Empty keeps every class. |
query | string | No | — | Words matched against the event name and fighter names. |
include_fight_details | boolean | No | false | Add striking and grappling totals from each fight page. |
max_results | integer | No | 50 | How many rows to return (1–2000). |