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.
$ 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.