~$roxapi

HYROX results API

HYROX results
in JSON.

Events, finisher lists and splits for every season, over plain HTTP. Pick a plan, create a key and start making requests.

bash — divisions/results
$ curl -H "Authorization: Bearer $KEY" \
    "https://roxapi.dev/api/v1/divisions/1354/results?limit=2"

{
  "data": [
    { "id": 752666, "athlete_name": "Doe, Jane",
      "age_group": "30-34", "total_time_ms": 3579000,
      "rank_overall": 1, "parse_status": "complete" },
    // …
  ],
  "meta": { "cursor": "eyJpZCI6NzUy…", "has_more": true },
  "errors": null
}

Endpoints

GET/api/v1/racesUpcoming races
GET/api/v1/eventsEvents, by season, country or date
GET/api/v1/divisions/{id}/resultsAll finishers of a division
GET/api/v1/athletes/searchLook up an athlete by name
GET/api/v1/athletes/{id}/splitsRun, station and Roxzone splits
GET/api/v1/stats/divisions/{id}Time distributions per division
GET/api/v1/percentileWhere a finish time ranks overall
GET/api/v1/athletes/{id}/pacingRun fade and Roxzone time for one race

There are a few more. See the docs or the OpenAPI file.

Good to know

{ data, meta, errors }

Every response has the same shape, errors included.

X-RateLimit-*

Each response tells you how many requests you have left this minute.

ETag · 304

Results of finished races don't change, so you can cache them.

race_ref

Results we don't have yet get a reference. Ask for it and we fetch it.

Pricing

Starter

€7.99/month
  • 30 requests / minute
  • 500 athlete IDs / 24 h
  • 20 division IDs / 24 h
  • 15 event slugs / 24 h
  • 10 athlete profile slugs / 24 h
  • Percentile, pacing and team-mates
  • Per-station field distributions

Pro

€19.99/month
  • 100 requests / minute
  • 1,500 athlete IDs / 24 h
  • 50 division IDs / 24 h
  • 40 event slugs / 24 h
  • 25 athlete profile slugs / 24 h
  • Percentile, pacing and team-mates
  • Per-station field distributions

Scale

€49.99/month
  • 1,000 requests / minute
  • 5,000 athlete IDs / 24 h
  • 150 division IDs / 24 h
  • 100 event slugs / 24 h
  • 75 athlete profile slugs / 24 h
  • Percentile, pacing and team-mates
  • Per-station field distributions

Billed monthly through Stripe. You can switch plans or cancel from your dashboard. Limits are per account, shared by all your keys.