Skip to content
CrossFitAPI.com

CrossFit Open API

CrossFit Open API

Every CrossFit Open season from 2011, with divisions, workouts and full leaderboards through one endpoint shape.

Plans from $15 a month.

Why the Open is the hard one

The Open is by far the largest dataset in the sport. A single division of a single recent season runs past 120,000 competitors, and there are more than twenty divisions, each with Rx, Scaled and Foundations variants. Reading one season directly is thousands of paginated requests.

It is also the least consistent. The number of workouts has ranged from three to six depending on the year. Early seasons publish no country, no height and no weight. The score field is a plain rep count in 2011 and a packed integer later. The modern one encodes reps and the time remaining against a cap the source keeps to itself.

We decode it, store it, and serve the raw value alongside so you can check our work.

Endpoints

MethodPathWhat it returns
GET/v1/openEvery season we hold, with coverage
GET/v1/open/{year}/leaderboardFilter by division, scaled, country, gym
GET/v1/open/{year}/divisionsCanonical division keys for that season
GET/v1/open/{year}/workoutsWorkouts, with derived time caps

Example

Request

curl "https://api.crossfitapi.com/v1/open/2026/leaderboard?division=men&country=BE&limit=2" \
  -H "Authorization: Bearer cfapi_live_..."

Response

{
  "data": [
    {
      "rank": 214,
      "scaled": "rx",
      "athlete": { "name": "...", "slug": "..." },
      "gym": { "id": "gym_...", "name": "CrossFit Brussels" },
      "country": { "code": "BE" },
      "region": { "name": "Europe", "scheme": "continental" },
      "source": { "name": "CrossFit Leaderboard", "source_url": "..." }
    }
  ],
  "pagination": { "next_cursor": "eyJrIjoyMTQs...", "has_more": true }
}

Run these against live data →

What is covered

  • Open seasons 2011 to the current year.
  • All divisions per season, keyed so one query works across years.
  • Rx, Scaled and Foundations as an axis on the result, defaulting to Rx.
  • Time caps derived from the score encoding, and labelled as calculated.
  • No country before roughly 2012 and no affiliate id before roughly 2013, served as nulls.

Coverage grows as each season finishes importing . A season appears there once it is imported and reconciled.

What people build with it

Open trackers

Follow a gym, a country or a friend through a live season.

Percentile tools

Tell someone where a score actually places them.

Participation analysis

Entry counts by division, country and year.

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.

Get API access