UFC Rankings & MMA Fight Data Scraper: Results, Odds, Fighters avatar

UFC Rankings & MMA Fight Data Scraper: Results, Odds, Fighters

Pricing

from $0.66 / 1,000 stat rows

Go to Apify Store
UFC Rankings & MMA Fight Data Scraper: Results, Odds, Fighters

UFC Rankings & MMA Fight Data Scraper: Results, Odds, Fighters

Get official UFC rankings, fight results, striking and grappling stats by position, fighter profiles with reach and stance, event cards and betting odds across UFC, PFL, Bellator and more. Export JSON or CSV, or schedule a monitor that reports new results and ranking changes.

Pricing

from $0.66 / 1,000 stat rows

Rating

0.0

(0)

Developer

GetAScraper

GetAScraper

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

17 hours ago

Last modified

Share

One suite for every scoreboard. Part of the Multi-Sport Live Scores, Stats & News suite: live scores across 13 sports, deep tennis and MMA stats, and ESPN keyword news alerts, all built to run on a schedule.
MULTI-SPORT LIVE SCORES, STATS & NEWS ย ย โ€ขย ย Four Actors, one scoreboard-to-newsroom data pipeline
ย SofaScore Live
13 sports, live scores & fixtures
ย Tennis Scores
ATP/WTA scores, stats & rankings
ย MMA Stats
โžค You are here
ย ESPN Alerts
Keyword alerts on ESPN news
Official UFC rankings, fight data and odds in one run
Pull the current UFC rankings, fight results with strikes by position, fighter profiles, upcoming cards with betting odds, and a monitor that reports only what changed since your last run.
๐Ÿ† Official UFC rankings
Every division and pound-for-pound list, champion marked, with ranking moves.
๐Ÿ“Š Position-by-position strikes
Distance, clinch, and ground strikes landed and attempted, by head, body, and leg.
๐Ÿ’ต Betting odds
Opening and closing moneylines and the round line, upcoming and past cards.
๐Ÿ”” Change monitor
Schedule it and get new fights, results and ranking moves only.

UFC rankings and MMA fight data scraper covering the UFC, PFL, Bellator and other promotions. Get rankings, fight results, fighter profiles, event cards and odds as structured data, ready for a betting model, a fantasy league scorer, or a fighter database, without digging through stats pages by hand.

๐Ÿ” What does UFC Rankings & MMA Fight Data Scraper do?

It extracts structured MMA data across 19 promotions (depth is greatest for the UFC). Pick one of four modes per run:

  • Fights: every bout's result, winner, method of victory, round and time, which card segment it was on, whether it was a title fight and which belt, the venue, plus significant strikes split by position (distance, clinch, ground) and target (head, body, leg) for each fighter. Upcoming bouts come back as scheduled. Turn on Include betting odds for opening and closing moneylines and the round line when the odds feed has them.
  • Fighters: profiles with record, reach, height, weight class, stance, fighting styles, age and photo, plus career rate stats: significant strikes landed per minute, striking accuracy, takedowns landed per 15 minutes, takedown accuracy, submission average, and the share of wins by KO, TKO and decision. Give fighter IDs, or leave them empty to list the fighters of a promotion. Turn on Include fight history to add every fight of each fighter.
  • Rankings: current UFC divisional and pound-for-pound rankings from the UFC's own rankings page, champion marked, filterable by division.
  • Events: fight cards with date, status (scheduled or completed), venue, city and bout count, filterable to an exact date range.

Set a Monitor name and schedule the run to receive only new fights and results, or only ranking changes, since the previous run.

Use it to build betting and prediction models, score fantasy MMA leagues, populate a fight-preview page, or research a fighter's full career history.

๐Ÿš€ How to use it

STEP 1
Pick a mode
Choose rankings, fights, fighters, or events, then pick your promotions, dates and event status.
STEP 2
Run the Actor
It pulls the matching bouts, fighters, rankings or cards and structures every field. The default input returns 25 rows in seconds.
STEP 3
Export your data
Download as JSON, CSV, or Excel, or schedule it with a monitor name for change-only updates.

