UFC Stats MMA Historical Fight Statistics Scraper
Pricing
from $1.00 / 1,000 record scrapeds
UFC Stats MMA Historical Fight Statistics Scraper
Scrapes complete historical fight statistics from ufcstats.com. Retrieves per-fighter striking, takedown, and submission data for every recorded UFC bout. Ideal for MMA analytics, model training, and historical performance research.
Pricing
from $1.00 / 1,000 record scrapeds
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
0
Monthly active users
11 days ago
Last modified
Share
Scrapes complete historical fight statistics from ufcstats.com — the official UFC stats source. Retrieves per-fighter striking, takedown, and submission data for every recorded UFC bout.
What it does
This actor crawls ufcstats.com across three levels:
- Events list — Fetches all completed UFC events (775+ events since UFC 1 in 1993)
- Event detail — Extracts event metadata (name, date, location) and enqueues all fight links
- Fight detail — Extracts complete bout statistics for each fight
For each fight, the actor outputs a flat record with:
- Fight outcome: fighters, winner, method, round, time, weight class
- Total statistics: knockdowns, significant strikes (landed/attempted + %), total strikes, takedowns (landed/attempted + %), submission attempts, control time
- Significant strike breakdown by target: head, body, leg
- Significant strike breakdown by position: distance, clinch, ground
Input
| Field | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 10 | Maximum number of fight records to return |
startFromEvent | integer | 0 | Skip this many events from most recent (0 = start from most recent) |
Example input
{"maxItems": 100,"startFromEvent": 0}
To scrape the full historical dataset (7,000+ fights), set maxItems to a high value and allow the run to complete — expect several hours at the default rate limit.
Output
Each record in the dataset represents one UFC bout:
{"fight_url": "http://ufcstats.com/fight-details/7e7d7a488ea21f63","event_name": "UFC 4: Revenge of the Warriors","event_date": "December 16, 1994","event_location": "Tulsa, Oklahoma, USA","fighter_a": "Steve Jennum","fighter_b": "Melton Bowen","winner": "Steve Jennum","result_a": "W","result_b": "L","method": "Submission","round": 1,"time": "4:47","weight_class": "","kd_a": "0","kd_b": "0","sig_str_a": "13 of 40","sig_str_b": "1 of 4","sig_str_pct_a": "32%","sig_str_pct_b": "25%","total_str_a": "29 of 70","total_str_b": "48 of 59","td_a": "2 of 3","td_b": "0 of 0","td_pct_a": "66%","td_pct_b": "---","sub_att_a": 1,"sub_att_b": 0,"ctrl_time_a": "--","ctrl_time_b": "--","head_strikes_a": "13 of 36","head_strikes_b": "1 of 4","body_strikes_a": "0 of 2","body_strikes_b": "0 of 0","leg_strikes_a": "0 of 2","leg_strikes_b": "0 of 0","distance_strikes_a": "0 of 6","distance_strikes_b": "0 of 3","clinch_strikes_a": "0 of 0","clinch_strikes_b": "1 of 1","ground_strikes_a": "13 of 34","ground_strikes_b": "0 of 0"}
Field notes
- Strike fields use the format
"X of Y"(landed of attempted) - Percentage fields are strings like
"32%"or"---"when not applicable ctrl_time_a/ctrl_time_bare"--"for early UFC events that didn't track control timeweight_classmay be empty for historical fights before weight classes were formalizedwinneris set to"Draw"or"NC"(no contest) when applicable
Use cases
- MMA analytics — Build fighter performance models, win probability calculators, or style matchup analysis
- Machine learning — Train classifiers for fight outcome prediction using the full historical dataset
- Research — Track evolution of fighting styles, dominant techniques across weight classes, or historical era comparisons
- Fantasy sports — Build scoring models based on verified official statistics
Notes
- The actor crawls in BFS order: all events are enqueued before fights. For a focused recent-events run, use
startFromEventto skip older events. - The default
maxItems: 10withstartFromEvent: 770(last ~5 events) completes in under 30 seconds. A full historical run (all 7,000+ fights) takes several hours. - Rate is limited to ~5 concurrent requests to respect the source site.