Simple, transparent pricing
Every plan gets the race data: the catalogue, full finisher lists, per-event stats, individual athlete splits and global division benchmarks. The paid tiers add work you would otherwise have to do yourself — ranking a time against the field, breaking a race down into pacing, and pulling a race apart station by station. Cancel anytime.
Included on every plan
- Upcoming race calendar
- Seasons, events and divisions
- Full finisher lists
- Athlete search and individual splits
- Per-event stats by division, gender and age group
- Global division benchmarks
- OpenAPI spec and bearer tokens
Starter
For side projects and first integrations.
€7.99/month
30 requests / minute
- Upcoming race calendar, months ahead
- Seasons, events, divisions and full finisher lists
- Event stats by division, gender and age group
- Individual athlete splits
- Global per-station division benchmarks
- Bearer tokens + OpenAPI docs
Most popular
Pro
For apps that do something with the numbers.
€19.99/month
100 requests / minute
Everything in Starter
- Upcoming race calendar, months ahead
- Seasons, events, divisions and full finisher lists
- Event stats by division, gender and age group
- Individual athlete splits
- Global per-station division benchmarks
- Bearer tokens + OpenAPI docs
Plus
- Percentile lookup — rank any finish time against the whole catalogue
- Pacing report — run fade, roxzone share and where the time went
- Doubles and relay team-mates
- More than 3x the throughput of Starter
Athlete intelligence
Rank a finish time against every comparable athlete in the catalogue, break a race into run fade and roxzone, and see who someone raced with.
Scale
For platforms comparing whole fields, not single results.
€49.99/month
1,000 requests / minute
Everything in Pro
- Upcoming race calendar, months ahead
- Seasons, events, divisions and full finisher lists
- Event stats by division, gender and age group
- Individual athlete splits
- Global per-station division benchmarks
- Bearer tokens + OpenAPI docs
- Percentile lookup — rank any finish time against the whole catalogue
- Pacing report — run fade, roxzone share and where the time went
- Doubles and relay team-mates
- More than 3x the throughput of Starter
Plus
- Per-station field medians for any race
- Full split distribution by division, gender and age group
- On-demand split harvesting per race
- 10x the throughput of Pro
Advanced split data
Median, average and count per station for a whole race field, split by division, gender and age group.
Already have an account? Log in
Secure Stripe checkout · Manage, upgrade, or cancel anytime from your account
What each plan gets you
Two kinds of benchmark are easy to mix up. Division benchmarks are station averages across every race we hold, on all plans. Advanced split data is the median for one specific race, broken down by division, gender and age group.
| Feature | Starter | Pro | Scale |
|---|---|---|---|
| Data | |||
| Upcoming race calendar Every published HYROX race, months ahead, with dates and location | Included | Included | Included |
| Seasons, events and divisions | Included | Included | Included |
| Full finisher lists per division Every finisher with rank, age group and total time | Included | Included | Included |
| Event stats by division, gender and age group Counts, medians and percentiles for one race | Included | Included | Included |
| Individual athlete splits All 8 runs and 8 stations for one athlete | Included | Included | Included |
| Global per-station division benchmarks Station averages across every race, by division code | Included | Included | Included |
| Ingest status per event Tells you when a race is complete, so you stop polling blind | Included | Included | Included |
| OpenAPI spec and bearer tokens | Included | Included | Included |
| Percentile lookup Where any finish time ranks in the whole catalogue, by division, gender and age group | Not included | Included | Included |
| Pacing report Run fade, roxzone share and where the time actually went, for one race | Not included | Included | Included |
| Doubles and relay team-mates Who an athlete raced with, with a link into each team-mate's own history | Not included | Included | Included |
| Advanced split data Median, average and count per station for a whole race field, split by division, gender and age group | Not included | Not included | Included |
| Limits | |||
| Requests per minute | 30 | 100 | 1,000 |
Every row above is read from the live tier configuration, so this table cannot drift from what the API actually enforces.
Common questions
What HYROX data does the API give me?
Can I build a HYROX leaderboard, athlete profile or race simulator with this?
Does it cover every HYROX season and race?
How fast is the API?
ETag, and repeat reads are answered from
a CDN edge close to your users rather than travelling to the origin at all.
What is the difference between division benchmarks and advanced split data?
HYROX_MEN). They answer
"how does this time compare to HYROX men generally". They are on every plan.
Advanced split data are the median, average and count per station for one specific race,
broken down by division, gender and age group. They answer "how did this athlete compare to the
people who actually stood next to them". Those are on the Scale plan.
Which plan do I need?
What is in the Pro plan that is not in Starter?
Do I still get athlete splits on the cheaper plans?
GET /api/v1/athletes/{id}/splits. What Scale adds is the
aggregated field: the median for every division, gender and age group bucket in a race, which is
expensive to produce because it means reading every finisher in that race.
Is there anything stopping me downloading the whole dataset?
How quickly is a race available after it finishes?
GET /api/v1/events/{slug}/ingest-status so you can check
exactly where a race is instead of polling and guessing.
What about rate limits?
429 Too Many Requests with a
Retry-After header. Check your current limit at
GET /api/user.
Can I cancel or change plans anytime?
What happens to my integration if I cancel?
402 Payment Required instead of data. Nothing is
deleted, so resubscribing later puts the same tokens straight back to work.
Can I cache responses in my own application?
Cache-Control and an
ETag, and a finished race's rankings are marked
cacheable for a week because they never change again. Send the ETag back as
If-None-Match and you get a
304 with no body. Caching to serve your own users is
expected; mirroring the catalogue to redistribute it is not.
Can I filter events by country or date?
GET /api/v1/events takes
season,
country,
from and
to, and pages up to 100 at a time. So "every Belgian
race this season" is one request, not a scan of the catalogue.