OrbTop

CrossFit Games & Open Leaderboard Scraper

SPORTSSOCIAL MEDIA

Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.

CrossFit Games & Open Leaderboard Scraper

Scrape athlete leaderboard data from the official CrossFit API at c3po.crossfit.com. Covers all four competition types across all available years, divisions, and regions — returns per-athlete rank, score, affiliate, and per-workout scores.

What it scrapes

  • CrossFit Open — all years (2011–present), ~177,000 athletes per year per division
  • CrossFit Games — annual Games leaderboard
  • Quarterfinals — the stage between Open and Semifinals
  • Semifinals — regional Semifinals leaderboard
  • All divisions: Men, Women, Masters (35–39 through 60+), Teen Boys/Girls, Team
  • Both Rx and scaled leaderboards
  • All regions or filtered by specific region ID

Output fields

Field Description
competition Competition type: open, games, quarterfinals, semifinals
year Competition year (e.g. 2024)
division_id Division numeric ID
division_name Division name (e.g. "Men", "Women 35-39")
scaled True if scaled leaderboard
overall_rank Athlete's overall rank in this division
overall_score Athlete's overall score (raw points)
competitor_id CrossFit athlete ID
competitor_name Athlete full name
first_name / last_name Split name fields
gender M / F
age Athlete age
height Height with units (e.g. "172 cm")
weight Weight with units (e.g. "190 lb")
country_code ISO 2-letter country code
country_name Country of origin
region_id / region_name Region (e.g. "Europe", "North America")
affiliate_id / affiliate_name CrossFit box/affiliate
workout_scores JSON array of per-WOD scores: rank, scoreDisplay, scaled flag, breakdown, time
is_judged True if at least one workout was judged

Input

Parameter Type Default Description
competition string open Competition type: open, games, quarterfinals, semifinals
year integer 2024 Competition year (2011–2030)
division integer 1 Division ID (1=Men, 2=Women, 3-14=Masters, 17-20=Teens, 30=Team)
scaled boolean false Fetch scaled leaderboard instead of Rx
region integer 0 Region filter (0 = worldwide)
startPage integer 1 First page to fetch (50 athletes/page)
endPage integer Last page to fetch (omit for all pages)
maxItems integer 10 Cap on total rows returned

Division ID reference

ID Division
1 Men
2 Women
3 Men 35-39
4 Women 35-39
5 Men 40-44
6 Women 40-44
7 Men 45-49
8 Women 45-49
9 Men 50-54
10 Women 50-54
11 Men 55-59
12 Women 55-59
13 Men 60+
14 Women 60+
17 Teen Boys 16-17
18 Teen Girls 16-17
19 Teen Boys 14-15
20 Teen Girls 14-15
30 Team

Usage examples

Scrape the top 50 Men from the 2024 CrossFit Open (one page):

{
  "competition": "open",
  "year": 2024,
  "division": 1,
  "maxItems": 50
}

Scrape the full Women 35-39 division from the 2023 Open:

{
  "competition": "open",
  "year": 2023,
  "division": 4,
  "scaled": false
}

Scrape just pages 100-110 of the 2024 Open Men Rx (partial/resume pull):

{
  "competition": "open",
  "year": 2024,
  "division": 1,
  "startPage": 100,
  "endPage": 110
}

Scrape the CrossFit Games 2024 Men leaderboard:

{
  "competition": "games",
  "year": 2024,
  "division": 1
}

Notes

  • Large Open competitions have up to 3,545 pages (~177,000 athletes). Use startPage/endPage for partial pulls, or set maxItems to cap results.
  • The API is public — no authentication required.
  • Rate limited to ~2 requests/second (polite default). Full Open divisions take approximately 30 minutes.
  • All data comes from the official CrossFit c3po.crossfit.com API — the same source powering the games.crossfit.com leaderboard site.