Hyrox Result API

Built for HYROX developers

The HYROX results API your product can ship on

Seasons, events, division results, athlete search, station splits, and precomputed stats. One versioned JSON API with a clear OpenAPI contract and predictable responses.

Versioned REST API · OpenAPI 3 · Bearer authentication · Catalog and live resolution

Seasons Events Divisions Results Splits Stats Simulator
Interactive sandbox · no account needed

See exactly what you get back

Pick an endpoint, press Send, and read the real response shape your app will receive — then copy it as cURL, JavaScript, or Python. These are recorded sample payloads, so nothing here needs a key.

GET
Response
200 OK

Press Send to run the request.

Every field above is documented in the full OpenAPI spec.

Benchmarks & stats

Turn raw results into instant benchmarks

Every event and division ships with precomputed statistics: counts, averages, medians, standard deviation and percentiles (p10 to p90) for the finish and all eight stations. One request, no crawling, no number crunching. Drag the slider to see how a goal time lands against a real field.

A finish is

Top %

faster than % of this field

elite back of field

p10

Median

p90

Station medians

GET /v1/stats/divisions/{id} precomputed

What you can build

Skip the scraping and go straight to the product. Here are three things teams ship on day one.

Athlete profile

Show any athlete's full HYROX history

Search by name, then pull race detail, result history, and station splits for a complete profile page.

{
  "data": {
    "name": "A. de Vries",
    "division": "HYROX PRO",
    "total_time_ms": 4021000,
    "splits": { "skiErg_time_ms": 298000 }
  }
}
Event stats dashboard

Division benchmarks by gender and age

One request returns per station medians for an event, bucketed by division, gender, and age group.

{
  "division_key": "HYROX PRO",
  "sex": "M",
  "age_group": "30-34",
  "total_time": { "median_ms": 4098500 }
}
Race simulator and pacing

Know where you stand before race day

Pull percentile benchmarks per division so athletes can set target splits and pacing plans.

{
  "division": "HYROX",
  "sex": "M",
  "percentiles": {
    "p50": { "total_time_ms": 4620000 }
  }
}

See every field in the documentation or explore the OpenAPI spec.

Built with the API

Apps running on HYROX data

Real products and reference builds that ship on this API, from athlete facing simulators to leaderboards and coaching analytics.

Explore the showcase
Start to Hyrox preview

Start to Hyrox

Personalised HYROX training plans & race simulator

A coaching platform that turns a 10-question intake into a personal weekly plan and a race simulator. It uses the API's division benchmarks and per-station statistics to tell athletes exactly how their projected splits compare to the real field.

Training plans Race simulator Athlete-facing
Splitprint preview

Splitprint

Your HYROX race, printed. A 30x40 cm poster of your splits versus the field.

Splitprint turns a HYROX result into a physical print. Athletes search their name and get a poster of their 8 runs and 8 stations, each compared against the median of their own field (gender, division and age group). Printed on 200gsm, shipped flat across Europe.

Physical product Field comparison Athlete-facing

Race Pacing Simulator

Type a goal time, get a station-by-station pacing plan

Let athletes enter a target finish and instantly see the split each station demands, plus the percentile that time lands in for their division, sex and age group.

Simulator Percentiles Pacing

City Leaderboard

Live rankings for any HYROX race, filterable in seconds

A leaderboard that lists every finisher for an event, filterable by division, sex, age group and nation, with cursor pagination for smooth infinite scroll.

Leaderboards Events Rankings

Athlete Profile & History

A complete HYROX résumé for any competitor

Search by name, then render an athlete's every race, finish time and station splits on one profile page, including progression across seasons.

Athlete search Splits History

Coaching Analytics

Find where an athlete leaks time versus the field

A coach dashboard that overlays an athlete's splits on division medians and percentiles, surfacing the stations to prioritise before the next race.

Analytics Coaching Benchmarks

Embeddable Results Widget

Drop-in finish-time widget for media & event sites

A lightweight embeddable widget that shows top finishers and division medians for a race, ideal for event organisers and sports media recaps.

Widget Media Events

Everything HYROX apps need

Purpose built endpoints from season discovery to simulator benchmarks. Integrate once and focus on your product.

Seasons and calendar

Browse seasons and list events with filters for season, country, and date range. Power race finders and event discovery.

Events and divisions

Resolve events by slug, list divisions, and pull result tables for leaderboards, exports, and analytics.

Athletes

Search by name, load race detail, fetch result history, and retrieve station splits for training and post race analysis.

Stats and benchmarks

Division level statistics and race simulator benchmarks with medians by gender and age group.

Catalog or live

Responses include meta.data_source so you know whether rows came from synced catalog data or live resolution.

