UFC Scraper: Fighters, Events & Rankings avatar

UFC Scraper: Fighters, Events & Rankings

Pricing

from $4.50 / 1,000 results

Go to Apify Store
UFC Scraper: Fighters, Events & Rankings

UFC Scraper: Fighters, Events & Rankings

UFC fighter profiles and career stats, event fight cards with results, and official division and pound-for-pound rankings. Search by name or collect everything. No login.

Pricing

from $4.50 / 1,000 results

Rating

0.0

(0)

Developer

MrDoe

MrDoe

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Categories

Share

UFC Scraper: Fighters, Events & Rankings - scrape data with Apify

What does UFC Scraper: Fighters, Events & Rankings do?

UFC Scraper returns official UFC data as clean, structured rows: fighter profiles (record, division, status, bio and career striking and grappling stats), event fight cards (every bout, winner, method, round and time) and the official division and pound-for-pound rankings with each champion and up to 15 ranked contenders. Search by fighter or event name, or collect everything. No login, no API key.

Quick start (3 steps)

  1. Open the Actor on Apify and click Try for free.
  2. Choose what you want in the input form. The default returns the current rankings for every division. Press Start.
  3. Download the results as JSON, CSV or Excel, connect them to Google Sheets, or call the Actor as a live API (see below).

Where and how can you use it?

Use caseWho it is forHow to do it
Fight-week previewsMMA journalists and bloggersPull both fighters' records and stats for every bout on a card.
Betting research and modelsAnalysts and bettorsUse finish method, round and time history plus striking and takedown stats.
Fantasy MMA and fan appsApp buildersKeep rosters, records and rankings fresh with a scheduled run.
Ranking trackersFans and content creatorsCollect all 13 ranking lists and read each contender's rank change.
Fighter databasesData scientists and researchersBuild a roster with division, status, country of birth and career stats.
AI agents and chatbotsDevelopers using LLMsAnswer "who is the lightweight champion?" or "what happened at UFC 300?" with live data.

Works with: Google Sheets, Excel, Make, Zapier, n8n, Airtable, Slack, Discord, Telegram, webhooks, Python, JavaScript, cURL and any AI agent that can call an HTTP API.

What data do you get?

UFC Scraper: Fighters, Events & Rankings data fields

UFC Scraper: Fighters, Events & Rankings output data

FieldMeaning
recordTypefighter, event or ranking
id, name, nickname, urlIdentifier, name, nickname and UFC.com link
division, gender, statusWeight division, gender and Active / Not fighting / Retired
record, wins, losses, drawsCareer record as text and numbers
hometown, city, countryPlace of birth split into parts
height, weight, reach, legReach, age, octagonDebut, trainsAtBio and measurements
statsStriking, takedown, submission and win-method stats when available
title, date, location, fightCount, fightsEvent details and the full fight card
fights[].winner, method, round, time, awards, isTitleFightResult of each bout
championName, champion, rankingsRanking list with the champion and ranked contenders (rank, name, change)

Example result

{
"recordType": "fighter",
"id": "jon-jones",
"name": "Jon Jones",
"nickname": "Bones",
"division": "Heavyweight",
"gender": "male",
"status": "Active",
"record": "28-1-0",
"wins": 28,
"losses": 1,
"draws": 0,
"country": "United States",
"height": "76.00",
"reach": "84.50",
"stats": {
"Sig. Str. Landed": "4.38",
"Takedown avg": "1.89"
},
"url": "https://www.ufc.com/athlete/jon-jones"
}

Input parameters

UFC Scraper: Fighters, Events & Rankings input options

ParameterTypeDefaultWhat it does
dataTypestringrankingsfighters, events or rankings
searchTermsarray[]Fighter names or event names such as "UFC 300"
divisionstringallflyweight ... heavyweight, womens-*, pound-for-pound
genderstringallmale or female
fighterStatusstringanyactive, not-fighting or retired (reads each profile)
countrystring-Country of birth, for example Brazil (reads each profile)
eventTypestringallupcoming, past or all (events)
includeDetailsbooleantrueFull bio and stats, or the full fight card
maxResultsinteger20Records to return; rankings return one row per list. 0 = all

