Ufc Stats Scraper avatar

Ufc Stats Scraper

Pricing

from $10.50 / 1,000 results

Go to Apify Store
Ufc Stats Scraper

Ufc Stats Scraper

Get official UFC fighter records, event cards and full round by round fight breakdowns, strikes, takedowns and control time included. No login. Built for bettors backtesting models, fantasy MMA players, analysts and content creators who need accurate fight stats fast.

Pricing

from $10.50 / 1,000 results

Rating

0.0

(0)

Developer

Norm Data

Norm Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Norm Data

๐ŸฅŠ UFC Stats Scraper

Extract official UFC fight statistics (fighter profiles, event cards, and full fight-by-fight strike and grappling breakdowns) as clean, structured records. Career averages, complete fight history, and per-fight totals (knockdowns, significant strikes, takedowns, control time), with an optional round-by-round split. No login, no account, no manual copying.

๐ŸŽฏ Who uses it?

๐ŸŽฎ Fantasy MMA players

Compare fighter stats to set weekly DraftKings / FanDuel lineups.

๐ŸŽฒ Bettors & model builders

Backtest betting angles and build predictive models from career-long striking and grappling data, down to the individual round.

๐Ÿ“Š Analysts & researchers

Track career trajectories, finishing rates, and stylistic matchups across a fighter's entire UFC record.

โœ๏ธ Content creators

Pull accurate fight records and stats for pre-fight previews, graphics, and recaps.

โœจ What it does

  • Fighter profiles: bio (height, weight, reach, stance, date of birth), career averages (significant strikes landed/absorbed per minute, strike accuracy & defense, takedown average, accuracy & defense, submission average), and full fight history.
  • Events: every completed or upcoming UFC event: date, location, and the full fight card.
  • Fight breakdowns: knockdowns, significant strikes (landed/attempted/accuracy), total strikes, takedowns, submission attempts, reversals, and control time, for the whole fight, or split out round by round.
  • Find fighters by name, paste fighter profile links directly, or browse an entire Aโ€“Z directory letter.
  • Filter by stance and minimum career wins/losses so only relevant fighters land in your dataset.
  • CRM-ready layout: keep fight history nested inside each fighter row, or flatten it to one row per past fight.
  • Heights/weights/reach are normalized to metric (cm / kg) alongside the raw record.

Why this scraper

  • Find fighters by name. The other UFC scrapers on Apify only search a single word at a time. This one takes a full name like "Israel Adesanya".
  • Round-by-round breakdowns. Strikes, takedowns, control time and more, split per round, not just fight totals.
  • Three entities in one actor: fighter profiles with full history, event cards, and fight-level breakdowns.
  • Filters that narrow the dataset: stance, minimum career wins or losses, and a whole A-Z directory letter at a time.
  • CRM-ready output: nested fight history, or flattened to one row per past fight.
  • No login, no API key, no proxy.

How it compares

CapabilityThis actorOther UFC scrapers on Apify
Fighter profiles, events, fight breakdownsyessome
Search by full fighter nameyessingle word only
Round-by-round strike / takedown / control splitsyesrare
Filter by stance, minimum wins / lossesyesno
Nested or flattened fight historyyesno
Metric heights / weights / reach alongside the raw recordyesno
Declared dataset schema + free-plan previewyesno

๐Ÿ“ฆ What data you get

EntityUseful fields
FighterName, record (W-L-D), height, weight, reach, stance, date of birth, significant-strike & takedown career averages, and full fight history.
EventName, date, location, and the fight card (both fighters, weight class, method, round, time, per fight).
FightBoth fighters, winner, weight class, method, round, time, referee, finish details, and full strike/takedown totals, optionally per round.

Every record includes scraped_at (UTC) and source. Download your dataset from Apify as CSV, JSON, Excel, or XML.

๐Ÿ’ก Use cases

๐ŸŽฎ Build a fantasy lineup from career stats

{
"mode": "fighters",
"fighterNames": ["Islam Makhachev", "Ilia Topuria", "Alex Pereira"],
"includeFightHistory": false
}

๐ŸŽฒ Backtest a betting model on full round-by-round data

{
"mode": "fights",
"fighterNames": ["Jon Jones"],
"maxFightsPerFighter": 0,
"includeRoundByRound": true
}

๐Ÿ“… Get every event this year

{
"mode": "events",
"eventStatus": "completed",
"eventStartDate": "2026-01-01"
}

๐Ÿ—‚๏ธ Spreadsheet-ready fight history

{
"mode": "fighters",
"fighterNames": ["Alexander Volkanovski"],
"includeFightHistory": true,
"flattenHistory": true
}

๐Ÿ“– Browse the fighter directory, filtered

Directory letters group fighters by last name, not weight class or division. The official record doesn't expose a weight-class filter, so narrow the pool with stance and career win/loss minimums instead:

{
"mode": "fighters",
"letters": ["a", "b", "c"],
"stance": "Southpaw",
"minWins": 10,
"includeFightHistory": false,
"maxItems": 500
}

Every row this Actor returns includes a fighter_url. Save those links from an earlier run and paste them back in later to re-scrape exactly those fighters, skipping the name search:

{
"mode": "fighters",
"fighterUrls": ["<a fighter_url from a previous run>"],
"includeFightHistory": true
}

โš™๏ธ How the input is organised

The input form is split into four numbered sections:

SectionWhat it's for
1 ยท What do you want to scrape?Pick one type of data: Fighter profiles, Events, or Fight breakdowns.
2 ยท Who or what to getFill in only the field that matches your choice: fighter names, fighter links (Fighter profiles / Fight breakdowns), a directory letter + optional stance / min wins / min losses filters (Fighter profiles), or event status + date range (Events).
3 ยท How much to collectMaximum rows for the whole run, and fights per fighter for Fight breakdowns (0 = their entire UFC record).
4 ยท What to includeFull fight history (and whether to flatten it to one row per fight), and a round-by-round breakdown for Fight breakdowns.

Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.

๐Ÿ›ก๏ธ Limits & responsible use

This Actor collects only publicly available, official UFC fight statistics. It never signs in and never accesses anything gated behind an account.

If a fighter, event, or fight page can't be loaded, that row is skipped with a warning in the run log. The rest of the run continues.

๐Ÿงช Local development

bun install
bun run typecheck
bun test
bun run start

Test with a sample storage/key_value_stores/default/INPUT.json, e.g.:

{ "mode": "fighters", "fighterNames": ["Jon Jones"], "maxItems": 5 }