Sherdog MMA Fighters, Fights & Events Scraper
Pricing
from $7.00 / 1,000 results
Sherdog MMA Fighters, Fights & Events Scraper
MMA fighter profiles with full fight histories, event cards and bout results from Sherdog - UFC, PFL, Bellator, ONE and hundreds of other promotions, back to the 1990s - with incremental runs.
Pricing
from $7.00 / 1,000 results
Rating
0.0
(0)
Developer
Artsiom Kunitsyn
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Scrapes MMA data from Sherdog: fighter profiles with their complete fight history, event fight cards (upcoming and past) and bout results — for the UFC, PFL, Bellator, ONE and hundreds of smaller promotions, back to the 1990s. No login required.
Contents
🔑 Key features
- Three views of the same data.
fighters(one row per fighter),events(one row per card) andfights(one flat row per bout, ready for a spreadsheet or a model). - Full fight histories. Every professional fight with opponent, event, date, method (KO/TKO, submission, decision…), round, time and referee — plus amateur and pro-exhibition bouts, kept in separate divisions.
- Record breakdowns. Wins and losses split by KO/TKO, submission, decision and other.
- Upcoming cards. Future events with the full bout list, weight classes and fighter records, and each fighter's next scheduled fight.
- Scope by promotion. Pick UFC, PFL, Bellator, ONE, KSW, Oktagon, Rizin, Cage Warriors and more, or paste any Sherdog promotion URL. For fighters, that means "everyone who fought (or is booked) on these cards".
- The whole database, too. Leave the promotion list empty for every fighter (about 354,000) or event (about 77,000) Sherdog lists.
- Fighter details on fight rows (from 2026-11-06). Turn on
includeFighterDetailsand each bout also carries both fighters' birth date, age at the fight, nationality, height, weight class, gym and current record breakdown, with no second run and no join. - Incremental runs. Schedule
eventsorfights: after the first run you only receive new events and cards whose results changed. maxItemsdefaults to 50 — a fast, cheap preview. Clear it (null) for everything in your selection.
⚖️ Strengths and limits
Read this before you run a big job, so you know exactly what you get.
Strengths
- Records you can trust. In a 60,000-fighter check, 99.98% of stated records matched the fighter's own fight history. A full UFC pull matched: 832 events, 9,142 bouts, 2,899 fighters.
- Far beyond the UFC. Hundreds of promotions, about 354,000 fighters and 77,000 events.
- A fighter's whole history in one row, so a
fightersrow carries far more than a single fight. - Reliable at scale. Transient page errors are retried; the last 4,000-fighter stress run had 0 errors.
Limits
- Results, not fight statistics. Sherdog has no strikes, takedowns or control time, and no odds. It has who fought, who won, how and when.
- Obscure fighters have gaps. In a sample of 5,000 older fighters, 63% had a nationality, 54% a weight class and 22% a
birth date. The UFC roster is far denser (92% birth date, 99.9% nationality). Missing fields are
null. - Records are today's. A fighter's record and weight class are current; Sherdog doesn't show records as of each fight.
- The whole database is a big job. About 354,000 fighters would cost about $3,500 at $10 per 1,000 on the free plan and take about 5 hours at top concurrency, past the default 1-hour run timeout. We've tested up to 60,000 fighters in one run, not the whole database. The full UFC roster is about $29. Choose promotions, and set a spending limit.
- Incremental mode covers
eventsandfightsonly.fightersis always a fresh pull, and only events from the last 90 days (plus upcoming ones) are tracked for changes. - Upcoming cards have no results, and old cards can be empty (
no_results) or have placeholder dates (returned asnull). - Fighter details cost extra.
includeFighterDetailsstarts on 2026-11-06, with one charge per distinct fighter on top of the row price. - The site can be flaky. About 0.05% of pages fail briefly (retried), and Sherdog's sitemaps sometimes come back empty; a whole-database run may skip a sitemap it can't read, and it logs that when it does. Promotion runs don't use sitemaps.
- It depends on Sherdog's pages. A site redesign would stop the actor until it's updated. Not affiliated with Sherdog.
📋 Output
The Output tab lists every field.
fighters — one row per fighter:
{"source": "sherdog","external_id": "27944","name": "Jon Jones","nickname": "Bones","birth_date": "1987-07-19","height_cm": 193.04,"weight_kg": 107.95,"weight_class": "Heavyweight","association": "Jackson-Wink MMA","nationality": "United States","wins": 28, "losses": 1, "draws": 0, "no_contests": 1,"wins_ko": 11, "wins_submission": 7, "wins_decision": 10,"pro_fights": 30,"upcoming_fights": [],"fights": [{"division": "pro", "result": "win", "opponent": "Stipe Miocic", "opponent_id": 39537,"event": "UFC 309 - Jones vs. Miocic", "event_date": "2024-11-16","method": "TKO", "method_detail": "Spinning Back Kick and Punches", "finish_type": "ko_tko","referee": "Herb Dean", "round": 3, "time": "4:29", "time_seconds": 269}]}
events — one row per card, with bouts (match number, weight class, both fighters with ids and records
where shown, winner, method, round, time, referee) and a status of completed, upcoming, no_results
or unknown.
fights — one flat row per bout: event, promotion, date, weight class, fighter_1 / fighter_2 with
ids and results, winner, method, finish_type, round, time_seconds, referee. With
includeFighterDetails, also fighter_1_details / fighter_2_details: nickname, birth date, age_at_fight,
nationality, hometown, height, weight class, gym, image and the fighter's record today (wins, losses, draws,
no contests, wins and losses by KO, submission, decision and other).
🔧 Input
| Field | Type | Default | Description |
|---|---|---|---|
entityType | string | fighters | fighters, events or fights. |
organizations | array | ["ufc"] | Promotions to scrape. Empty = the entire database. |
startUrls | array | — | Specific fighter, event or promotion pages. Replaces the promotion selection. |
dateFrom / dateTo | string | — | Only events in this window (YYYY-MM-DD). Use a future window for upcoming cards. |
maxItems | integer | 50 | Stop after this many rows. null = everything selected. |
includeFighterDetails | boolean | false | fights only: add both fighters' profile details to each row. Charged per distinct fighter. From 2026-11-06. |
mode | string | auto | auto / full / incremental — events and fights only. |
concurrency | integer | 8 | Parallel page requests (max 25). |
impersonate | string | firefox | Browser TLS fingerprint. Change only if requests are blocked. |
proxyConfiguration | object | no proxy | Apify Proxy settings. Not needed in testing. |
📥 Input examples
Default preview (50 UFC fighters):
{}
Every UFC fight ever, one row per bout:
{ "entityType": "fights", "organizations": ["ufc"], "maxItems": null }
Upcoming UFC and PFL cards:
{ "entityType": "events", "organizations": ["ufc", "pfl"], "dateFrom": "2026-09-21", "maxItems": null }
Daily feed of new and changed events (schedule this):
{ "entityType": "fights", "organizations": ["ufc", "pfl", "bellator", "one"], "maxItems": null }
Every UFC fight of 2025 with both fighters' details:
{ "entityType": "fights", "organizations": ["ufc"], "dateFrom": "2025-01-01", "dateTo": "2025-12-31", "includeFighterDetails": true, "maxItems": null }
Two specific fighters:
{ "entityType": "fighters", "startUrls": ["https://www.sherdog.com/fighter/Jon-Jones-27944", "https://www.sherdog.com/fighter/Stipe-Miocic-39537"] }
🔁 Incremental mode
events and fights only, and only for a run with maxItems cleared (null) — a capped run is a preview
and always returns rows. In auto mode the first uncapped run returns everything in scope. Later runs return
only events that are new or whose card or results changed in the last 90 days, plus upcoming ones
(change_type is new or changed); older events are history and are not repeated. A run limited by
maxItems, your spending limit, startUrls, a date window or an error does not update the memory.
fighters is always a fresh pull.
❓ FAQ
How complete is fighter data? Sherdog lists every fighter, but many are obscure: in a sample of 5,000
fighters, about 63% had a nationality, 54% a weight class and 22% a birth date. Fields Sherdog doesn't have
are null, never guessed.
How is includeFighterDetails charged? One fighter-details event per distinct fighter in the run, on
top of the usual price per row. A fighter who appears in ten of your fights is charged once. If you already
have the fighters, a fighters run gives the full profiles (with every fight) at the row price instead.
The record in the details is the fighter's record today; Sherdog doesn't show records as of each fight.
What are the divisions? pro, amateur and pro_exhibition, matching Sherdog's sections. The win/loss
record fields are the professional record.
Why does an old event have no_results? Some 1990s events exist on Sherdog with an empty card. They are
returned with that status rather than being labelled upcoming.
Do you cover boxing or Muay Thai? Sherdog is an MMA site; a few boxing events exist (the "Boxing"
promotion), and promotions you paste into startUrls are scraped as listed.
Feedback and reviews
Missing a field or hit a problem? Open an issue on the Issues tab: issues are answered promptly.
If this Actor is useful to you, please leave a short review on this page. Reviews help other people find it and help decide what to improve next. Thank you!
Related sports data scrapers
- BestFightOdds MMA Odds Scraper — every sportsbook's UFC and MMA moneyline and props, consensus opening and closing lines back to 2008, and line movement.
- Fight Matrix MMA Rankings Scraper — every ranked fighter in every division, quarterly rankings since 1990, and profiles with Sherdog ids.
- Action Network Scraper — US sportsbook odds, public betting splits, line movement, props, injuries and futures.
- Smarkets Betting Exchange Scraper — betting exchange back and lay odds, matched volume, results and traded-price history.
- PGA TOUR Scraper — golf results back to the 1950s, hole-by-hole scorecards, FanDuel odds history, tee times and player stats.
- Kalshi & Polymarket Scraper — prediction market odds, settled results and price history for sports, politics, economics and crypto.
- SofaScore Scraper — results, team statistics, lineups with player ratings, incidents and odds for football, basketball, hockey, tennis and 17 more sports.
- Flashscore Scraper — results, statistics, lineups, incidents and opening/closing odds from ~20 bookmakers for 17 sports.