๐Ÿ‘ฅ Who uses this

Sports data analysts feed the fight-stats output straight into prediction models. Strikes landed by position (distance, clinch, ground) and target, plus takedown accuracy and control time, give a real statistical base instead of one combined strike total.

Bettors and odds researchers compare opening and closing lines with what happened, using results, method and round data alongside the lines.

Fantasy MMA operators score leagues off method-of-victory and round data the moment a card wraps, without waiting on a manual recap.

Sports content sites populate fighter bios and event previews automatically: reach, stance, record, and upcoming card details in one pull.

MMA researchers and journalists pull a fighter's complete career history and stat trends for feature writing, without digging through years of individual fight pages.

๐Ÿ“‹ Input

FieldTypeRequiredDescription
modeenumNofights, fighters, rankings, or events. Defaults to fights.
eventIdsarray of stringsNoSpecific event IDs (the eventId column). Fastest way to target a fight card.
fighterIdsarray of stringsNoFighter IDs (the fighter1Id and fighter2Id columns). Leave empty in fighters mode to list fighters of the first selected promotion.
promotionsarray of stringsNoMMA promotions to cover (UFC, PFL, Bellator, and 16 more). Defaults to UFC.
yearsarray of integersNoCalendar years to cover. When set it takes priority over the date range.
fromDatestringNoFirst day to include, as YYYY-MM-DD or YYYYMMDD.
toDatestringNoLast day to include, as YYYY-MM-DD or YYYYMMDD.
eventStatusenumNoall, upcoming or completed. Applies to fights and events modes. Defaults to all.
weightClassstringNoDivision filter, for example Lightweight. Also narrows rankings mode to that division.
titleFightsOnlybooleanNoOnly championship bouts.
resultFilterarray of enumsNoFilter bouts by result: win, loss, draw, no contest.
methodFilterarray of enumsNoFilter bouts by method: KO/TKO, submission, decision, other.
stanceenumNoFighters mode: Orthodox, Southpaw, Switch, Open Stance, or Sideways.
minWins / minLossesintegerNoFighters mode: minimum career wins or losses.
activeOnlybooleanNoFighters mode: skip retired and inactive fighters. Defaults to off.
includeFightStatsbooleanNoAdd the two per-fighter stat rows after every fight. On by default; turn off for results only.
includeOddsbooleanNoFights mode: add opening and closing moneylines and the round line when available. Defaults to off.
includeFightHistorybooleanNoFighters mode: also output every fight of each fighter. Defaults to off.
monitorNamestringNoName of a recurring monitor. Fights mode returns only new fights and results; rankings mode returns only ranking changes. Leave empty for a normal run.
maxItemsintegerNoMaximum rows to save. A fight with its two stat rows counts as three. Defaults to 25.
proxyConfigurationobjectNoKept for compatibility. The public sources used here do not need a proxy.

Free Apify accounts are limited to 25 rows per run, 3 runs per day and 30 minutes between runs. Paid plans have no limit.

๐Ÿ“Š Data table

