UFCStats Fighter Profile & Fight History Scraper avatar

UFCStats Fighter Profile & Fight History Scraper

Pricing

from $18.75 / 1,000 results

Go to Apify Store
UFCStats Fighter Profile & Fight History Scraper

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

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

ParseForge Banner

πŸ₯Š 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 audiencePrimary use cases
Sports betting analysts and quantsMMA betting odds modeling and edge detection
Fantasy MMA platform developersFighter rating engines and lineup optimization
MMA media and content creatorsPre-fight breakdowns, weekly stat columns, podcast research
Fight prediction model buildersFeature engineering on striking and grappling stats
Coaches and gym analystsOpponent scouting reports and game-plan prep
Researchers and data journalistsEmpirical 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

FieldTypeRequiredDescription
maxItemsintegerNoMaximum fighters to return. Free plan capped at 10 (preview). Paid plans up to 1,000,000.
startUrlsarray of URLNoSpecific fighter profile URLs to scrape (e.g. https://ufcstats.com/fighter-details/f4c49976c75c5ab2).
searchQuerystringNoFree-text query against first name, last name, and nickname.
lettersarray of enumNoRestrict the alphabet walk to these starting letters of the fighter last name. Leave empty to walk A-Z.
stanceenumNoFilter by stance: Orthodox, Southpaw, Switch, Open Stance, Sideways.
minWinsintegerNoOnly include fighters with at least this many career wins.
minLossesintegerNoOnly include fighters with at least this many career losses.
includeFightHistorybooleanNoInclude the per-fight history table on each record. Default true.
proxyConfigurationobjectNoProxy 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 null rather than guessing.


πŸ“Š Output

Each record describes a single fighter as a flat JSON object with a nested fight history array.

🧾 Schema

FieldTypeExample
πŸ†” fighterIdstringf4c49976c75c5ab2
πŸ”— urlstring (URL)http://ufcstats.com/fighter-details/f4c49976c75c5ab2
🏷️ fullNamestringConor McGregor
πŸ…°οΈ firstNamestringConor
πŸ…±οΈ lastNamestringMcGregor
πŸ’¬ nicknamestringThe Notorious
πŸ… recordstring22-6-0
βœ… winsinteger22
❌ lossesinteger6
🀝 drawsinteger0
βšͺ noContestsinteger0
πŸ“ heightstring5' 9"
πŸ“ heightInchesinteger69
βš–οΈ weightLbsinteger155
🀜 reachInchesinteger74
πŸ₯‹ stancestringSouthpaw
πŸŽ‚ dateOfBirthISO date1988-07-14
πŸ”’ ageinteger37
πŸ₯Š significantStrikesLandedPerMinutenumber5.32
🎯 strikingAccuracyPctnumber49
πŸ›‘οΈ significantStrikesAbsorbedPerMinutenumber4.66
πŸͺ– strikingDefensePctnumber54
🀼 takedownAveragePer15Minnumber0.67
🎯 takedownAccuracyPctnumber55
πŸ›‘οΈ takedownDefensePctnumber66
🐍 submissionAveragePer15Minnumber0.1
πŸ“Š totalFightsinteger14
πŸ“œ fightHistoryarray of object[{ result, opponent, event, method, round, time, ... }]
πŸ•’ scrapedAtISO date2026-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

ApproachCostCoverageRefreshFiltersSetup
Paid sports-data APIs$$$$ per seatMulti-leagueLiveRich UIAccount + license
Community CSV dumps on data hubsFreePartial, datedQuarterly or staleNoneManual download
Official site (manual browsing)FreeFullLiveLetter pages onlyHours of clicking
Legacy MMA stats aggregatorsFree or freemiumMixedWeeklyLimitedAccount
⭐ UFCStats Fighter Profiles & Fight History Scraper (this Actor)Pay-per-useFull UFC rosterLiveTyped filtersOne 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

  1. πŸ” Create an Apify account. Sign up here if you do not have one yet.
  2. 🎯 Open the Actor page. Click the green Try for free button.
  3. ✏️ Fill in your filters. Pick a search query, paste fighter URLs, set minimum wins, or restrict to one letter. All fields are optional.
  4. ▢️ Run the Actor. Hit Start and watch progress in the log panel as each fighter is parsed.
  5. πŸ’Ύ 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

🎯 Sports betting analysts

  • Build per-fight win-probability models from career stats
  • Detect closing-line value with up-to-the-moment fighter metrics
  • Backtest betting strategies against historical fight outcomes
  • Track late-camp stat updates before each card

πŸ•ΉοΈ Fantasy MMA developers

  • Power lineup optimizers with stance and weight-class splits
  • Score salary-cap leagues with strikes-landed projections
  • Surface dark-horse fighters using takedown and submission rates
  • Refresh fighter cards automatically before each event

πŸ“° MMA media and content

  • Pre-fight breakdowns with side-by-side striking stats
  • Weekly stat columns on emerging contenders
  • Podcast research with verified records and dates
  • Infographics built from fresh, structured numbers

🏟️ Coaches and gym analysts

  • Opponent scouting reports with strike, takedown, and sub splits
  • Track an opponent's last five fights for game-plan prep
  • Compare a fighter's metrics against weight-class averages
  • Build internal databases of regional and main-roster prospects

🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

πŸŽ“ Research and academia

  • Empirical datasets for papers, thesis work, and coursework
  • Longitudinal studies tracking changes across snapshots
  • Reproducible research with cited, versioned data pulls
  • Classroom exercises on data analysis and ethical scraping

🎨 Personal and creative

  • Side projects, portfolio demos, and indie app launches
  • Data visualizations, dashboards, and infographics
  • Content research for bloggers, YouTubers, and podcasters
  • Hobbyist collections and personal trackers

🀝 Non-profit and civic

  • Transparency reporting and accountability projects
  • Advocacy campaigns backed by public-interest data
  • Community-run databases for local issues
  • Investigative journalism on public records

πŸ§ͺ Experimentation

  • Prototype AI and machine-learning pipelines with real data
  • Validate product-market hypotheses before engineering spend
  • Train small domain-specific models on niche corpora
  • Test dashboard concepts with live input

πŸ”Œ Automating UFCStats Scraper

Run on a schedule, trigger from your own apps, or integrate with a workflow tool.

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

πŸ’‘ 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.