Challenges

Challenges are the base object used to represent Strava ride and run challenges.

Access to challenges can be enabled on a per application basis, email developers -at- strava.com for more information.

Challenge Types  

Cumulative
A challenge that accumulates an athlete’s activities for a given activity value: distance, elevation or time. The challenge is completed when the athlete reaches the goal.
Segment
A challenge that is attached to a segment during a particular date window.
The challenge is completed when an athlete ride’s the segment during the date window
Single Activity
A challenge that selects the athlete’s best activity for a given activity value: distance, elevation, time or pace/speed.
The challenge is completed when the athlete reaches the goal.

Detailed representation attributes  

id: integer
resource_state: integer
indicates level of detail
name: string
type”: string
one of CumulativeChallenge, SegmentChallenge, or SingleActivityChallenge
joined: boolean
indicates if athlete has joined challenge
description: string
mobile_description: string
additional_info: string
rules: string
prizes: string
start_date: date string
end_date: date string
segment_id: integer
activity_type: string
dimension: string
goal: integer
measured in meters or seconds
goal_hidden: boolean
measurement_unit: string
one of metric or english
milestone_count: integer
logo_url: string
teaser: string
twitter_hashtag: string
url: string
color: string
participant_count: integer
number of athletes who have joined challenge
total_dimension: float
total aggregate value for all participants
attempt_count: integer
number of participants valid activities completed
completed_count: integer
number of participants who have completed challenge (met goal)
leaderboard_count: integer
number of participants on the leader board
external_url: string
when present, challenge cannot be joined directly, redirect here to join


Summary representation attributes  

The summary representation of the challenge object is the same as the detailed representation, except it does NOT include these attributes:

    description
    mobile_description
    additional_info
    rules
    prizes        


Example Challenge

{
  "id": 438,
  "resource_state": 3,
  "joined": false,
  "name": "Giro Climbing Challenge",
  "start_date": "2015-07-08",
  "end_date": "2015-08-07",
  "segment_id": null,
  "type": "CumulativeChallenge",
  "activity_type": "ride",
  "participant_count": 92003,
  "dimension": "elevation_gain",
  "goal": 10000,
  "goal_hidden": false,
  "measurement_unit": "metric",
  "milestone_count": 3,
  "logo_url": "https://www.cloudfront.net/challenges/logo-name.png",
  "teaser": "Climb big for a finishers-only discount ...",
  "twitter_hashtag": "stravagiro",
  "url": "giro-climbing-challenge",
  "color": "#333",
  "total_dimension": 660405874.359906,
  "attempt_count": 1204578,
  "completed_count": 23425,
  "leaderboard_count": 89578,
  "mobile_description": "",
  "description": "",
  "additional_info": "",
  "rules": "",
  "prizes": ""
}

 

Retrieve a challenge

Returns a detailed representation of a challenge

Parameters

id: integer required

Definition

GET https://www.strava.com/api/v3/challenges/:id

Example request

$ curl -G https://www.strava.com/api/v3/challenges/123 \
    -H "Authorization: Bearer 83ebeabdec09f6670863766f792ead24d61fe3f9"

 

Leaderboard

Retrieves the leaderboard for the specified challenge. Pagination is supported.

Parameters

id: integer required
filter: string
filter to use for leaderboard, ‘friends’, ‘club’, or ‘none’ (default).
club_id: integer required if using club filter
club id to filter on

Attributes

rank: integer
rank of the entry on requested leaderboard
overall_rank: integer
rank of the entry on overall leaderboard
athlete_id: integer
athlete_name: integer
anonymized for logged out requests
athlete_profile: string
URL to a 124x124 pixel profile picture
total_dimension: depends on the exact configuration of the challenge
moving time in seconds for time based single activity challenge for example
activity_id: integer
activity_count: integer
success_count: integer

Returns entries in the leaderboard for the challenge, in descending order. The requesting athlete and up to 2 entries before and after the requesting athlete’s entry will be appended on the first page if they are not already in the first page.

Definition

GET https://www.strava.com/api/v3/challenges/:id/leaderboard

Example responses

[
  {
    "rank": 1,
    "overall_rank": 1,
    "athlete_id": 6944267,
    "athlete_name": "Stephen B.",
    "athlete_profile": "https://dgalywyr863hv.cloudfront.net/pictures/athletes/6944267/3280114/1/large.jpg",
    "total_dimension": 86166,
    "activity_id": 424472014,
    "activity_count": 9,
    "success_count": 2
  }
]

 

Join a challenge

Join a challenge on behalf of the authenticated athlete. An access token with write permissions is required.

Parameters

id: integer required
ID of the challenge to join

Definition

POST https://www.strava.com/api/v3/challenges/:id/athletes

 

Leave a challenge

Leave a challenge on behalf of the authenticated user. An access token with write permissions is required.

Parameters

id: integer required
ID of the club to join

Definition

DELETE https://www.strava.com/api/v3/challenges/:id/athletes

 

List joined challenges

List the challenges the athlete has joined.

Returns an array of challenge summary representations.

Definition

GET https://www.strava.com/api/v3/challenges/joined