OpenAPI and interactive docs

Contract first integration with /api/v1/openapi.yaml and Swagger UI at /docs.

Built for real products

Whether you ship leaderboards, training tools, or analytics, the API covers the full HYROX data model.

Leaderboards and event apps

Division results, rankings, and finish times for live and post race experiences across the full HYROX calendar.

Athlete and training tools

Search athletes, pull split times, and compare station performance against field medians.

Analytics and benchmarking

Precomputed stats by division, gender, and age group for simulators, pacing tools, and performance dashboards.

Core endpoints

A focused surface area. Every route documented in OpenAPI.

Method Endpoint Description
GET /v1/seasons List all HYROX seasons
GET /v1/events List events with season and country filters
GET /v1/divisions/{id}/results Paginated division results and rankings
GET /v1/athletes/search Search athletes by name
GET /v1/athletes/{id}/splits Station split times for a race
GET /v1/stats/divisions/{id} Precomputed stats by division, gender, and age group
GET /v1/simulator/benchmarks Race simulator benchmark data

How it works

  1. Subscribe Create an account and activate your plan with secure checkout.
  2. Create a token Issue a personal access token from your dashboard.
  3. Call the API Send Authorization: Bearer … on each request.
  4. Ship Integrate with your app using the OpenAPI contract.

Common questions

Is there an API for HYROX results?
This is it. Every season, every race and every finisher in them — over 2,500 races and more than 1.3 million results — served as versioned JSON with an OpenAPI 3 contract and bearer authentication. No scraping to build, no HTML to parse, and no chasing the source every time it changes shape.
Can I get HYROX station splits for an athlete?
Yes, on every plan. GET /api/v1/athletes/{id}/splits returns all eight runs and all eight stations individually timed for a single race, so you can show exactly where an athlete gained or lost time. Search by name to get the race id, then ask for its splits — two requests from a name to a full station breakdown.
What can I build with it?
Athlete profiles with full race history, division leaderboards, race simulators and pacing tools, and event dashboards comparing a field by division, gender and age group. The showcase on this page is built from live products already running on the API, and commercial use is welcome.
What is the difference between division benchmarks and advanced split data?
Division benchmarks pool station averages across every race in the catalogue, requested by division code such as HYROX_MEN. Advanced split data is the median per station for one specific race, broken down by division, gender and age group, so an athlete is compared against the people who actually raced alongside them. Division benchmarks are on every plan; advanced split data is on the Scale plan.
Do I need a subscription to read the docs?
Documentation and the OpenAPI spec are free on the website. Calling protected API routes requires an account, an active subscription and a bearer token.
How fresh is the data?
The catalogue is synced continuously across the HYROX calendar. Finisher lists are normally in within a day or two of a race, with gender and age group breakdowns at the same time, and advanced split data harvested the following night. Athlete search and detail can resolve live when needed, and every response tells you the source in meta.data_source.
How do I know when a race is fully ingested?
Call GET /api/v1/events/{slug}/ingest-status. It reports whether the rankings are still coming in, how many finishers are stored, and whether the field splits are queued, running or done, so you never have to infer it from the shape of a stats payload. A race weekend runs several days and each division races on one of them, so the response also carries that division's own race day and whether its results are due yet — an empty ranking on the Saturday is a Sunday division, not a stalled ingest.
What are the rate limits?
Each plan has a per minute request limit, applied per account. Exceeding it returns 429 with a Retry-After header telling you exactly how long to wait. Your current limit is on GET /api/user. There are separate protections against bulk extraction of the whole catalogue, set so that an application serving real users does not meet them.
Can I use this for a commercial product?
Yes, and people do. The showcase on this page is built from live products running on the API. If you ship something, tell us and we will happily feature it.
What happens if a race is missing or looks wrong?
Email us. Ingestion is monitored daily, but the source occasionally changes shape and some races genuinely have no published results. Reports get looked at quickly, and a fix usually lands the same day.
How do I find one athlete's races?
Search by given name and surname with GET /api/v1/athletes/search. Each hit carries a race id for that one performance and a person_ref that ties their performances together, so you can go from a name to a full race history and then to station splits without guessing at ids.
Do I have to page through everything?
Only where it makes sense. The event catalogue is paged 50 at a time and takes season, country and date filters, so you ask for the slice you want. Full finisher lists use a cursor, which stays fast on the deepest page of the biggest race rather than degrading the further in you go.
Can I cache the responses?
Yes, and you should. Every read carries Cache-Control and an ETag; a finished race is marked cacheable for a week because its results never change again. Send the ETag back as If-None-Match for a 304 and no body.

Start building on HYROX data today

Subscribe in minutes. Cancel anytime from your account.