FieldTypeDescription
fightIdstringUnique bout identifier.
eventIdstringThe event this bout was part of.
eventNamestringEvent name, e.g. "UFC 324: Gaethje vs. Pimblett".
datestringBout date, ISO format.
promotionstringPromotion slug (e.g. ufc).
weightClassstringWeight division.
fighter1Name / fighter2NamestringCompetitor names.
winnerNamestringWinning fighter, if any.
methodstringMethod of victory (KO/TKO, Submission, Decision).
roundnumberRound the fight ended in.
timestringTime within the round the fight ended.
sigStrikesLanded / sigStrikesAttemptednumberSignificant strikes landed and attempted (fight-stats rows).
sigDistanceHeadStrikesLanded (+ clinch/ground, body/leg variants)numberSignificant strikes split by position (distance, clinch, ground) and target (head, body, leg), 18 fields in total.
takedownsLanded / takedownAccuracynumberTakedown volume and accuracy (fight-stats rows).
fullNamestringFighter's full name (fighters mode).
wins / losses / recordSummarynumber / stringCareer record (fighters mode).
sigStrikesLandedPerMin / sigStrikeAccuracynumberCareer significant strikes landed per minute and strike accuracy percent (fighters mode).
takedownsLandedPer15 / careerTakedownAccuracy / submissionAttemptsPer15numberCareer takedowns landed per 15 minutes, takedown accuracy percent, and submission attempts per 15 minutes (fighters mode).
koPercentage / tkoPercentage / decisionPercentagenumberShare of wins by KO, TKO and decision, percent (fighters mode).
rankingName / rankstring / numberRanking division and position (rankings mode).
rowTypestringfight, fightStats, fighter, ranking or event, so mixed datasets are easy to split.
statusstringscheduled, in_progress or completed (fights and events).
isTitleFight / titleNameboolean / stringTitle bout flag and the belt, for example "UFC Lightweight Title".
cardSegment / scheduledRoundsstring / numberMain card, prelims or early prelims, and the scheduled number of rounds.
fighter1MoneylineOpen / fighter1MoneylineClose (+ fighter 2)numberAmerican moneylines when odds are included and published.
overUnderRounds / oddsProvidernumber / stringThe round line and the book it came from.
reachIn / weightClass / styles / activenumber / string / array / booleanFighter profile fields (fighters mode).
isChampion / previousRank / changeTypeboolean / number / stringChampion marker and, in monitor runs, what changed.
venueName / venueCitystringVenue details (fights and events).

Example output (fights mode):

{
"fightId": "401848704",
"eventId": "600057024",
"eventName": "UFC 324: Gaethje vs. Pimblett",
"date": "2026-01-24T22:30Z",
"promotion": "ufc",
"weightClass": "Welterweight",
"fighter1Name": "Adam Fugitt",
"fighter2Name": "Ty Miller",
"winnerName": "Ty Miller",
"method": "KO/TKO",
"round": 1,
"time": "4:59",
"status": "completed",
"isTitleFight": false,
"cardSegment": "Main Card",
"scheduledRounds": 3,
"venueName": "T-Mobile Arena"
}

๐Ÿ’ฐ Pricing

This Actor is pay per result. You only pay for the rows it actually returns, an empty run costs nothing, and there's no subscription.

โญ Enjoying UFC Rankings & MMA Fight Data Scraper?

โญ โญ โญ โญ โญ
Skip hours of manual stats-page digging and get position-by-position fight data in one run.
A 5-star rating takes 10 seconds and helps other sports data analysts and MMA researchers find it. Your feedback also tells us what to build next.
โ˜…ย ย Rate this Actor on Apify

โ“ FAQ

Does this cover promotions besides the UFC? Yes. It covers 19 promotions including PFL, Bellator, ONE, PRIDE, Strikeforce, and more, all in the same output format. Rankings mode covers UFC divisions and pound-for-pound; for other promotions rankings coverage is limited.

Can I get a fighter's full career history in one run? Yes. Use fighters mode with a fighter ID and turn on Include fight history to get the profile plus every fight on record, across promotions.

Will this miss recent or upcoming fights? No. Set Event status to upcoming to get scheduled cards, with odds when the book has published them. Rankings are read straight from the UFC's own rankings page, so they are current as of the last update.

Do I need to know each fighter's ID ahead of time? Not to browse: fighters mode without IDs lists the fighters of a promotion. To target one fighter, take the ID from the fighter1Id, fighter2Id or winnerId columns of a fights run.

How does the monitor work? Set a Monitor name and schedule the run. In fights mode the first run records the cards in your window (recent past and near future by default); later runs return only new fights and fights that now have a result. In rankings mode the first run returns the full lists (up to Max items) and later runs return only fighters who moved, entered or left a list.

๐Ÿ”— Other actors