UFC Stats Scraper
Pricing
from $19.00 / 1,000 results
UFC Stats Scraper
Scrapes UFC fight and fighter data from UFC Stats. Returns each fight as a flat row with fighter names, result, method, round, time, and detailed fight statistics.
Pricing
from $19.00 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
23
Total users
6
Monthly active users
9 days ago
Last modified
Share
UFC Stats Scraper
Scrape UFC fight and fighter data from UFC Stats, up to a million fights per run. Every fight comes with fighter names, result, method, round, time, and full fight stats. No login or API key. Export to CSV, JSON, Excel, or XML.
UFC Stats is the official record of every UFC fight, but it has no public API and no bulk export. This Actor reads the public fight pages directly, filtered by fighter last name initial, and returns each fight as one flat row. Build your own MMA database without manual copying.
| Who uses it | What they scrape UFC Stats for |
|---|---|
| MMA analysts | Build a fight database to study performance trends and fighter styles |
| Sports bettors | Pull historical fight stats to inform betting models |
| Fantasy MMA players | Get fight results and stats to score fantasy leagues |
| Journalists | Collect fight data for articles and fighter profiles |
| Data scientists | Create datasets for machine learning on fight outcomes |
What it does
This Actor collects UFC fights from UFC Stats by fighter last name initial, and returns each fight as a flat row with fighter names, result, method, round, time, and detailed fight statistics.
- ๐ค Filter by last name initial: choose any letter A to Z to scrape only fighters whose last name starts with that letter.
- ๐ Scrape all letters: enable to collect the entire UFC roster across all 26 letters in one run.
- ๐ Full fight stats: each row includes result, method, round, time, and detailed striking and grappling stats.
- ๐ฆ Bulk export: save up to 1,000,000 fights per run to CSV, JSON, Excel, or XML.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with UFC Stats data
๐ Build a fight database.
An MMA analyst scrapes all fights from A to Z to create a complete historical database for trend analysis.
๐ฏ Inform betting models.
A sports bettor pulls fights for specific fighters to calculate striking accuracy and finish rates before placing a bet.
๐ Score fantasy leagues.
A fantasy MMA commissioner scrapes fight results and stats to automatically update league standings.
๐ฐ Write fighter profiles.
A journalist collects a fighter's full fight history to write an in-depth career retrospective.
๐ค Train prediction models.
A data scientist gathers thousands of fights to train a machine learning model that predicts fight outcomes.
Why choose this scraper
| What you get | |
|---|---|
| No API key | Scrape UFC Stats without registration or rate limits |
| Complete data | Get every fight stat the official site shows, in one row |
| Flexible filtering | Target one letter or the whole roster with one toggle |
| Scalable | Collect up to a million fights in a single run |
How it compares
No other Store actor targets UFC Stats the same way, so the honest comparison is with the alternatives teams actually weigh.
| UFC Stats Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When UFC Stats changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor from a single last name initial or the full alphabet, and set a maximum number of fights to collect per run. The Input tab lists every parameter.
A first run with the defaults:
{"maxItems": 10}
A larger pull:
{"maxItems": 200}
Pricing
Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the UFC Stats Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to UFC Stats through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/ufc-stats-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Make sure 'Scrape All Letters' is disabled if you want a specific letter, and that the 'Starting Letter' is set to a letter that has fighters. Also check that 'Maximum fights' is at least 1.
The run is taking too long.
Reduce the 'Maximum fights' value or scrape a single letter instead of all letters. The Actor stops after reaching the limit.
Some fights are missing from the results.
UFC Stats may not list every fight for every fighter. The Actor scrapes only what is publicly available on the site.
I get an error when enabling 'Scrape All Letters'.
Ensure the input is valid JSON and that 'scrapeAllLetters' is set to true. If the error persists, try running with a single letter first.
The dataset has duplicate fights.
Duplicates can occur if a fight appears on multiple fighter pages. Use a deduplication step in your downstream processing.
FAQ
| Question | Answer |
|---|---|
| What data does this Actor return for each fight? | Each fight row includes fighter names, result, method of victory, round, time, and detailed striking and grappling statistics as shown on UFC Stats. |
| Can I scrape all fighters at once? | Yes. Enable the 'Scrape All Letters' option to collect fights for every fighter in the UFC roster, ignoring the starting letter filter. |
| How many fights can I collect in one run? | You can set the maximum number of fights up to 1,000,000 per run. The Actor stops after reaching that limit. |
| Do I need an API key or login? | No. This Actor reads public UFC Stats pages directly, so no registration or authentication is required. |
| What export formats are supported? | You can export the scraped data to CSV, JSON, Excel, or XML from the Apify dataset. |
| Can I filter by fighter name? | You can filter by the first letter of the fighter's last name using the 'Starting Letter' input. For more specific filtering, you can process the dataset after scraping. |
| Does this Actor scrape live or upcoming fights? | This Actor scrapes completed fights listed on UFC Stats. It does not include live or scheduled events. |
| Is the data updated regularly? | The Actor scrapes the current UFC Stats website each time it runs, so you get the latest available fight data. |
| Can I schedule this Actor to run automatically? | Yes, you can set up a schedule on the Apify platform to run this Actor at regular intervals, such as daily or weekly. |
| What if I get no results? | Check that the 'Starting Letter' is set correctly and that 'Scrape All Letters' is disabled if you want a specific letter. Also ensure the maximum fights is at least 1. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by UFC Stats. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