Input examples

Look up one fighter

{
"dataType": "fighters",
"searchTerms": [
"Jon Jones"
]
}

Current rankings for one division

{
"dataType": "rankings",
"division": "lightweight"
}

Fight card and results for one event

{
"dataType": "events",
"searchTerms": [
"UFC 300"
]
}

Upcoming events

{
"dataType": "events",
"eventType": "upcoming",
"maxResults": 10
}

Use it as a live API (Actor Standby)

Need an answer right now instead of starting a run? This Actor also works as an always-on HTTP endpoint (Apify Actor Standby). Send a request, get JSON back in seconds.

curl -H "Authorization: Bearer $APIFY_TOKEN" \
"https://mrdoe--ufc-fighters-events-rankings-scraper.apify.actor/?dataType=rankings&division=lightweight"
import requests
r = requests.get(
"https://mrdoe--ufc-fighters-events-rankings-scraper.apify.actor/",
params={"dataType": "rankings", "division": "lightweight"},
headers={"Authorization": "Bearer YOUR_APIFY_TOKEN"},
timeout=90,
)
print(r.json()["items"])
const res = await fetch("https://mrdoe--ufc-fighters-events-rankings-scraper.apify.actor/?dataType=rankings&division=lightweight", {
headers: { Authorization: `Bearer ${process.env.APIFY_TOKEN}` },
});
const { count, items } = await res.json();

You can also POST a JSON body with the same fields as the Actor input. The response is { "count": 1, "items": [ ... ] }; if something is wrong with your request you get a clear error message.

Standby APINormal run
Best forApps, bots, chat assistants, quick lookupsScheduled jobs, bigger exports, datasets
OutputJSON in the responseDataset (JSON, CSV, Excel, XML)
SchedulingCall it whenever you likeApify Schedules and Tasks

Ready-made Tasks

Open the Tasks tab, pick a ready-made Task and press Start. Clone any Task to change the input and add a schedule.

Tips for best results

  • Use rankings for the fastest snapshot: one run returns every division.
  • Use exact, common name spellings in searchTerms, for example "Sean O'Malley".
  • Turn includeDetails off for a quick roster list, then look up the fighters you care about.
  • Filtering by status or country reads each profile, so pair it with a division and a sensible maxResults.
  • Use eventType: past to mine winners, methods, rounds and times.

Good to know

  • Fighter searches match every word of the name, and exact full-name matches come first.
  • Event rows include a poster image URL.

Known limitations

  • Fighter stats are best-effort: some profiles show a full stat block, some a partial one or none.
  • Filtering a full roster by status or country reads each profile and can be slow. The scan stops after about 3 minutes and returns the fighters found so far; add a division or search terms for a complete, fast answer.
  • Results and rankings change after every event; each row is a snapshot at run time.

Frequently Asked Questions

Which rankings are covered?

Every official list UFC publishes: the men's and women's weight classes plus men's and women's pound-for-pound.

Can I get results for past events?

Yes. Set dataType to events and eventType to past, or search a specific event such as "UFC 300".

Can I get one fighter's stats?

Yes. Use dataType: fighters with the fighter's name in searchTerms.

Can I use this Actor as an API?

Yes. Call the endpoint shown in Use it as a live API with your Apify token and read the JSON in the response.

Can I connect it to Google Sheets, Make, Zapier or n8n?

Yes. Use the Apify integrations for each tool, or call the endpoint from any HTTP module. Scheduled Tasks can push fresh data to your sheet or workflow.

Can I run it on a schedule?

Yes. Create a Task with your input and add a schedule in Apify Console.

Am I charged for failed runs or empty results?

You are charged only for records actually returned.

Support

Questions or a missing field? Open an issue from the Issues tab on this Actor's page.

Data is collected from publicly available UFC pages for research, analytics and editorial use. You are responsible for using it in line with applicable law and the source's terms. Do not use it to harass individuals or for any unlawful purpose.

Preview

How the UFC Scraper: Fighters, Events & Rankings works