HYROX Race Results Scraper avatar

HYROX Race Results Scraper

Pricing

from $1.00 / 1,000 record scrapeds

Go to Apify Store
HYROX Race Results Scraper

HYROX Race Results Scraper

Scrape race results from results.hyrox.com — HYROX's official timing portal. Extracts rank, finish time, age group, nationality, and all 8 station splits (SkiErg, Sled Push, Sled Pull, Burpee Broad Jump, Row, Farmers Carry, Sandbag Lunges, Wall Balls). All seasons and divisions supported.

Pricing

from $1.00 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

16

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Share

Scrape finisher results and per-station split times from results.hyrox.com — the official HYROX timing portal (mikatiming platform).

The first and only HYROX results actor on Apify. Extracts the per-station functional-fitness splits that coaches and athletes optimize against: SkiErg, Sled Push, Sled Pull, Burpee Broad Jump, Rowing, Farmers Carry, Sandbag Lunges, and Wall Balls — plus all 8 running legs, overall rank, age group, nationality, and bib number.

Complete events, not samples: a single race day runs to thousands of finishers, and the actor returns all of them. 2026 New York returns 25,797 results across its 33 race-day divisions.

What it scrapes

FieldDescription
season, event_name, event_dateSeason number, event (city + year), and race date where the event names one
divisionDivision and race day, e.g. HYROX PRO - Fri, 29 May
athlete_nameAthlete, or both team members for doubles and relay
genderM (men), W (women), X (mixed)
age_group, nationality, bibAge bracket, 3-letter country code, bib number
overall_rank, age_rankRank overall and within the age group
overall_time, run_total_time, roxzone_timeFinish time, total running time, total transition time
station_splits, run_splitsAll 8 station and all 8 running leg times (JSON string)
penalty, bonusTime added or credited at a station, as published (e.g. SLED PULL (60s))
status, disqual_reasonfinished, DSQ (with the published reason) or no_result_recorded
detail_urlLink to the athlete's result page

Covers every division: HYROX, HYROX PRO, HYROX DOUBLES, HYROX PRO DOUBLES, HYROX TEAM RELAY, HYROX ADAPTIVE and Youngstars.

Input

FieldTypeDescription
maxItemsintegerMaximum records to scrape (required)
seasonsarraySeason numbers, e.g. ["7", "8"]. Use ["all"] for every season. Empty = the live season
eventFilterstringCity/year substring filter, e.g. "New York"
divisionFilterstringDivision substring filter, e.g. "HYROX PRO" or "Sat, 30 May"
includeStationSplitsbooleanFetch detail pages for station splits (default: true)
includeNonFinishersbooleanAlso return entrants with no finish time (default: false)

Leave seasons empty and the run follows whichever season HYROX is currently racing — no input change when a new one opens.

Non-finishers

Published rankings only list athletes who finished. Turn includeNonFinishers on and the run also returns the entrants who did not: those disqualified, with the reason as published, and those who registered with no result recorded — the platform does not say whether they withdrew or never started, so neither does the actor. They come back with the same identity as any other record: name, bib, division, age group and nationality.

They are not in the rankings, so finding them means a second pass over each division, and each one bills one extra record event on top of its own. Off by default; an ordinary run costs exactly what it did before. 2026 New York returns 2,846 of them alongside its 25,797 finishers — a tenth of the entry list, including two race days whose results were never published at all.

Each race day is its own division. Combined "Overall" and "Week" standings repeat those same athletes, so they are left out and every finisher comes back exactly once. Name one in divisionFilter (e.g. "HYROX - Overall") if you want the combined standing instead.

Example output

{
"season": "8",
"event_name": "2026 New York",
"event_date": "2026-05-29",
"division": "HYROX PRO - Fri, 29 May",
"athlete_name": "Bruegmann, Jendrik",
"gender": "M",
"nationality": "GER",
"age_group": "25-29",
"bib": "175019",
"overall_rank": 1,
"age_rank": 1,
"overall_time": "01:03:30",
"run_total_time": "00:32:41",
"roxzone_time": "00:03:38",
"station_splits": "{\"skierg\":\"00:04:09\",\"sled_push\":\"00:02:57\",\"sled_pull\":\"00:03:49\",\"burpee_broad_jump\":\"00:03:38\",\"row\":\"00:04:13\",\"farmers_carry\":\"00:01:19\",\"sandbag_lunges\":\"00:03:31\",\"wall_balls\":\"00:04:09\"}",
"run_splits": "{\"run1\":\"00:03:51\",\"run2\":\"00:03:39\",\"run3\":\"00:03:56\",\"run4\":\"00:03:58\",\"run5\":\"00:04:07\",\"run6\":\"00:03:51\",\"run7\":\"00:04:07\",\"run8\":\"00:05:12\"}",
"status": "finished",
"detail_url": "https://results.hyrox.com/season-8/?content=detail&..."
}

Performance

  • With station splits: one detail page per athlete
  • Set includeStationSplits: false for list-only results — far faster and much cheaper when you only need rank, name, gender, nationality, age group and finish time
  • 2026 New York, list-only: 25,797 results in about 4.5 minutes
  • With station splits, at the default 1024 MB: roughly 3.7 records per second. Raising memory raises throughput almost in step, because the run is limited by how much CPU the memory setting buys, not by the site

Resuming a large crawl

Every run emits a resumeCursor in its Output. If a large crawl stops before it finishes — because it hit maxItems, your spend cap (maxTotalChargeUsd), or was aborted — start a new run with the same input plus that resumeCursor to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

  • You are not re-charged for records the earlier run already delivered.
  • Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its resumeCursor is no longer valid.
  • resumeCursor is opaque — supply it unmodified.

Seasons

HYROX seasons run August–July, and the actor reads the season list from the site on every run. Leave seasons empty for the season being raced now, name the ones you want (["7", "8"]) for history, or pass ["all"] for every season HYROX has published.

Use cases

  • Athlete performance tracking and year-over-year split analysis
  • Coaching: identify which station is limiting race time
  • Competition analytics for HYROX content sites and apps
  • Building leaderboards and ranking tools