openapi: 3.1.0 info: title: Strava Activities Clubs API description: 'The Strava API enables developers to access and interact with data from Strava, the popular fitness tracking platform for running, cycling, and other athletic activities. The API provides access to athlete profiles, activities (workouts), segments, routes, gear, clubs, and leaderboards. OAuth 2.0 is used for authentication. Rate limits apply: 100 requests per 15 minutes, 1000 per day for default apps.' version: 3.0.0 contact: name: Strava Developer Support url: https://developers.strava.com/support/ termsOfService: https://www.strava.com/legal/api license: name: Strava API Agreement url: https://www.strava.com/legal/api servers: - url: https://www.strava.com/api/v3 description: Strava API v3 security: - stravaBearerAuth: [] tags: - name: Clubs description: Access Strava clubs — groups of athletes. View club details, members, and recent club activities. paths: /clubs/{id}: get: operationId: getClubById summary: Get Club description: Returns a given club using its identifier. Requires the profile:read_all scope for private clubs. tags: - Clubs parameters: - name: id in: path required: true description: The identifier of the club schema: type: integer responses: '200': description: The club content: application/json: schema: $ref: '#/components/schemas/DetailedClub' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /clubs/{id}/activities: get: operationId: getClubActivitiesById summary: List Club Activities description: Retrieve recent activities from members of a specific club. The authenticated athlete must be a member of the club. tags: - Clubs parameters: - name: id in: path required: true description: The identifier of the club schema: type: integer - name: page in: query description: Page number for pagination schema: type: integer default: 1 - name: per_page in: query description: Number of items per page schema: type: integer default: 30 responses: '200': description: A list of club activities content: application/json: schema: type: array items: $ref: '#/components/schemas/SummaryActivity' '401': $ref: '#/components/responses/Unauthorized' /athlete/clubs: get: operationId: getLoggedInAthleteClubs summary: List Athlete Clubs description: Returns a list of the clubs whose membership includes the authenticated athlete. tags: - Clubs parameters: - name: page in: query description: Page number for pagination schema: type: integer default: 1 - name: per_page in: query description: Number of items per page schema: type: integer default: 30 responses: '200': description: A list of clubs content: application/json: schema: type: array items: $ref: '#/components/schemas/SummaryClub' '401': $ref: '#/components/responses/Unauthorized' components: schemas: SummaryClub: type: object properties: id: type: integer name: type: string profile_medium: type: string sport_type: type: string city: type: string state: type: string country: type: string private: type: boolean member_count: type: integer SummaryActivity: type: object properties: id: type: integer description: The unique identifier of the activity name: type: string distance: type: number format: float moving_time: type: integer elapsed_time: type: integer total_elevation_gain: type: number format: float type: type: string sport_type: type: string start_date: type: string format: date-time start_date_local: type: string format: date-time timezone: type: string achievement_count: type: integer kudos_count: type: integer comment_count: type: integer trainer: type: boolean commute: type: boolean manual: type: boolean private: type: boolean average_speed: type: number format: float max_speed: type: number format: float average_heartrate: type: number format: float max_heartrate: type: number format: float DetailedClub: type: object properties: id: type: integer name: type: string profile_medium: type: string cover_photo: type: string sport_type: type: string city: type: string state: type: string country: type: string private: type: boolean member_count: type: integer featured: type: boolean verified: type: boolean url: type: string description: type: string Fault: type: object properties: errors: type: array items: type: object properties: resource: type: string field: type: string code: type: string message: type: string description: The error message responses: NotFound: description: The requested resource was not found content: application/json: schema: $ref: '#/components/schemas/Fault' Unauthorized: description: Authorization required or the provided access token is invalid content: application/json: schema: $ref: '#/components/schemas/Fault' securitySchemes: stravaBearerAuth: type: oauth2 description: OAuth 2.0 Bearer token. Obtain via the authorization code flow at https://www.strava.com/oauth/authorize. flows: authorizationCode: authorizationUrl: https://www.strava.com/oauth/authorize tokenUrl: https://www.strava.com/oauth/token scopes: read: Read public segments, public routes, public profile data, public posts, public events, club feeds, and leaderboards read_all: Read private routes, private segments, and private events for the user profile:read_all: Read all profile information even if the user has set their profile visibility to Followers or Only You profile:write: Update the user's weight and Functional Threshold Power (FTP), and access to star or unstar segments on their behalf activity:read: Read the user's activity data for activities that are visible to Everyone and Followers activity:read_all: Same access as activity:read with the addition of activities with visibility set to Only You activity:write: Access to create manual activities and uploads, and access to edit any activities that are visible to the app externalDocs: description: Strava API Documentation url: https://developers.strava.com/docs/reference/