UFC Scraper avatar

UFC Scraper

Pricing

from $0.50 / 1,000 results

Go to Apify Store
UFC Scraper

UFC Scraper

UFC and PFL fight cards from ESPN, one row per bout with the weight class, both fighters' records, the winner, and the round and time the fight ended. Pick a date to get every bout of that night's card, or leave the dates empty for the current cards.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

deriverge s.r.o.

deriverge s.r.o.

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

8 days ago

Last modified

Share

UFC Scraper reads UFC and PFL fight cards from ESPN and returns one row per bout: the event, the weight class, both fighters with their records and countries, the winner, and the round and time the fight ended. Pick the date of a card and click Start; Noche UFC on 12 September 2026 came back as 13 rows, one for each bout. The method of victory, such as knockout, submission or decision, is not part of the output. It costs $1.00 per 1,000 results on the Free plan ($0.50 on Business), and the $5 of monthly credit in Apify's Free plan covers about 5,000 results.

What does a bout row contain?

FieldDescription
league, namePromotion (ufc or pfl) and event, e.g. UFC Fight Night: Rosas Jr. vs. Barcelos.
gameIdESPN's ID of the bout.
roundWeight class of the bout, e.g. Bantamweight. Women's divisions start with W, as in W Strawweight, and bouts at an agreed weight show Catch Weight.
participantsThe two fighters in ESPN's order, each with name, location (the country), record and winner.
participants[0].recordWins, losses and draws as ESPN lists them, e.g. 18-10-2.
participants[0].periodScoresFor a bout decided by the judges, the three judges' scores added up, e.g. 86 against 85. Empty when the fight ended early.
period, clockRound in which the bout ended and the time in that round. 3 and 5:00 means the full three rounds; 1 and 1:02 is a first-round finish.
status, statusDetailpre with the start time in US Eastern time before the card, post and Final after it.
startsAtStart of the part of the card the bout is on, in UTC, so the preliminary bouts share one time and the main card another.
venueArena, city, state and country, e.g. Meta APEX in Las Vegas.
broadcastsUS channels ESPN lists, e.g. Paramount+.
urlThe card's fight center page on espn.com.

home and away are always null, because a bout has no home side. MMA news rows hold ESPN's MMA stories with title, summary, publishedAt and url.

How to scrape UFC fight results

  1. In Leagues, keep ufc and pfl or remove one. ufc also carries Dana White's Contender Series and the Noche UFC events.
  2. Leave What to return on Fight cards and results, or pick MMA news for ESPN's MMA stories. ESPN has no tables, teams or rosters for MMA.
  3. Enter the event date in From date and To date, as the card is dated in the US. The date 26 September 2026 covers all 12 bouts of that night, including main card bouts that started on 27 September in UTC.
  4. Choose Finished in Game status for results, or Not started yet for announced bouts.
  5. Click Start and open the Output tab. Every bout is a row in the table, which you can export as CSV, Excel or JSON or read through the API:
{
"leagues": ["ufc", "pfl"],
"mode": "scoreboard",
"dateFrom": "2026-09-26",
"dateTo": "2026-09-26",
"statusFilter": "final"
}

Example output

A bout that went to the judges, from a run on 30 September 2026.

{
"key": "espn:ufc:401914469",
"type": "game",
"sport": "mma",
"league": "ufc",
"leagueName": "Ultimate Fighting Championship",
"gameId": "401914469",
"name": "UFC Fight Night: Rosas Jr. vs. Barcelos",
"shortName": "UFC Fight Night",
"round": "Bantamweight",
"startsAt": "2026-09-26T21:00:00.000Z",
"status": "post",
"statusDetail": "Final",
"completed": true,
"period": 3,
"clock": "5:00",
"seasonYear": 2026,
"seasonType": "regular-season",
"home": null,
"away": null,
"venue": {
"name": "Meta APEX",
"city": "Las Vegas",
"state": "NV",
"country": "USA",
"indoor": true
},
"attendance": null,
"neutralSite": false,
"broadcasts": [
"Paramount+"
],
"odds": null,
"url": "https://www.espn.com/mma/fightcenter/_/id/600061266/league/ufc",
"participants": [
{
"id": "3154389",
"kind": "athlete",
"name": "Alatengheili",
"shortName": "Alatengheili",
"location": "China",
"score": null,
"winner": true,
"record": "18-10-2",
"position": 2,
"homeAway": null,
"periodScores": [
86
],
"logo": "https://a.espncdn.com/i/teamlogos/countries/500/chn.png"
},
{
"id": "4063869",
"kind": "athlete",
"name": "John Castaneda",
"shortName": "J. Castaneda",
"location": "USA",
"score": null,
"winner": false,
"record": "21-9-1",
"position": 1,
"homeAway": null,
"periodScores": [
85
],
"logo": "https://a.espncdn.com/i/teamlogos/countries/500/usa.png"
}
]
}

Finishes, decisions and upcoming cards

A finish and a decision look different in the row. When a fight ends early, period and clock give the round and the time and periodScores stays empty: the main event of 26 September 2026 ended in round 5 at 1:38. When it goes the distance, clock shows 5:00 in the last round and periodScores holds each fighter's points from the three judges added together.

Scheduled bouts appear as soon as ESPN lists them, with status set to pre, both fighters and their records. On 27 September 2026 the PFL card in Chicago on 16 October was already listed with 14 bouts. With both dates empty, a run returns the card ESPN treats as current in each promotion; that day it was the UFC card from the night before and the coming PFL card. A scheduled run with Return only what changed since the last run and a Watch name returns a bout when it first appears and again when its status text or its winner changes, for example when it turns Final.

How much does it cost to scrape UFC results?

Free planStarterScaleBusiness
1,000 results$1.00$0.80$0.65$0.50

You pay only for the events in the table. There is no start fee, and compute time and proxies are included.

A card of 13 bouts costs $0.013 on the Free plan and $0.0065 on Business.

Limits

  • The method of victory, strike and takedown statistics, rankings and a title-fight flag are not in the output.
  • ESPN listed no betting lines for UFC or PFL bouts in September 2026, so odds stays null.
  • attendance is null for MMA events.
  • A run covers at most 120 days. It stops at the 200 rows prefilled in Maximum rows, or at 2,000 when that field is left out.

FAQ

Fight results and cards are public sports facts that ESPN shows to everyone, and the actor reads them from ESPN's public JSON feeds without an account. Fighters appear with their name, country and record because those are part of the result; nothing else about them is collected. You are responsible for how you use the data.

How can I tell the main event and the main card?

Rows follow the order of the card, so the main event is the last row of each event. The main card bouts share the latest startsAt of the event, and the preliminary bouts an earlier one.

Support

This actor is built and maintained by deriverge s.r.o., a software company based in the Czech Republic. If a run fails or a field you need is missing, please open an issue in the Issues tab or write to us at info@deriverge.com. We respond in English and Czech. Runs can be scheduled in Apify Console or started from the API tab, which has examples for Python, JavaScript and cURL and works with Make, Zapier, n8n and the Apify MCP server. If the actor saves you time, a short review helps other people find it.