HYROX Cape Town 2026: Open Men results

717 finishers on 4 Apr 2026. Typical finish 1:37:27, fastest 10% under 1:16:13. Back to the analysis.

# Athlete Age Time Behind 1st Runs Stations Rox Ski Push Pull BBJ Row Carry Lunge WB
1 Mathieu Cros 🇫🇷 FRA1st of 141 aged 35-39 35-39 1:02:26 29:58 29:33 2:59 4:13 2:18 4:03 4:09 4:35 1:37 3:38 5:00
2 Francois Marais 🇿🇦 RSA1st of 144 aged 25-29 25-29 1:03:08 0:42 33:03 25:08 5:01 4:09 2:35 3:40 3:03 4:18 1:28 — 4:12
3 Ewan Hickling 🇿🇦 RSA2nd of 144 aged 25-29 25-29 1:04:44 2:18 33:29 27:49 3:31 4:00 2:04 3:27 3:32 4:23 1:37 3:46 5:00
4 Niko Velasco 🇿🇦 RSA3rd of 144 aged 25-29 25-29 1:06:14 3:48 32:34 29:56 3:48 4:10 2:04 3:48 5:05 4:25 1:47 4:04 4:33
5 Zeo Solomons 🇿🇦 RSA4th of 144 aged 25-29 25-29 1:06:31 4:05 34:13 29:10 3:12 4:11 2:51 3:51 3:07 4:29 2:01 2:44 5:56
6 Ethan Gouws 🇿🇦 RSA1st of 146 aged 30-34 30-34 1:06:58 4:32 34:44 29:00 3:18 4:11 2:49 3:52 3:03 4:32 2:03 4:03 4:27
7 Ry Steer 🇿🇦 RSA2nd of 146 aged 30-34 30-34 1:07:01 4:35 33:59 29:55 3:11 4:14 3:13 3:44 2:19 4:37 1:35 3:32 6:41
8 Ross McLean 🇿🇦 RSA3rd of 146 aged 30-34 30-34 1:07:24 4:58 35:20 28:33 3:36 4:21 2:46 3:24 3:10 4:22 1:28 3:37 5:25
9 Kyle Botha 🇿🇦 RSA2nd of 141 aged 35-39 35-39 1:07:32 5:06 36:40 27:11 3:46 4:03 2:16 3:49 3:49 4:19 1:56 3:37 3:22
10 Dalton April 🇿🇦 RSA4th of 146 aged 30-34 30-34 1:07:35 5:09 34:21 29:44 3:35 4:04 2:47 4:05 3:52 4:33 1:33 3:48 5:02
11 Jason Fourie 🇿🇦 RSA5th of 146 aged 30-34 30-34 1:07:42 5:16 33:59 30:29 3:20 3:53 2:37 3:32 4:18 4:32 1:55 3:52 5:50
12 Matthew Duncan 🇿🇦 RSA6th of 146 aged 30-34 30-34 1:07:55 5:29 35:17 29:19 3:24 4:18 2:32 3:10 4:29 4:33 1:44 3:38 4:55
13 Wilfred Okoth 🇰🇪 KEN5th of 144 aged 25-29 25-29 1:07:59 5:33 31:58 32:35 3:30 4:20 2:51 4:47 2:54 4:35 2:36 3:34 6:58
14 Sibusiso Buthelezi 🇿🇦 RSA1st of 43 aged 45-49 45-49 1:08:12 5:46 33:57 30:51 3:29 4:07 2:24 3:46 3:57 4:19 2:02 3:52 6:24
15 Wium Hattingh 🇿🇦 RSA7th of 146 aged 30-34 30-34 1:08:26 6:00 35:22 29:38 3:29 4:15 2:32 3:12 4:15 4:25 1:40 4:01 5:18
16 Cornel Havemann 🇿🇦 RSA8th of 146 aged 30-34 30-34 1:08:39 6:13 35:37 29:09 3:57 3:58 2:17 4:00 2:58 4:28 1:59 3:58 5:31
17 Tristan van Moerkerken 🇿🇦 RSA9th of 146 aged 30-34 30-34 1:08:47 6:21 36:06 29:09 3:35 3:56 2:17 3:49 3:42 4:05 1:56 4:06 5:18
18 Callaghn Nel 🇿🇦 RSA6th of 144 aged 25-29 25-29 1:08:54 6:28 38:00 26:58 4:00 4:01 2:27 2:55 3:20 4:08 1:41 3:45 4:41
19 Robert Young 🇿🇦 RSA7th of 144 aged 25-29 25-29 1:08:57 6:31 34:28 31:03 3:29 4:06 2:38 4:33 4:19 4:23 1:59 4:19 4:46
20 Reggie Mboya 🇰🇪 KEN8th of 144 aged 25-29 25-29 1:09:00 6:34 33:39 31:48 3:39 4:13 2:54 4:18 3:29 4:41 1:42 3:49 6:42
21 George du Plooy 🇿🇦 RSA1st of 103 aged 16-24 16-24 1:09:14 6:48 36:38 29:03 3:37 4:01 2:10 3:51 3:26 4:03 2:02 3:27 6:03
22 Sipho Lunga 🇿🇦 RSA10th of 146 aged 30-34 30-34 1:09:32 7:06 34:57 31:02 3:36 4:19 2:36 4:06 3:13 4:46 1:57 3:40 6:25
23 Shaun Rubenstein 🇿🇦 RSA1st of 93 aged 40-44 40-44 1:09:33 7:07 35:17 29:28 4:51 3:49 1:44 3:07 3:43 4:19 1:23 4:25 6:58
24 Ryan Doubell 🇿🇦 RSA9th of 144 aged 25-29 25-29 1:09:58 7:32 37:12 28:53 3:56 3:52 1:58 4:03 3:45 4:18 1:36 3:41 5:40
25 Mlondi Mashinini 🇿🇦 RSA2nd of 93 aged 40-44 40-44 1:09:59 7:33 35:09 31:08 3:48 4:29 2:26 4:30 3:42 4:36 1:35 4:15 5:35
26 Alex Macphail 🇿🇦 RSA3rd of 141 aged 35-39 35-39 1:10:04 7:38 36:44 29:29 3:55 4:06 2:27 4:19 4:19 4:27 1:29 3:45 4:37
27 Marlowe Brett 🇿🇦 RSA11th of 146 aged 30-34 30-34 1:10:18 7:52 36:03 29:52 4:28 3:52 2:13 4:40 3:30 4:28 1:54 4:11 5:04
28 Dirk Herbst 🇿🇦 RSA2nd of 103 aged 16-24 16-24 1:10:34 8:08 36:20 30:29 3:49 3:58 2:27 4:08 4:42 4:32 1:58 4:35 4:09
29 Gerrie van Dalen 🇿🇦 RSA3rd of 103 aged 16-24 16-24 1:10:46 8:20 37:22 29:38 3:48 3:49 2:08 3:18 4:28 4:21 1:54 4:37 5:03
30 Tristan le Forestier 🇿🇦 RSA10th of 144 aged 25-29 25-29 1:10:58 8:32 38:12 29:22 3:29 4:15 2:31 3:29 3:57 4:26 1:36 3:45 5:23
31 Martin Roux 🇿🇦 RSA11th of 144 aged 25-29 25-29 1:11:05 8:39 37:08 30:20 3:42 4:03 2:54 4:00 3:38 4:29 1:47 3:55 5:34
32 Brendon Warne 🇿🇦 RSA4th of 103 aged 16-24 16-24 1:11:33 9:07 37:57 28:45 4:56 4:14 2:21 3:32 3:33 4:32 1:43 3:44 5:06
33 Luc Durandt 🇿🇦 RSA4th of 141 aged 35-39 35-39 1:11:34 9:08 39:12 28:46 3:41 4:14 2:17 3:06 4:30 4:27 1:45 3:57 4:30
34 Jonny Brown 🇿🇦 RSA5th of 103 aged 16-24 16-24 1:11:47 9:21 34:52 32:31 4:30 3:52 3:03 3:24 4:05 4:34 1:52 4:28 7:13
35 Dustin Carr 🇿🇦 RSA3rd of 93 aged 40-44 40-44 1:11:59 9:33 36:24 31:47 3:54 4:17 2:47 4:25 4:09 4:44 1:56 3:55 5:34
36 Divan Oosthuizen 🇿🇦 RSA6th of 103 aged 16-24 16-24 1:12:03 9:37 37:01 30:35 4:30 4:12 2:28 4:12 4:03 4:43 1:46 3:43 5:28
37 Carel Bamberger 🇿🇦 RSA5th of 141 aged 35-39 35-39 1:12:12 9:46 38:00 30:30 3:47 4:23 2:29 4:14 4:14 4:49 1:39 3:45 4:57
38 Greg McDermott 🇬🇧 GBR6th of 141 aged 35-39 35-39 1:12:12 9:46 35:59 32:25 3:52 4:18 2:50 4:26 4:49 4:44 1:51 4:13 5:14
39 Brian Dolphin 🇿🇦 RSA12th of 146 aged 30-34 30-34 1:12:18 9:52 38:09 29:46 4:28 4:07 1:59 3:43 4:41 4:27 1:36 3:57 5:16
40 Alexio dos Santos 🇿🇦 RSA12th of 144 aged 25-29 25-29 1:12:19 9:53 37:53 30:38 3:53 4:02 2:19 4:01 3:23 4:29 1:48 3:58 6:38
41 Ryan Basson 🇿🇦 RSA7th of 103 aged 16-24 16-24 1:12:51 10:25 37:23 31:40 3:54 3:54 2:12 3:59 4:02 4:17 2:01 4:31 6:44
42 Jean-Claude Fernandes 🇿🇦 RSA13th of 144 aged 25-29 25-29 1:13:00 10:34 38:17 30:39 4:09 4:03 2:25 4:08 3:44 4:23 2:22 3:25 6:09
43 Alistair Taylor 🇬🇧 GBR7th of 141 aged 35-39 35-39 1:13:04 10:38 36:53 31:13 5:04 4:07 2:38 3:52 4:22 4:20 1:32 4:34 5:48
44 Benjamin Bouwer 🇳🇱 NED13th of 146 aged 30-34 30-34 1:13:15 10:49 38:15 31:10 3:54 4:01 2:07 3:36 4:59 4:17 1:29 3:15 7:26
45 Myles Usher 🇿🇦 RSA8th of 141 aged 35-39 35-39 1:13:17 10:51 34:21 35:17 3:41 4:14 2:20 4:13 4:29 4:44 1:35 4:06 9:36
46 Phinias Nyendwa 🇿🇲 ZAM14th of 146 aged 30-34 30-34 1:13:18 10:52 38:08 31:00 4:16 4:20 2:31 3:38 4:24 4:46 1:35 3:55 5:51
47 Oliver Friedrich 🇨🇭 SUI9th of 141 aged 35-39 35-39 1:13:24 10:58 37:01 31:35 4:52 4:04 2:19 4:44 3:55 4:28 1:48 4:00 6:17
48 Thomas Lee 🇿🇦 RSA10th of 141 aged 35-39 35-39 1:13:25 10:59 36:12 33:07 4:11 4:46 3:12 3:48 4:12 5:10 1:54 4:21 5:44
49 Rohan Jansen 🇿🇦 RSA11th of 141 aged 35-39 35-39 1:13:26 11:00 40:46 29:05 3:40 4:23 2:40 3:49 3:00 4:29 1:45 3:48 5:11
50 Jur Kranenburg 🇳🇱 NED8th of 103 aged 16-24 16-24 1:13:28 11:02 36:13 33:23 3:56 4:12 2:31 4:10 3:59 4:37 4:13 4:17 5:24
51 Kevin Malaba 🇨🇩 COD14th of 144 aged 25-29 25-29 1:13:28 11:02 36:10 33:33 3:49 4:08 3:33 4:21 3:31 4:40 2:34 3:49 6:57
52 Keke Lehobo 🇿🇦 RSA15th of 144 aged 25-29 25-29 1:13:36 11:10 38:31 30:00 5:11 4:35 2:53 4:26 2:59 4:47 1:51 3:13 5:16
53 Daniel Scheepers 🇿🇦 RSA4th of 93 aged 40-44 40-44 1:13:43 11:17 40:10 29:35 4:03 4:00 2:11 3:48 5:13 4:15 2:00 4:32 3:36
54 Shaun de Villiers 🇿🇦 RSA15th of 146 aged 30-34 30-34 1:13:53 11:27 38:51 30:49 4:18 3:53 2:28 3:14 5:15 4:21 1:55 4:19 5:24
55 Daniel Diedericks 🇿🇦 RSA9th of 103 aged 16-24 16-24 1:14:15 11:49 36:00 34:09 4:12 4:19 2:49 4:37 4:41 4:47 2:17 3:44 6:55
56 Greg Pechey 🇿🇼 ZIM10th of 103 aged 16-24 16-24 1:14:24 11:58 37:45 32:12 4:32 4:32 3:36 4:04 3:41 4:45 2:18 4:29 4:47
57 Nathan Salt 🇿🇦 RSA11th of 103 aged 16-24 16-24 1:14:35 12:09 42:21 28:05 4:14 4:14 2:28 3:04 3:38 4:31 1:36 3:47 4:47
58 Johan Pretorius 🇿🇦 RSA5th of 93 aged 40-44 40-44 1:14:37 12:11 39:11 30:50 4:41 4:03 2:43 3:37 4:28 4:29 1:42 4:30 5:18
59 Johann du Preez 🇿🇦 RSA16th of 146 aged 30-34 30-34 1:14:42 12:16 37:41 31:53 5:12 4:19 2:50 4:19 4:57 4:33 2:03 4:16 4:36
60 George Gearing 🇿🇦 RSA12th of 103 aged 16-24 16-24 1:14:48 12:22 36:27 34:32 3:53 4:17 2:31 6:02 4:20 4:34 2:33 4:42 5:33
61 Willem Johannes van den Berg 🇿🇦 RSA6th of 93 aged 40-44 40-44 1:14:49 12:23 33:52 35:53 5:09 3:50 3:21 4:48 4:47 4:48 1:25 5:24 7:30
62 Ryan Nel 🇿🇦 RSA12th of 141 aged 35-39 35-39 1:14:54 12:28 36:15 34:12 4:30 4:17 2:24 5:01 4:47 4:43 2:22 4:10 6:28
63 Conor Scott Pereira 🇿🇦 RSA13th of 103 aged 16-24 16-24 1:15:03 12:37 38:58 32:17 3:53 4:17 2:28 3:57 4:25 4:30 2:30 4:12 5:58
64 Michael Mactavie 🇿🇦 RSA16th of 144 aged 25-29 25-29 1:15:25 12:59 38:01 33:40 3:50 4:27 3:01 5:00 3:59 4:40 2:02 4:14 6:17
65 Hannes Kotzé 🇿🇦 RSA17th of 146 aged 30-34 30-34 1:15:27 13:01 38:14 33:31 3:47 4:11 3:02 4:30 4:11 4:46 3:51 4:39 4:21
66 Giovanni Schilder 🇿🇦 RSA13th of 141 aged 35-39 35-39 1:15:34 13:08 36:53 32:53 5:53 4:11 2:59 5:37 3:35 4:36 1:52 5:04 4:59
67 Dean Herbert 🇿🇦 RSA18th of 146 aged 30-34 30-34 1:15:35 13:09 40:39 30:48 4:13 4:13 2:44 3:48 4:24 4:42 1:45 4:03 5:09
68 Nic Grobler 🇿🇦 RSA17th of 144 aged 25-29 25-29 1:15:42 13:16 40:04 31:28 4:13 4:14 2:17 3:59 5:14 4:42 1:58 4:58 4:06
69 Mihle Msebenzi 🇿🇦 RSA14th of 103 aged 16-24 16-24 1:15:45 13:19 37:29 34:18 4:03 4:26 3:23 4:25 3:58 4:47 2:09 5:01 6:09
70 Kyle Kennedy 🇿🇦 RSA19th of 146 aged 30-34 30-34 1:15:47 13:21 40:42 30:21 4:48 3:57 2:39 3:46 4:29 4:32 1:50 4:13 4:55
71 Eric Janse van Rensburg 🇿🇦 RSA20th of 146 aged 30-34 30-34 1:15:52 13:26 41:48 29:20 4:48 4:08 2:19 4:20 4:07 4:26 1:45 3:55 4:20
72 Dylan Heubner 🇿🇦 RSA18th of 144 aged 25-29 25-29 1:16:10 13:44 38:20 33:47 4:07 4:42 3:38 5:15 3:00 4:51 2:35 4:18 5:28
73 David Striebel 🇩🇪 GER14th of 141 aged 35-39 35-39 1:16:15 13:49 38:20 33:16 4:44 3:58 3:30 4:31 4:41 4:31 2:25 4:16 5:24
74 Luca Botha 🇿🇦 RSA21st of 146 aged 30-34 30-34 1:16:20 13:54 38:41 33:32 4:10 4:16 2:32 4:09 5:12 4:45 1:58 5:32 5:08
75 Zubair Abrahams 🇿🇦 RSA19th of 144 aged 25-29 25-29 1:16:24 13:58 39:16 32:32 4:42 4:12 3:03 3:42 3:44 4:53 2:13 4:38 6:07
76 Corne du Toit 🇿🇦 RSA15th of 141 aged 35-39 35-39 1:16:42 14:16 40:03 32:35 4:08 4:21 2:34 4:15 4:34 4:39 1:35 4:50 5:47
77 Shaun Burgin 🇿🇦 RSA1st of 23 aged 50-54 50-54 1:16:50 14:24 37:09 35:29 4:15 4:08 2:07 4:46 5:38 4:22 1:40 4:45 8:03
78 Willie du Plessis 🇿🇦 RSA16th of 141 aged 35-39 35-39 1:16:53 14:27 39:32 32:12 5:14 4:27 2:46 3:50 4:37 4:46 1:59 4:07 5:40
79 Ryan Faull 🇿🇦 RSA7th of 93 aged 40-44 40-44 1:16:56 14:30 40:31 31:57 4:32 3:51 2:48 4:28 4:56 4:10 1:32 5:09 5:03
80 Thomas Chemaly 🇿🇦 RSA15th of 103 aged 16-24 16-24 1:16:58 14:32 39:44 32:27 4:51 4:17 3:14 4:23 3:49 4:42 1:50 3:32 6:40
81 Juha van Lill 🇿🇦 RSA20th of 144 aged 25-29 25-29 1:17:09 14:43 37:16 34:03 5:53 4:32 2:15 4:57 6:18 4:56 1:49 4:15 5:01
82 Owen Cook 🇿🇦 RSA8th of 93 aged 40-44 40-44 1:17:20 14:54 39:57 32:29 4:59 4:08 2:33 3:41 6:07 4:27 1:44 5:02 4:47
83 Conrad Heydenrych 🇿🇦 RSA2nd of 23 aged 50-54 50-54 1:17:20 14:54 38:56 33:08 5:20 4:10 2:31 5:09 4:50 4:34 1:51 4:20 5:43
84 Matthew Troost 🇿🇦 RSA21st of 144 aged 25-29 25-29 1:17:21 14:55 37:30 35:28 4:26 4:24 3:05 4:44 5:31 4:26 2:24 4:44 6:10
85 Clint Fredericks 🇿🇦 RSA22nd of 144 aged 25-29 25-29 1:17:35 15:09 34:07 39:16 4:16 4:23 4:18 5:42 5:51 4:51 1:47 3:53 8:31
86 Edgar Mutai 🇰🇪 KEN17th of 141 aged 35-39 35-39 1:17:38 15:12 38:37 34:20 4:46 4:28 3:17 4:38 5:25 4:46 2:10 3:49 5:47
87 Kevin Dooner 🇿🇦 RSA22nd of 146 aged 30-34 30-34 1:17:38 15:12 39:10 34:53 3:38 4:27 3:39 4:09 4:53 4:58 1:50 5:06 5:51
88 Zander Venter 🇿🇦 RSA23rd of 144 aged 25-29 25-29 1:17:43 15:17 39:05 33:07 5:35 4:23 2:23 4:03 5:24 4:56 1:58 4:39 5:21
89 Fayyad Jacobs 🇿🇦 RSA16th of 103 aged 16-24 16-24 1:17:50 15:24 39:29 34:16 4:09 4:22 2:44 3:32 3:52 4:32 2:37 4:37 8:00
90 Keagan Kriel 🇿🇦 RSA23rd of 146 aged 30-34 30-34 1:17:51 15:25 43:47 29:53 4:16 4:29 3:00 3:39 3:12 4:40 1:46 4:20 4:47
91 Jannas van Heerden 🇿🇦 RSA24th of 146 aged 30-34 30-34 1:17:52 15:26 42:16 30:31 5:09 4:23 2:19 3:04 4:45 4:43 1:38 3:51 5:48
92 Ryan Cullingworth 🇿🇦 RSA24th of 144 aged 25-29 25-29 1:17:52 15:26 40:34 32:56 4:27 4:32 2:51 3:54 3:58 4:50 2:00 5:14 5:37
93 Tristan Mouton 🇳🇦 NAM25th of 144 aged 25-29 25-29 1:17:53 15:27 38:34 34:39 4:44 4:02 2:07 4:02 4:38 4:27 1:59 4:09 9:15
94 Sascha Breuss 🇩🇪 GER9th of 93 aged 40-44 40-44 1:17:54 15:28 38:59 34:35 4:25 4:17 2:48 5:01 5:18 4:57 2:08 4:23 5:43
95 Jason Tulk 🇨🇦 CAN2nd of 43 aged 45-49 45-49 1:18:05 15:39 39:53 33:50 4:28 4:18 2:49 3:58 4:34 4:35 2:11 5:23 6:02
96 Lambert Tuyishime 🇿🇦 RSA26th of 144 aged 25-29 25-29 1:18:08 15:42 35:55 38:18 3:55 4:15 2:54 4:27 4:59 4:55 2:33 8:23 5:52
97 Bertus Odendaal 🇿🇦 RSA10th of 93 aged 40-44 40-44 1:18:19 15:53 36:40 36:58 4:46 4:00 2:10 4:21 6:26 4:29 2:13 3:57 9:22
98 Ian Weir 🇿🇦 RSA25th of 146 aged 30-34 30-34 1:18:36 16:10 40:46 32:50 5:04 4:06 2:46 4:38 4:47 4:26 2:08 4:45 5:14
99 John-Louis Farrell 🇿🇦 RSA17th of 103 aged 16-24 16-24 1:18:42 16:16 37:56 35:48 5:03 4:14 3:03 4:58 5:19 4:43 2:18 5:05 6:08
100 Paul Gillingham 🇿🇦 RSA3rd of 23 aged 50-54 50-54 1:18:44 16:18 36:07 38:22 4:15 4:12 2:45 4:43 5:04 4:41 2:08 8:15 6:34
How to read

The place is among timed finishers in Open Men; the line under the name is the place in the age group. Behind 1st is the gap to the winning time. Tap a time for that race's full report, or a name for every race of that athlete.

The RoxHype app

Found your result? Beat it at your next race.

The RoxHype app is your training plan to race day: built from your splits, your kit and your race date, and adjusted every week.

  • A week-by-week plan that counts down to your race
  • Extra work on your slowest stations
  • Adjusts every week to what you actually did

Free to download. Used by more than 40,000 HYROX athletes.

RoxHype app home: days to your HYROX, your expected finish range and this week's sessions RoxHype workout player guiding a sled push, with the next exercise lined up
Find my result