CrossFit results API
CrossFit results API
Overall placings and individual workout performances, with the raw source value kept alongside every decoded field.
Plans from $15 a month.
What a rank leaves out
Most of what people want to build needs more than a finishing position. It needs the workout scores: how many reps, at what time, with which tiebreak, whether the entry was validated, whether a video was submitted.
Those scores are the messiest part of the source. The same field holds a rep count in one season and a packed integer in another; the Games use points with a tiebreak inside a display string. Decoding it wrong is worse than not decoding it, because a confidently wrong number propagates into everything built on top.
So the raw value is stored as the record and every decoded field is allowed to be null. If we cannot read a score honestly, you still get exactly what the source published.
Endpoints
| Method | Path | What it returns |
|---|---|---|
| GET | /v1/athletes/{id}/results | Every result, with workout breakdowns |
| GET | /v1/results/{id} | One result and its workout scores |
| GET | /v1/workouts/{id} | A workout, its score type and derived cap |
Example
Request
curl "https://api.crossfitapi.com/v1/athletes/jeffrey-adler-469656/results" \
-H "Authorization: Bearer cfapi_live_..."Response
{
"data": [{
"year": 2026, "competition": "Open", "division": "men",
"rank": 3, "scaled": "rx",
"workout_results": [{
"ordinal": 1, "workout": "26.1", "rank": 12,
"score_raw": "3540044",
"score_display": "11:16",
"reps": 354, "time_seconds": 676
}]
}]
}What is covered
- Overall results for every imported competition and division.
- Workout-level scores with rank, validity, scaled status and video flag.
- Decoded reps, time and tiebreak where the encoding is known.
- score_raw on every workout result, always.
- Judge names are published upstream and are deliberately not stored.
Coverage grows as each season finishes importing . A season appears there once it is imported and reconciled.
What people build with it
Comparison tools
Put two athletes side by side, workout for workout.
Scouting
Find athletes strong on a specific movement pattern.
Commentary
Pull the numbers a broadcast needs, during the event.
Have a look at the data first
The docs and the live explorer are open, so you can see what comes back before you pay for anything.