HYROX Race Results Scraper
Pricing
$0.90 / 1,000 race results
HYROX Race Results Scraper
Collect published HYROX race results from the official timing portal. Choose seasons, events, divisions, and summary or detailed splits. Get rankings, times, participant details, result status, and official result links when available in a dataset.
Pricing
$0.90 / 1,000 race results
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
🏁 HYROX race results for focused analysis
Coaches, athletes, sports analysts, and developers can collect the complete published HYROX race results for selected seasons, events, and divisions. Each row keeps participant or team context, ranks, times, result status, and official source links when available, with detailed station and running-leg splits when the source publishes them. Use the rows for performance analysis, ranking tools, and downstream data workflows.
- Review published ranks and times with HYROX Results.
- Choose races and divisions to collect with HYROX Events.
- Collect 2026 race data with HYROX Races 2026.
- Check one city's published results with HYROX Phoenix Results.
- Check published entrants and result status with HYROX Start List.
🧾 Published HYROX result rows
Each row represents one published participant or team result from the public HYROX timing portal. It can include the event, division, race date, gender, age group, nationality, bib, rank, time, result status, and official result link when available. Detailed runs can also include station and running-leg split arrays. The Actor preserves published station penalties and time bonuses when they are present.
▶️ Choose the race scope and detail level
Run one shared scope at a time. Pick the seasons, event names, and division names shown by the official timing portal. Supported formats include Standard, PRO, Doubles, Relay, Adaptive, and Youngstars. Choose summary for core fields or detailed for station and running-leg splits when the source publishes them. Turn on non-finishers to include published disqualified entrants and entrants with no recorded result.
- Open the Actor input.
- Enter one or more seasons, events, and divisions from the official timing portal.
- Choose
SummaryorDetailed splits, then choose whether to include non-finishers. - Run the Actor and open the
resultslink in the Output tab.
⚙️ Input
Each run uses one set of seasons, events, and divisions. Choose summary results or detailed results with station and running-leg splits when the official source publishes them. Include published disqualified entrants and registered entrants with no recorded result alongside ranked finishers.
Input fields
| Field | Type | What it does |
|---|---|---|
seasons | array of strings | Names one or more seasons or years shown by the official HYROX timing portal. |
events | array of strings | Names one or more HYROX events shown by the official timing portal. |
divisions | array of strings | Names one or more competition divisions. Supported formats include Standard, PRO, Doubles, Relay, Adaptive, and Youngstars. |
detailLevel | string | Chooses summary for core result fields or detailed for station and running-leg splits when published. |
includeNonFinishers | boolean | Adds published disqualified entrants and registered entrants with no recorded result alongside ranked finishers. |
Example input
This small input is from a successful current-beta run.
{"seasons": ["2026"],"events": ["2026 Amsterdam"],"divisions": ["Men"],"detailLevel": "summary","includeNonFinishers": false}
🧾 Output
Open the results output link to read the default dataset. Rows use one public dataset schema. Summary and detailed runs differ in which optional fields are returned by the selected detail level and the source.
Output link
| Field | Type | What it does |
|---|---|---|
results | link | Opens the collected HYROX race results in the default dataset view. |
Summary result rows
Summary rows contain the core result fields below. A field is omitted when the official source does not publish it. Summary rows do not include stationSplits or runningLegSplits.
| Field | Type | What it does |
|---|---|---|
season | string | Shows the season published by the official timing portal. |
eventName | string | Shows the HYROX event name. |
raceDate | date string | Shows the published race date when available. |
division | string | Shows the competition division. |
gender | string | Shows the published gender category when available. |
ageGroup | string | Shows the published age-group category when available. |
entryName | string | Shows the published participant or team name. |
nationality | string | Shows the published nationality or country value. |
bib | string | Shows the published bib number or label. |
resultStatus | string | Shows the published status: finished, didNotFinish, disqualified, or noResult. |
disqualificationReason | string | Shows the published disqualification reason when available. |
overallRank | integer | Shows the published overall rank when available. |
ageGroupRank | integer | Shows the published age-group rank when available. |
finishTime | string | Shows the published finish time in the source time format when available. |
runningTotalTime | string | Shows the published running-total time when available. |
transitionTime | string | Shows the published transition time when available. |
sourceResultUrl | URL string | Links to the official source result page when available. |
This is a genuine summary row from a successful current-beta run.
{"season": "2026","eventName": "2026 Amsterdam","division": "HYROX PRO DOUBLES - Wednesday","entryName": "Chaabane, Leonie (NED) / Serrant, Vannah (NED)","nationality": "NED","bib": "124013","resultStatus": "finished","ageGroup": "35-39","gender": "Mixed","overallRank": 1,"ageGroupRank": 1,"finishTime": "01:22:50","runningTotalTime": "00:46:17","transitionTime": "00:06:37","sourceResultUrl": "https://results.hyrox.com/season-8/?content=detail&fpid=search&pid=search&idp=LR3MS4JI456FBE&lang=EN_CAP&event=HDP_LR3MS4JI1236&num_results=100&pidp=ranking_nav&ranking=time_finish_netto&search%5Bsex%5D=X&search%5Bage_class%5D=%25&search_event=HDP_LR3MS4JI1236&event_main_group=2026+Amsterdam"}
Detailed result rows
Detailed rows use the complete field set below when the source publishes each value. Nested paths show the fields inside each split object.
| Field | Type | What it does |
|---|---|---|
season | string | Shows the season published by the official timing portal. |
eventName | string | Shows the HYROX event name. |
raceDate | date string | Shows the published race date when available. |
division | string | Shows the competition division. |
gender | string | Shows the published gender category when available. |
ageGroup | string | Shows the published age-group category when available. |
entryName | string | Shows the published participant or team name. |
nationality | string | Shows the published nationality or country value. |
bib | string | Shows the published bib number or label. |
resultStatus | string | Shows the published status: finished, didNotFinish, disqualified, or noResult. |
disqualificationReason | string | Shows the published disqualification reason when available. |
overallRank | integer | Shows the published overall rank when available. |
ageGroupRank | integer | Shows the published age-group rank when available. |
finishTime | string | Shows the published finish time in the source time format when available. |
runningTotalTime | string | Shows the published running-total time when available. |
transitionTime | string | Shows the published transition time when available. |
stationSplits | array of objects | Lists published station splits in race order. |
stationSplits[].stationNumber | integer | Shows the station's position in the race. |
stationSplits[].stationName | string | Shows the published station name. |
stationSplits[].splitTime | string | Shows the station split time. |
stationSplits[].runningTotalTime | string | Shows the running-total time at the station when available. |
stationSplits[].penaltyTime | string | Shows the published station penalty time when available. |
stationSplits[].bonusTime | string | Shows the published station bonus time when available. |
runningLegSplits | array of objects | Lists published running-leg splits in race order. |
runningLegSplits[].legNumber | integer | Shows the running leg's position in the race. |
runningLegSplits[].splitTime | string | Shows the running-leg split time. |
runningLegSplits[].runningTotalTime | string | Shows the running-total time after the running leg when available. |
sourceResultUrl | URL string | Links to the official source result page when available. |
This is a genuine detailed row from a successful current-beta run.
{"season": "2026","eventName": "2026 Amsterdam","division": "HYROX - Sunday","entryName": "Maref, Awin (NED)","nationality": "NED","bib": "120037","resultStatus": "finished","ageGroup": "35-39","gender": "Men","overallRank": 1,"ageGroupRank": 1,"finishTime": "01:48:58","runningTotalTime": "00:49:56","transitionTime": "00:09:48","stationSplits": [{"stationNumber": 1,"stationName": "1000m SkiErg","splitTime": "00:05:17","runningTotalTime": "00:04:50"},{"stationNumber": 2,"stationName": "50m Sled Push","splitTime": "00:03:27","runningTotalTime": "00:10:43"},{"stationNumber": 3,"stationName": "50m Sled Pull","splitTime": "00:06:23","runningTotalTime": "00:17:01"},{"stationNumber": 4,"stationName": "80m Burpee Broad Jump","splitTime": "00:10:51","runningTotalTime": "00:23:25"},{"stationNumber": 5,"stationName": "1000m Row","splitTime": "00:06:01","runningTotalTime": "00:29:58"},{"stationNumber": 6,"stationName": "200m Farmers Carry","splitTime": "00:02:14","runningTotalTime": "00:36:27"},{"stationNumber": 7,"stationName": "100m Sandbag Lunges","splitTime": "00:05:42","runningTotalTime": "00:42:54"},{"stationNumber": 8,"stationName": "Wall Balls","splitTime": "00:09:25","runningTotalTime": "00:50:00"}],"runningLegSplits": [{"legNumber": 1,"splitTime": "00:04:50","runningTotalTime": "00:04:50"},{"legNumber": 2,"splitTime": "00:05:53","runningTotalTime": "00:10:43"},{"legNumber": 3,"splitTime": "00:06:18","runningTotalTime": "00:17:01"},{"legNumber": 4,"splitTime": "00:06:24","runningTotalTime": "00:23:25"},{"legNumber": 5,"splitTime": "00:06:33","runningTotalTime": "00:29:58"},{"legNumber": 6,"splitTime": "00:06:29","runningTotalTime": "00:36:27"},{"legNumber": 7,"splitTime": "00:06:27","runningTotalTime": "00:42:54"},{"legNumber": 8,"splitTime": "00:07:06","runningTotalTime": "00:50:00"}],"sourceResultUrl": "https://results.hyrox.com/season-8/?content=detail&fpid=search&pid=search&idp=LR3MS4JI456E56&lang=EN_CAP&event=H_LR3MS4JI123A&num_results=100&pidp=ranking_nav&ranking=time_finish_netto&search%5Bsex%5D=M&search%5Bage_class%5D=%25&search_event=H_LR3MS4JI123A&event_main_group=2026+Amsterdam"}
Non-finisher rows use the same fields. Their resultStatus can be disqualified or noResult, and disqualificationReason, ranks, and times are present only when the source publishes them.
💳 Pricing
Billable event
The Actor charges one event for each published participant or team race result saved to the dataset. The current price is shown in the Actor's pricing panel.
🔌 Integrations
After a run, open the results output link to read the default dataset. Use Apify's dataset API or export options to pass the published rows to analysis and other data workflows.
Video guide
❓ FAQ
How do I get the latest HYROX race results for 2026?
Enter 2026 and the event and division names currently shown by the official timing portal. Run the Actor with summary or detailed results, depending on the fields you need.
How do I collect results for one event and division?
Enter the season, event name, and division name shown by the official timing portal. The run uses that shared selection for the requested result detail level.
What is the difference between summary and detailed results?
Summary rows provide the core participant, rank, and time fields. Detailed rows add station and running-leg split arrays when the official source publishes them.
Can I include disqualified entrants and entrants with no recorded result?
Yes. Turn on includeNonFinishers to include those published statuses alongside ranked finishers. The Actor does not infer why an entrant has no recorded result.
Which HYROX division formats are supported?
The input accepts division names for Standard, PRO, Doubles, Relay, Adaptive, and Youngstars formats when the official portal publishes them.
Does the Actor show live race tracking?
No. It collects published results from the public HYROX timing portal and does not provide live tracking, forecasts, or coaching recommendations.
Can an incomplete large collection resume?
Yes. The Actor supports resuming incomplete large collections without re-delivering rows already returned.
What happens when the source does not publish a field?
That field is omitted or left unavailable in the row. The Actor keeps source-published values and does not guess missing facts.
📝 Changelog
v0.0 (28-09-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Olympedia Olympic Results Scraper for normalized Olympic placements and medal results.
- Sofascore Live Events Scraper for live and scheduled sports events, scores, and match context.
- Bassmaster Tournament Results & Standings Scraper for tournament standings, ranks, weights, payouts, and source links.
- HYROX Race Results Scraper for HYROX results with source-specific station split coverage.
- Mikatiming Marathon Results Scraper for marathon finishers and split times from Mikatiming races.
Made with ❤️ by Maxime Dupré