UFCStats Fighter Profile & Fight History Scraper
Pricing
from $18.75 / 1,000 results
UFCStats Fighter Profile & Fight History Scraper
Extract UFC/MMA fighter profiles, career records, striking and grappling stats, and full fight history from UFCStats.com. Filter by stance, wins, losses or search by name.
Pricing
from $18.75 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

π₯ UFCStats Fighter Profiles & Fight History Scraper
π Pull UFC fighter profiles, career records, striking and grappling statistics, and full per-fight history in seconds. Filter by stance, minimum wins, search by name, or target specific fighter URLs. No API key, no registration, no manual CSV wrangling.
π Last updated: 2026-05-15 Β· π 29 fields per record Β· 4,400+ fighters indexed Β· Career striking & grappling metrics Β· Full per-fight history with strike, takedown, and submission breakdowns
UFCStats.com is the official statistical archive maintained by the Ultimate Fighting Championship. It is the canonical source for every UFC, Strikeforce, WEC, Pride, and PFL veteran ever signed to the promotion, with structured records for career striking accuracy, takedown defense, submission attempts, and a fight-by-fight breakdown of every bout. The data is public, but the site is built around an alphabetical jump-table and per-fighter HTML pages with no API, no JSON endpoints, and no bulk export. Stitching together a usable dataset means walking 26 letter pages, opening each fighter, parsing free-form rows, and reconciling missing values.
This Actor scrapes the same fighter pages a regular UFCStats visitor sees and returns each record as flat, well-typed JSON ready to drop into a sports model, a betting dashboard, or a fantasy MMA app. Each record covers the fighter name, nickname, official record (W-L-D and No Contests), physical attributes (height, weight, reach, stance, date of birth), the full eight career metrics UFCStats publishes (significant strikes landed and absorbed per minute, striking accuracy and defense, takedown average, takedown accuracy and defense, submission average), and the complete fight history with opponent, event, date, method, round, time, knockdowns, significant strikes, takedowns, and submissions per round. Target a single fighter by URL, run a name search like "mcgregor" or "silva", restrict to one letter of the alphabet, or pull the entire roster.
| Target audience | Primary use cases |
|---|---|
| Sports betting analysts and quants | MMA betting odds modeling and edge detection |
| Fantasy MMA platform developers | Fighter rating engines and lineup optimization |
| MMA media and content creators | Pre-fight breakdowns, weekly stat columns, podcast research |
| Fight prediction model builders | Feature engineering on striking and grappling stats |
| Coaches and gym analysts | Opponent scouting reports and game-plan prep |
| Researchers and data journalists | Empirical studies of striking trends and weight-class evolution |
π What the UFCStats Scraper does
- π Name search. Free-text query across first name, last name, and nickname using the live UFCStats search endpoint.
- π URL targeting. Drop in any list of fighter-details URLs and pull only those profiles.
- π€ Alphabet walk. Restrict to one or more starting letters of the last name, or leave empty to walk A through Z.
- π₯ Stance filter. Keep only Orthodox, Southpaw, Switch, Open Stance, or Sideways fighters.
- π Record thresholds. Set minimum career wins or minimum career losses to focus on tenured roster members.
- π Optional fight history. Toggle the per-fight history table on or off to keep records compact for bulk pulls.
Every record includes the UFCStats fighter ID, canonical profile URL, full name split into first and last, nickname, official W-L-D record with No Contests, height in feet and inches plus a parsed inch value, weight in pounds, reach in inches, stance, date of birth in ISO format and a computed age, the eight career striking and grappling metrics, the total fight count, and a nested array of every recorded fight with opponent, event, date, method, round, time, and per-round stat splits.
π‘ Why it matters: UFCStats is the most authoritative MMA dataset and the only public source for these per-minute and per-15-minute career metrics. Pulling it directly gives you fresher numbers than any aggregator and no per-seat license.
π¬ Full Demo
π§ Coming soon: a 3-minute walkthrough of the input form, the dataset view, and a worked example of building a fighter rating spreadsheet.
βοΈ Input
| Field | Type | Required | Description |
|---|---|---|---|
maxItems | integer | No | Maximum fighters to return. Free plan capped at 10 (preview). Paid plans up to 1,000,000. |
startUrls | array of URL | No | Specific fighter profile URLs to scrape (e.g. https://ufcstats.com/fighter-details/f4c49976c75c5ab2). |
searchQuery | string | No | Free-text query against first name, last name, and nickname. |
letters | array of enum | No | Restrict the alphabet walk to these starting letters of the fighter last name. Leave empty to walk A-Z. |
stance | enum | No | Filter by stance: Orthodox, Southpaw, Switch, Open Stance, Sideways. |
minWins | integer | No | Only include fighters with at least this many career wins. |
minLosses | integer | No | Only include fighters with at least this many career losses. |
includeFightHistory | boolean | No | Include the per-fight history table on each record. Default true. |
proxyConfiguration | object | No | Proxy configuration. Defaults to Apify Residential proxies. |
Example: pull the first 25 Southpaw fighters with at least 10 career wins, full fight history included.
{"maxItems": 25,"stance": "Southpaw","minWins": 10,"includeFightHistory": true}
Example: pull Conor McGregor and Khabib Nurmagomedov by URL with the full history.
{"maxItems": 2,"startUrls": [{ "url": "https://ufcstats.com/fighter-details/f4c49976c75c5ab2" },{ "url": "https://ufcstats.com/fighter-details/c670aa48fe1f3ea7" }],"includeFightHistory": true}
β οΈ Good to Know: UFCStats stance, reach, height, and DOB are entered manually and a meaningful share of older or one-fight roster members have missing fields. The Actor reflects whatever the source has, returning
nullrather than guessing.
π Output
Each record describes a single fighter as a flat JSON object with a nested fight history array.
π§Ύ Schema
| Field | Type | Example |
|---|---|---|
π fighterId | string | f4c49976c75c5ab2 |
π url | string (URL) | http://ufcstats.com/fighter-details/f4c49976c75c5ab2 |
π·οΈ fullName | string | Conor McGregor |
π
°οΈ firstName | string | Conor |
π
±οΈ lastName | string | McGregor |
π¬ nickname | string | The Notorious |
π
record | string | 22-6-0 |
β
wins | integer | 22 |
β losses | integer | 6 |
π€ draws | integer | 0 |
βͺ noContests | integer | 0 |
π height | string | 5' 9" |
π heightInches | integer | 69 |
βοΈ weightLbs | integer | 155 |
π€ reachInches | integer | 74 |
π₯ stance | string | Southpaw |
π dateOfBirth | ISO date | 1988-07-14 |
π’ age | integer | 37 |
π₯ significantStrikesLandedPerMinute | number | 5.32 |
π― strikingAccuracyPct | number | 49 |
π‘οΈ significantStrikesAbsorbedPerMinute | number | 4.66 |
πͺ strikingDefensePct | number | 54 |
π€Ό takedownAveragePer15Min | number | 0.67 |
π― takedownAccuracyPct | number | 55 |
π‘οΈ takedownDefensePct | number | 66 |
π submissionAveragePer15Min | number | 0.1 |
π totalFights | integer | 14 |
π fightHistory | array of object | [{ result, opponent, event, method, round, time, ... }] |
π scrapedAt | ISO date | 2026-05-15T23:49:25.415Z |
π¦ Sample records
β¨ Why choose this Actor
| π― | Capability |
|---|---|
| π | Real-time data. Every run hits the live UFCStats pages. No nightly snapshots, no stale CSV exports. |
| π | Full career-metric coverage. All eight UFCStats career stats parsed into typed numbers, percents stripped of the trailing sign. |
| π | Per-fight history with stat splits. Every logged bout returns knockdowns, significant strikes, takedowns, and submissions as fighter / opponent splits. |
| π | Physicals normalized. Height returned both as the display string (5' 9") and parsed inches, weight in pounds, reach in inches, DOB in ISO format, plus a computed age. |
| π₯ | Stance and record filters. Server-side pages have no filters; the Actor applies stance, minWins, and minLosses after parsing each profile. |
| π | Three targeting modes. Search by name, paste in fighter URLs, or walk the alphabet listing. |
| π οΈ | No API key, no registration. UFCStats publishes no API; this Actor reads the same public HTML the website serves and returns clean JSON. |
π At launch the UFCStats roster covers 4,400+ fighters across the entire UFC and acquired-promotion history, with per-fight stat splits on every modern bout and the eight career rate-and-percentage metrics computed by the promotion itself.
π How it compares to alternatives
| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| Paid sports-data APIs | $$$$ per seat | Multi-league | Live | Rich UI | Account + license |
| Community CSV dumps on data hubs | Free | Partial, dated | Quarterly or stale | None | Manual download |
| Official site (manual browsing) | Free | Full | Live | Letter pages only | Hours of clicking |
| Legacy MMA stats aggregators | Free or freemium | Mixed | Weekly | Limited | Account |
| β UFCStats Fighter Profiles & Fight History Scraper (this Actor) | Pay-per-use | Full UFC roster | Live | Typed filters | One JSON input |
This Actor sits in the gap between the four-figure sports-data licenses and the stale community dumps: same data the league publishes, no key, no per-seat fee.
π How to use
- π Create an Apify account. Sign up here if you do not have one yet.
- π― Open the Actor page. Click the green Try for free button.
- βοΈ Fill in your filters. Pick a search query, paste fighter URLs, set minimum wins, or restrict to one letter. All fields are optional.
- βΆοΈ Run the Actor. Hit Start and watch progress in the log panel as each fighter is parsed.
- πΎ Export the dataset. Download as JSON, CSV, or Excel, or push directly to a webhook, Google Sheet, or your own pipeline.
β±οΈ Total time: under 60 seconds for the first 25 fighters. Larger pulls scale linearly with the per-page fetch budget.
πΌ Business use cases
π Beyond business use cases
Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.
π Automating UFCStats Scraper
Run on a schedule, trigger from your own apps, or integrate with a workflow tool.
- Node.js client for triggering runs and reading dataset items from JavaScript and TypeScript
- Python client for the same in Python
- REST API docs for direct HTTP integration
Schedules let you run this Actor every morning, every Monday, or every fight-week Thursday. Pair a weekly run with a webhook into your model or a Google Sheet to keep your fighter cards fresh without lifting a finger.
β Frequently Asked Questions
π Integrate with any app
- Zapier - push results to thousands of business apps
- Make - visual workflow automation
- n8n - self-hostable workflow automation
- Airbyte - sync results into your data warehouse
- Google Sheets - dump runs straight into a spreadsheet
- Slack - post notifications when fresh fighter data arrives
π Recommended Actors
- π° DraftKings Scraper - live sportsbook lines for MMA, NFL, NBA, and more
- π FanDuel Sportsbook Odds Scraper - real-time FanDuel betting markets and odds movement
- πΉ YouTube Scraper - mine fight breakdowns, training footage, and post-fight interviews
- π¬ Reddit Posts Scraper - pull r/MMA discussion, fight reactions, and prospect chatter
- π TikTok Hashtag Analytics Scraper - track #UFC and fighter hashtag reach and engagement
π‘ Pro Tip: browse the complete ParseForge collection for more sports, social, and business data scrapers.
π Need Help?
Question, request, or stuck on a filter? Open our contact form and we will respond within one business day.
βοΈ Disclaimer: This Actor scrapes only public, logged-out UFCStats pages. UFCStats.com is operated by the UFC and the data it publishes is public statistical information. You are responsible for ensuring your use complies with applicable law and the UFCStats terms of use. We are not affiliated with the Ultimate Fighting Championship, Zuffa, TKO Group Holdings, or any related entity.