### GET /websites/intervals_icu_api_v1 Source: https://intervals.icu/api/v1/docs/index Retrieves the configuration and settings for the Website Intervals ICU API V1. ```APIDOC ## GET /websites/intervals_icu_api_v1 ### Description Retrieves the configuration and settings for the Website Intervals ICU API V1, including various integration options and user preferences. ### Method GET ### Endpoint /websites/intervals_icu_api_v1 ### Parameters #### Query Parameters None ### Response #### Success Response (200) - **icu_date_format** (string) - The date format used in the ICU. - **icu_coach** (boolean) - Flag to enable/disable the ICU coach. - **bio** (string) - User's biographical information. - **website** (string) - User's website URL. - **icu_date_of_birth** (string) - User's date of birth in ICU format. - **icu_api_key** (string) - API key for ICU integration. - **icu_type_settings** (array) - Array of settings for ICU types. Each item is a `Settings` object. - **icu_form_as_percent** (boolean) - Flag to display ICU form as a percentage. - **icu_mmp_days** (integer) - Number of days for MMP in ICU. - **icu_wellness_prompt** (boolean) - Flag to enable wellness prompts in ICU. - **wellness_last_prompt_date** (string) - The date of the last wellness prompt. - **icu_wellness_keys** (array) - Array of wellness keys for ICU. - **icu_track_menstrual_cycle** (boolean) - Flag to track menstrual cycle in ICU. - **icu_menstrual_cycle_perm** (string) - Permissions for menstrual cycle data (NONE, READ, WRITE). - **activity_rpe_prompt** (boolean) - Flag to enable RPE prompts for activities. - **coach_ticks** (array) - Array of coach ticks. Each item is a `CoachTick` object. - **icu_garmin_health** (boolean) - Flag to enable Garmin health data sync. - **icu_garmin_training** (boolean) - Flag to enable Garmin training data sync. - **icu_garmin_sync_activities** (boolean) - Flag to sync Garmin activities. - **garmin_sync_activity_types** (array) - List of Garmin activity types to sync. - **garmin_sync_after** (string, date-time) - Date from which to sync Garmin activities. - **icu_garmin_download_wellness** (boolean) - Flag to download Garmin wellness data. - **icu_garmin_upload_workouts** (boolean) - Flag to upload workouts to Garmin. - **icu_garmin_outdoor_power_range** (number, float) - Outdoor power range for Garmin. - **icu_garmin_hr_range** (number, float) - Heart rate range for Garmin. - **garmin_pace_range** (number, float) - Pace range for Garmin. - **garmin_power_target** (string) - Power target for Garmin (POWER_LAP, POWER, POWER_3S, POWER_10S, POWER_30S). - **icu_garmin_last_upload** (string, date-time) - Timestamp of the last Garmin upload. - **icu_garmin_upload_filters** (array) - Filters for Garmin uploads. Each item is an `ActivityFilter` object. - **icu_garmin_wellness_keys** (array) - Wellness keys for Garmin sync. - **open_step_duration** (integer) - Duration of open steps. - **polar_scope** (string) - Scope for Polar integration. - **polar_sync_activities** (boolean) - Flag to sync Polar activities. - **polar_sync_activity_types** (array) - List of Polar activity types to sync. - **polar_download_wellness** (boolean) - Flag to download Polar wellness data. - **polar_wellness_keys** (array) - Wellness keys for Polar sync. - **suunto_scope** (string) - Scope for Suunto integration. - **suunto_user_id** (string) - User ID for Suunto integration. - **suunto_sync_activities** (boolean) - Flag to sync Suunto activities. - **suunto_sync_activity_types** (array) - List of Suunto activity types to sync. - **suunto_upload_workouts** (boolean) - Flag to upload workouts to Suunto. - **suunto_outdoor_power_range** (number, float) - Outdoor power range for Suunto. - **suunto_hr_range** (number, float) - Heart rate range for Suunto. - **suunto_pace_range** (number, float) - Pace range for Suunto. - **suunto_last_upload** (string, date-time) - Timestamp of the last Suunto upload. - **suunto_upload_filters** (array) - Filters for Suunto uploads. Each item is an `ActivityFilter` object. - **suunto_download_wellness** (boolean) - Flag to download Suunto wellness data. - **coros_user_id** (string) - User ID for Coros integration. - **coros_sync_activities** (boolean) - Flag to sync Coros activities. - **coros_upload_workouts** (boolean) - Flag to upload workouts to Coros. - **coros_download_wellness** (boolean) - Flag to download Coros wellness data. - **coros_last_upload** (string, date-time) - Timestamp of the last Coros upload. - **concept2_user_id** (string) - User ID for Concept2 integration. - **concept2_sync_activities** (boolean) - Flag to sync Concept2 activities. ### Request Example ```json { "example": "request body" } ``` ### Response #### Success Response (200) - **icu_date_format** (string) - The date format used in the ICU. - **icu_coach** (boolean) - Flag to enable/disable the ICU coach. - **bio** (string) - User's biographical information. - **website** (string) - User's website URL. - **icu_date_of_birth** (string) - User's date of birth in ICU format. - **icu_api_key** (string) - API key for ICU integration. - **icu_type_settings** (array) - Array of settings for ICU types. Each item is a `Settings` object. - **icu_form_as_percent** (boolean) - Flag to display ICU form as a percentage. - **icu_mmp_days** (integer) - Number of days for MMP in ICU. - **icu_wellness_prompt** (boolean) - Flag to enable wellness prompts in ICU. - **wellness_last_prompt_date** (string) - The date of the last wellness prompt. - **icu_wellness_keys** (array) - Array of wellness keys for ICU. - **icu_track_menstrual_cycle** (boolean) - Flag to track menstrual cycle in ICU. - **icu_menstrual_cycle_perm** (string) - Permissions for menstrual cycle data (NONE, READ, WRITE). - **activity_rpe_prompt** (boolean) - Flag to enable RPE prompts for activities. - **coach_ticks** (array) - Array of coach ticks. Each item is a `CoachTick` object. - **icu_garmin_health** (boolean) - Flag to enable Garmin health data sync. - **icu_garmin_training** (boolean) - Flag to enable Garmin training data sync. - **icu_garmin_sync_activities** (boolean) - Flag to sync Garmin activities. - **garmin_sync_activity_types** (array) - List of Garmin activity types to sync. - **garmin_sync_after** (string, date-time) - Date from which to sync Garmin activities. - **icu_garmin_download_wellness** (boolean) - Flag to download Garmin wellness data. - **icu_garmin_upload_workouts** (boolean) - Flag to upload workouts to Garmin. - **icu_garmin_outdoor_power_range** (number, float) - Outdoor power range for Garmin. - **icu_garmin_hr_range** (number, float) - Heart rate range for Garmin. - **garmin_pace_range** (number, float) - Pace range for Garmin. - **garmin_power_target** (string) - Power target for Garmin (POWER_LAP, POWER, POWER_3S, POWER_10S, POWER_30S). - **icu_garmin_last_upload** (string, date-time) - Timestamp of the last Garmin upload. - **icu_garmin_upload_filters** (array) - Filters for Garmin uploads. Each item is an `ActivityFilter` object. - **icu_garmin_wellness_keys** (array) - Wellness keys for Garmin sync. - **open_step_duration** (integer) - Duration of open steps. - **polar_scope** (string) - Scope for Polar integration. - **polar_sync_activities** (boolean) - Flag to sync Polar activities. - **polar_sync_activity_types** (array) - List of Polar activity types to sync. - **polar_download_wellness** (boolean) - Flag to download Polar wellness data. - **polar_wellness_keys** (array) - Wellness keys for Polar sync. - **suunto_scope** (string) - Scope for Suunto integration. - **suunto_user_id** (string) - User ID for Suunto integration. - **suunto_sync_activities** (boolean) - Flag to sync Suunto activities. - **suunto_sync_activity_types** (array) - List of Suunto activity types to sync. - **suunto_upload_workouts** (boolean) - Flag to upload workouts to Suunto. - **suunto_outdoor_power_range** (number, float) - Outdoor power range for Suunto. - **suunto_hr_range** (number, float) - Heart rate range for Suunto. - **suunto_pace_range** (number, float) - Pace range for Suunto. - **suunto_last_upload** (string, date-time) - Timestamp of the last Suunto upload. - **suunto_upload_filters** (array) - Filters for Suunto uploads. Each item is an `ActivityFilter` object. - **suunto_download_wellness** (boolean) - Flag to download Suunto wellness data. - **coros_user_id** (string) - User ID for Coros integration. - **coros_sync_activities** (boolean) - Flag to sync Coros activities. - **coros_upload_workouts** (boolean) - Flag to upload workouts to Coros. - **coros_download_wellness** (boolean) - Flag to download Coros wellness data. - **coros_last_upload** (string, date-time) - Timestamp of the last Coros upload. - **concept2_user_id** (string) - User ID for Concept2 integration. - **concept2_sync_activities** (boolean) - Flag to sync Concept2 activities. #### Response Example ```json { "icu_date_format": "MM/DD/YYYY", "icu_coach": true, "bio": "Athlete and coach.", "website": "https://example.com", "icu_date_of_birth": "1990-01-01", "icu_api_key": "your_icu_api_key", "icu_type_settings": [ { "type": "workout", "enabled": true } ], "icu_form_as_percent": false, "icu_mmp_days": 28, "icu_wellness_prompt": true, "wellness_last_prompt_date": "2023-10-27T10:00:00Z", "icu_wellness_keys": [ "sleep", "heartrate" ], "icu_track_menstrual_cycle": true, "icu_menstrual_cycle_perm": "READ", "activity_rpe_prompt": true, "coach_ticks": [ { "id": "tick1", "name": "Consistency" } ], "icu_garmin_health": true, "icu_garmin_training": true, "icu_garmin_sync_activities": true, "garmin_sync_activity_types": [ "Run", "Ride" ], "garmin_sync_after": "2023-01-01T00:00:00Z", "icu_garmin_download_wellness": true, "icu_garmin_upload_workouts": true, "icu_garmin_outdoor_power_range": 1000, "icu_garmin_hr_range": 180, "garmin_pace_range": 5, "garmin_power_target": "POWER_30S", "icu_garmin_last_upload": "2023-10-27T09:30:00Z", "icu_garmin_upload_filters": [ { "field": "duration", "operator": ">", "value": 600 } ], "icu_garmin_wellness_keys": [ "steps", "calories" ], "open_step_duration": 30, "polar_scope": "polar_api", "polar_sync_activities": true, "polar_sync_activity_types": [ "Run", "Swim" ], "polar_download_wellness": true, "polar_wellness_keys": [ "sleep", "activity" ], "suunto_scope": "suunto_api", "suunto_user_id": "suunto_user_123", "suunto_sync_activities": true, "suunto_sync_activity_types": [ "Hike", "TrailRun" ], "suunto_upload_workouts": true, "suunto_outdoor_power_range": 900, "suunto_hr_range": 175, "suunto_pace_range": 4.5, "suunto_last_upload": "2023-10-27T09:00:00Z", "suunto_upload_filters": [], "suunto_download_wellness": true, "coros_user_id": "coros_user_456", "coros_sync_activities": true, "coros_upload_workouts": true, "coros_download_wellness": true, "coros_last_upload": "2023-10-27T08:45:00Z", "concept2_user_id": "concept2_user_789", "concept2_sync_activities": true } ``` ``` -------------------------------- ### GET /api/v1/athlete/{id}/folders Source: https://intervals.icu/api/v1/docs/index List all folders, plans, and workouts associated with a specific athlete. ```APIDOC ## GET /api/v1/athlete/{id}/folders ### Description List all the athlete's folders, plans and workouts. ### Method GET ### Endpoint /api/v1/athlete/{id}/folders #### Path Parameters - **id** (string) - Required - The unique identifier of the athlete. ### Response #### Success Response (200) - **Array of Folder objects** - A list containing all folders, plans, and workouts for the athlete. #### Response Example ```json [ { "id": "folder_id_1", "name": "Cardio Workouts", "athleteId": "athlete_id", "parentFolderId": null, "isPlan": false, "folders": [], "workouts": [ { "id": "workout_id_1", "name": "Long Run" } ] }, { "id": "plan_id_1", "name": "Marathon Training Plan", "athleteId": "athlete_id", "parentFolderId": null, "isPlan": true, "folders": [], "workouts": [] } ] ``` ``` -------------------------------- ### GET /api/v1/activity/{id}/file Source: https://intervals.icu/api/v1/docs/index Downloads the original activity file. Strava activities are not supported. ```APIDOC ## GET /api/v1/activity/{id}/file ### Description Download original activity file. Strava activities not supported. ### Method GET ### Endpoint /api/v1/activity/{id}/file ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the activity. ### Request Example (No request body for GET requests) ### Response #### Success Response (200) OK #### Response Example (Original activity file content) ``` -------------------------------- ### GET /api/v1/athlete/{id}/workout-tags Source: https://intervals.icu/api/v1/docs/index List all tags that have been applied to workouts in the athlete's library. ```APIDOC ## GET /api/v1/athlete/{id}/workout-tags ### Description List all tags that have been applied to workouts in the athlete's library. ### Method GET ### Endpoint /api/v1/athlete/{id}/workout-tags #### Path Parameters - **id** (string) - Required - The ID of the athlete. ### Response #### Success Response (200) - (array of strings) - An array of tag names. #### Response Example ```json [ "Interval Training", "Tempo Run" ] ``` ``` -------------------------------- ### GET /api/v1/athlete/{athleteId}/sport-settings Source: https://intervals.icu/api/v1/docs/index Retrieves a list of all sport settings configured for a specific athlete. ```APIDOC ## GET /api/v1/athlete/{athleteId}/sport-settings ### Description List sport settings for the athlete. ### Method GET ### Endpoint /api/v1/athlete/{athleteId}/sport-settings ### Parameters #### Path Parameters - **athleteId** (string) - Required - The ID of the athlete. ### Response #### Success Response (200) - **array** (array) - A list of sport settings objects. #### Response Example ```json [ { "id": "Run", "name": "Running Settings", "zones": [] }, { "id": "Ride", "name": "Cycling Settings", "zones": [] } ] ``` ``` -------------------------------- ### GET /api/v1/activity/{id}/interval-stats Source: https://intervals.icu/api/v1/docs/index Returns interval-like statistics for a specified segment of an activity, defined by start and end indices. ```APIDOC ## GET /api/v1/activity/{id}/interval-stats ### Description Returns interval-like statistics for a part of the activity defined by start and end indices. ### Method GET ### Endpoint /api/v1/activity/{id}/interval-stats ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the activity. #### Query Parameters - **start_index** (integer) - Required - The starting index of the interval. - **end_index** (integer) - Required - The ending index of the interval. ### Request Example ```json { "example": "GET /api/v1/activity/12345/interval-stats?start_index=100&end_index=500" } ``` ### Response #### Success Response (200) - **Interval** (object) - The statistics for the specified interval. See [components/schemas/Interval](#) for details. #### Response Example ```json { "example": "{"average_power":250,"max_power":500,"average_hr":150}" } ``` ``` -------------------------------- ### Library API Source: https://intervals.icu/api/v1/docs/swagger-ui/index Endpoints for managing workouts, folders, and plans. ```APIDOC ## GET /api/v1/athlete/{id}/workouts/{workoutId} ### Description Get a workout. ### Method GET ### Endpoint /api/v1/athlete/{id}/workouts/{workoutId} ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **workoutId** (string) - Required - The workout ID. ## PUT /api/v1/athlete/{id}/workouts/{workoutId} ### Description Update a workout. ### Method PUT ### Endpoint /api/v1/athlete/{id}/workouts/{workoutId} ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **workoutId** (string) - Required - The workout ID. ## DELETE /api/v1/athlete/{id}/workouts/{workoutId} ### Description Delete a workout (and optionally others added at the same time if the workout is on a plan). ### Method DELETE ### Endpoint /api/v1/athlete/{id}/workouts/{workoutId} ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **workoutId** (string) - Required - The workout ID. ## PUT /api/v1/athlete/{id}/folders/{folderId}/workouts ### Description Update a range of workouts on a plan. Currently only hide_from_athlete can be changed. ### Method PUT ### Endpoint /api/v1/athlete/{id}/folders/{folderId}/workouts ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **folderId** (string) - Required - The folder ID. ## GET /api/v1/athlete/{id}/folders/{folderId}/shared-with ### Description List athletes that the folder or plan has been shared with. ### Method GET ### Endpoint /api/v1/athlete/{id}/folders/{folderId}/shared-with ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **folderId** (string) - Required - The folder ID. ## PUT /api/v1/athlete/{id}/folders/{folderId}/shared-with ### Description Add/remove athletes from the share list for the folder. ### Method PUT ### Endpoint /api/v1/athlete/{id}/folders/{folderId}/shared-with ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **folderId** (string) - Required - The folder ID. ## PUT /api/v1/athlete/{id}/folders/{folderId} ### Description Update a workout folder or plan. ### Method PUT ### Endpoint /api/v1/athlete/{id}/folders/{folderId} ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **folderId** (string) - Required - The folder ID. ## DELETE /api/v1/athlete/{id}/folders/{folderId} ### Description Delete a workout folder or plan including all workouts. ### Method DELETE ### Endpoint /api/v1/athlete/{id}/folders/{folderId} ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **folderId** (string) - Required - The folder ID. ## PUT /api/v1/athlete/{id}/apply-plan-changes ### Description Apply any changes from the athlete's current plan to the athlete's calendar. ### Method PUT ### Endpoint /api/v1/athlete/{id}/apply-plan-changes ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. ## POST /api/v1/download-workout{ext} ### Description Convert a workout to .zwo (Zwift), .mrc, .erg or .fit. ### Method POST ### Endpoint /api/v1/download-workout{ext} ### Parameters #### Path Parameters - **ext** (string) - Required - The file extension for the workout format. ## POST /api/v1/athlete/{id}/workouts/bulk ### Description Create multiple new workouts in a folder or plan in the athlete's workout library. ### Method POST ### Endpoint /api/v1/athlete/{id}/workouts/bulk ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. ## GET /api/v1/athlete/{id}/workouts ### Description List all the workouts in the athlete's library. ### Method GET ### Endpoint /api/v1/athlete/{id}/workouts ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. ## POST /api/v1/athlete/{id}/workouts ### Description Create a new workout in a folder or plan in the athlete's workout library. ### Method POST ### Endpoint /api/v1/athlete/{id}/workouts ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. ## POST /api/v1/athlete/{id}/folders/{folderId}/import-workout ### Description Create new workout from .zwo, .mrc, .erg or .fit file in a folder. ### Method POST ### Endpoint /api/v1/athlete/{id}/folders/{folderId}/import-workout ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **folderId** (string) - Required - The folder ID. ## GET /api/v1/athlete/{id}/folders ### Description List all the athlete's folders, plans and workouts. ### Method GET ### Endpoint /api/v1/athlete/{id}/folders ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. ## POST /api/v1/athlete/{id}/folders ### Description Create a new workout folder or plan. ### Method POST ### Endpoint /api/v1/athlete/{id}/folders ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. ## POST /api/v1/athlete/{id}/duplicate-workouts ### Description Duplicate workouts on a plan. ### Method POST ### Endpoint /api/v1/athlete/{id}/duplicate-workouts ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. ## POST /api/v1/athlete/{id}/download-workout{ext} ### Description Convert a workout to .zwo (Zwift), .mrc, .erg or .fit. ### Method POST ### Endpoint /api/v1/athlete/{id}/download-workout{ext} ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **ext** (string) - Required - The file extension for the workout format. ## GET /api/v1/athlete/{id}/workout-tags ### Description List all tags that have been applied to workouts in the athlete's library. ### Method GET ### Endpoint /api/v1/athlete/{id}/workout-tags ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. ``` -------------------------------- ### GET /api/v1/activity/{id}/weather-summary Source: https://intervals.icu/api/v1/docs/index Retrieves a weather summary for a specific activity. You can optionally specify a start and end index to analyze a portion of the activity's data. ```APIDOC ## GET /api/v1/activity/{id}/weather-summary ### Description Retrieves a weather summary for a specific activity. You can optionally specify a start and end index to analyze a portion of the activity's data. ### Method GET ### Endpoint /api/v1/activity/{id}/weather-summary ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the activity. #### Query Parameters - **start_index** (integer) - Optional - Optional index of first point in activity to use (defaults to 0). - **end_index** (integer) - Optional - Optional index of last point in activity to use (exclusive, defaults to 0). #### Request Body None ### Request Example None ### Response #### Success Response (200) - **ActivityWeatherSummary** (object) - An object containing the weather summary for the activity. ``` -------------------------------- ### POST /api/v1/athlete/{id}/folders Source: https://intervals.icu/api/v1/docs/index Create a new workout folder or plan for a specific athlete. ```APIDOC ## POST /api/v1/athlete/{id}/folders ### Description Create a new workout folder or plan for a specific athlete. ### Method POST ### Endpoint /api/v1/athlete/{id}/folders #### Path Parameters - **id** (string) - Required - The unique identifier of the athlete. #### Request Body - **CreateFolderDTO** (object) - Required - The data transfer object for creating a folder. ### Request Example ```json { "name": "New Folder", "parentFolderId": "optional_parent_id" } ``` ### Response #### Success Response (200) - **Folder** (object) - The created folder object. #### Response Example ```json { "id": "folder_id", "name": "New Folder", "athleteId": "athlete_id", "parentFolderId": null, "isPlan": false, "folders": [], "workouts": [] } ``` ``` -------------------------------- ### GET /api/v1/athlete/{id}/activity-pace-curves{ext} Source: https://intervals.icu/api/v1/docs/index Get the best pace for a range of distances for matching activities within a specified date range. Results can be returned in CSV format by using the '.csv' extension. ```APIDOC ## GET /api/v1/athlete/{id}/activity-pace-curves{ext} ### Description Get the best pace for a range of distances for matching activities within a specified date range. Results can be returned in CSV format by using the '.csv' extension. ### Method GET ### Endpoint `/api/v1/athlete/{id}/activity-pace-curves{ext}` ### Parameters #### Path Parameters - **id** (string) - Required - Athlete's unique identifier. - **ext** (string) - Required - File extension for the response format (e.g., '.json', '.csv'). #### Query Parameters - **oldest** (string) - Required - Local ISO-8601 date or date and time (e.g., 2019-07-22T16:18:49 or 2019-07-22). - **newest** (string) - Required - Local ISO-8601 date or date and time (inclusive). - **type** (string) - Optional - The sport type to filter activities by. If filters is not provided or is blank or does not contain a type filter then activities for the types of the sport matching this parameter are included. - **filters** (array of ActivityFilter) - Optional - Only return activities matching all the filters in this list. - **distances** (array of number) - Optional - Distances required (in meters, comma separated). - **gap** (boolean) - Optional - Return gradient adjusted pace curves. Defaults to false. #### Request Body None ### Request Example None ### Response #### Success Response (200) OK #### Response Example None ``` -------------------------------- ### POST /downloadActivityFitFiles Source: https://intervals.icu/api/v1/docs/index Downloads activity fit files for specified activities, with options to include power and heart rate data. ```APIDOC ## POST /downloadActivityFitFiles ### Description Downloads activity fit files for specified activities, with options to include power and heart rate data. Strava activities are not included. ### Method POST ### Endpoint /downloadActivityFitFiles ### Parameters #### Query Parameters - **ids** (array of strings) - Required - Activity ID's to download. - **power** (boolean) - Optional - Include power data. Defaults to true. - **hr** (boolean) - Optional - Include heart rate data. Defaults to true. ### Response #### Success Response (200) - **OK** - Indicates the request was successful. The response body would typically contain the fit file data. #### Response Example (Response content would be binary fit file data) ``` -------------------------------- ### GET /api/v1/athlete/{id}/activity-power-curves{ext} Source: https://intervals.icu/api/v1/docs/index Retrieve activity power curves for a specified athlete. You can filter by activity types and fatigue levels. The extension '.csv' can be used to get results in CSV format. ```APIDOC ## GET /api/v1/athlete/{id}/activity-power-curves{ext} ### Description Retrieve activity power curves for a specified athlete. You can filter by activity types and fatigue levels. The extension '.csv' can be used to get results in CSV format. ### Method GET ### Endpoint `/api/v1/athlete/{id}/activity-power-curves{ext}` ### Parameters #### Path Parameters - **id** (string) - Required - Athlete's unique identifier. - **ext** (string) - Required - File extension for the response format (e.g., '.json', '.csv'). #### Query Parameters - **oldest** (string) - Required - Local ISO-8601 date or date and time (e.g., 2019-07-22T16:18:49 or 2019-07-22). - **newest** (string) - Required - Local ISO-8601 date or date and time (inclusive). - **type** (string) - Optional - The sport type to filter activities by. Accepts a comma-separated list of sport types (e.g., 'Ride,Run'). - **fatigue** (string) - Optional - Use 'kj0' or 'kj1' to get one of the athlete's predefined fatigued power curves. #### Request Body None ### Request Example None ### Response #### Success Response (200) - **ActivityPowerCurvePayload** - The structure of the returned data, containing power curve information. #### Response Example ```json { "example": "ActivityPowerCurvePayload" } ``` ``` -------------------------------- ### POST /api/v1/athlete/{id}/download-workout{ext} Source: https://intervals.icu/api/v1/docs/index Convert a workout to a downloadable file format (.zwo, .mrc, .erg, or .fit). Athlete's settings are used to resolve power targets. ```APIDOC ## POST /api/v1/athlete/{id}/download-workout{ext} ### Description Convert a workout to .zwo (Zwift), .mrc, .erg or .fit. The athlete's settings are used to resolve power targets etc.. Note that the create workout endpoint can convert workouts and might be more convenient. ### Method POST ### Endpoint /api/v1/athlete/{id}/download-workout{ext} #### Path Parameters - **id** (string) - Required - The unique identifier of the athlete. - **ext** (string) - Required - The desired file extension for the workout (e.g., 'zwo', 'mrc', 'erg', 'fit'). #### Request Body - **Workout object** - Required - The workout object to be converted. ### Request Example ```json { "name": "Interval Training", "athleteId": "athlete_id", "description": "Warm up, 5x3 min hard, 3 min easy, Cool down.", "events": [ { "type": "Warmup", "duration": 600, "power": 0.5 }, { "type": "Interval", "duration": 180, "power": 1.1 }, { "type": "Recovery", "duration": 180, "power": 0.5 } ] } ``` ### Response #### Success Response (200) - **File content** - The content of the converted workout file. #### Response Example (Binary file content for the specified format) ``` -------------------------------- ### POST /api/v1/athlete/{id}/download-fit-files Source: https://intervals.icu/api/v1/docs/index Download a zip archive containing Intervals.icu generated activities. ```APIDOC ## POST /api/v1/athlete/{id}/download-fit-files ### Description Download a zip of Intervals.icu generated activities. ### Method POST ### Endpoint /api/v1/athlete/{id}/download-fit-files #### Path Parameters - **id** (string) - Required - The unique identifier of the athlete. ### Request Example (This endpoint typically does not require a request body, but may accept query parameters for date ranges or specific activities) ### Response #### Success Response (200) - **Zip file** - A zip archive containing the requested FIT files. #### Response Example (Binary zip file content) ``` -------------------------------- ### GET /api/v1/chats/{id} Source: https://intervals.icu/api/v1/docs/index Retrieve a specific chat by its ID. ```APIDOC ## GET /api/v1/chats/{id} ### Description Get a chat by its ID. ### Method GET ### Endpoint /api/v1/chats/{id} #### Path Parameters - **id** (integer) - Required - The ID of the chat. ### Response #### Success Response (200) - **Chat** (object) - The chat object. #### Response Example ```json { "id": 1, "name": "Training Group" } ``` ``` -------------------------------- ### Workout Library API Source: https://intervals.icu/api/v1/docs/index Endpoints for managing workout folders and plans, including updates and sharing. ```APIDOC ## PUT /api/v1/athlete/{id}/folders/{folderId}/workouts ### Description Updates a range of workouts within a plan. Currently, only the `hide_from_athlete` status can be modified. ### Method PUT ### Endpoint /api/v1/athlete/{id}/folders/{folderId}/workouts ### Parameters #### Path Parameters - **id** (string) - Required - The athlete's unique identifier. - **folderId** (integer) - Required - The ID of the workout folder or plan. #### Query Parameters - **oldest** (integer) - Required - The timestamp of the oldest workout to update. - **newest** (integer) - Required - The timestamp of the newest workout to update. #### Request Body - **workout** (Workout) - Required - The workout object containing the updated fields (e.g., `hide_from_athlete`). ### Request Example ```json { "workout": { "hide_from_athlete": true } } ``` ### Response #### Success Response (200) - **workouts** (array[Workout]) - An array of updated workout objects. #### Response Example ```json { "workouts": [ { ... }, { ... } ] } ``` ## GET /api/v1/athlete/{id}/folders/{folderId}/shared-with ### Description Lists the athletes with whom a specific folder or plan has been shared. ### Method GET ### Endpoint /api/v1/athlete/{id}/folders/{folderId}/shared-with ### Parameters #### Path Parameters - **id** (string) - Required - The athlete's unique identifier. - **folderId** (integer) - Required - The ID of the workout folder or plan. ### Response #### Success Response (200) - **sharedWith** (array[SharedWith]) - A list of athletes the folder/plan is shared with. #### Response Example ```json { "sharedWith": [ { ... }, { ... } ] } ``` ## PUT /api/v1/athlete/{id}/folders/{folderId}/shared-with ### Description Adds or removes athletes from the share list for a given folder or plan. ### Method PUT ### Endpoint /api/v1/athlete/{id}/folders/{folderId}/shared-with ### Parameters #### Path Parameters - **id** (string) - Required - The athlete's unique identifier. - **folderId** (integer) - Required - The ID of the workout folder or plan. #### Request Body - **sharedWithList** (array[SharedWith]) - Required - The list of athletes to share with or remove. ### Request Example ```json { "sharedWithList": [ { ... }, { ... } ] } ``` ### Response #### Success Response (200) - **sharedWith** (array[SharedWith]) - The updated list of athletes the folder/plan is shared with. #### Response Example ```json { "sharedWith": [ { ... }, { ... } ] } ``` ## PUT /api/v1/athlete/{id}/folders/{folderId} ### Description Updates a workout folder or plan. ### Method PUT ### Endpoint /api/v1/athlete/{id}/folders/{folderId} ### Parameters #### Path Parameters - **id** (string) - Required - The athlete's unique identifier. - **folderId** (integer) - Required - The ID of the workout folder or plan to update. #### Request Body - **folder** (Folder) - Required - The updated folder object. ### Request Example ```json { "folder": { "name": "Updated Folder Name" } } ``` ### Response #### Success Response (200) - **folder** (Folder) - The updated folder object. #### Response Example ```json { "folder": { ... } } ``` ## DELETE /api/v1/athlete/{id}/folders/{folderId} ### Description Deletes a workout folder or plan, including all associated workouts. ### Method DELETE ### Endpoint /api/v1/athlete/{id}/folders/{folderId} ### Parameters #### Path Parameters - **id** (string) - Required - The athlete's unique identifier. - **folderId** (integer) - Required - The ID of the workout folder or plan to delete. ### Response #### Success Response (200) - Description: OK. Returns an empty object with additional properties for successful deletion. #### Response Example ```json { "message": "Folder deleted successfully." } ``` ``` -------------------------------- ### GET /api/v1/pace_distances Source: https://intervals.icu/api/v1/docs/index Retrieve a list of pace curve distances. ```APIDOC ## GET /api/v1/pace_distances ### Description List pace curve distances. ### Method GET ### Endpoint /api/v1/pace_distances ### Response #### Success Response (200) - **PaceDistancesDTO** (object) - An object containing pace distance information. #### Response Example ```json { "distances": [ 1000, 5000, 10000 ] } ``` ``` -------------------------------- ### Gear Management API Source: https://intervals.icu/api/v1/docs/index Endpoints for managing gear and components, including creation, retrieval, and deletion. ```APIDOC ## POST /api/v1/gear ### Description Creates a new gear item or component. ### Method POST ### Endpoint /api/v1/gear ### Parameters #### Request Body - **gear** (Gear) - Required - The gear object to create. ### Request Example ```json { "gear": { ... } } ``` ### Response #### Success Response (200) - **gear** (Gear) - The created gear object. #### Response Example ```json { "gear": { ... } } ``` ## GET /api/v1/gear/{id} ### Description Retrieves a specific gear item or component by its ID. ### Method GET ### Endpoint /api/v1/gear/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the gear item to retrieve. ### Response #### Success Response (200) - **gear** (Gear) - The requested gear object. #### Response Example ```json { "gear": { ... } } ``` ## DELETE /api/v1/gear/{id}/{gearId} ### Description Deletes a specific gear item or component. ### Method DELETE ### Endpoint /api/v1/gear/{id}/{gearId} ### Parameters #### Path Parameters - **id** (string) - Required - The athlete ID. - **gearId** (string) - Required - The ID of the gear item to delete. ### Response #### Success Response (200) - Description: OK ### Response Example ```json { "message": "Gear deleted successfully." } ``` ``` -------------------------------- ### GET /api/v1/activity/{id}/gpx-file Source: https://intervals.icu/api/v1/docs/index Retrieves the activity's GPX file. ```APIDOC ## GET /api/v1/activity/{id}/gpx-file ### Description Retrieves the GPX file for a given activity. ### Method GET ### Endpoint /api/v1/activity/{id}/gpx-file ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the activity. ### Request Example ```json { "example": "GET /api/v1/activity/12345/gpx-file" } ``` ### Response #### Success Response (200) - **GPX File** (file) - The GPX file content. #### Response Example ```xml Activity Name 10.0 ``` ```