Workouts Get Details - TrainingPeaks/PartnersAPI GitHub Wiki
Workout's detailed data
Returns detailed data for a specific athlete's workout. This includes the time series data as well as a break down of statistics for the workout and laps.
- Resource endpoint: /v2/workouts/id/{id}/details
- HTTP Method: GET
- OAuth Scope Required: workouts:details
- Input:
- Id. Required.
Example:
Testing:
https://api.sandbox.trainingpeaks.com/v2/workouts/id/123456789/details
Production:
https://api.trainingpeaks.com/v2/workouts/id/123456789/details
Returns: A workout detail object containing:
WorkoutId
WorkoutChannels
for the time series dataChannels
contains a list of available fields that matches the order that data appears in the value arrays.
SwimStats
for .FIT swim filesWorkoutStats
stats for the entire workoutLapStats
stats for each lap
Example (This example is a mix of different workouts data):
{
"WorkoutId": 123456789,
"WorkoutChannels": {
"Channels": [
"Cadence",
"Distance",
"Elevation",
"PositionLat",
"PositionLong",
"HeartRate",
"Power",
"Speed",
"Temperature",
"Grade",
"VerticalSpeed",
"VerticalOscillation",
"StanceTimePercent",
"StanceTime",
"NormalizedPower",
"PowerBalance",
"PowerLeft",
"PowerRight",
"LeftTorqueEffectiveness",
"RightTorqueEffectiveness",
"LeftPedalSmoothness",
"RightPedalSmoothness",
"CombinedPedalSmoothness",
"Torque",
"TotalHemoglobinConc",
"TotalHemoglobinConc2nd",
"TotalHemoglobinConc3rd",
"SaturatedHemoglobinPercent",
"SaturatedHemoglobinPercent2nd",
"SaturatedHemoglobinPercent3rd",
"LeftPlatformCenterOffset",
"RightPlatformCenterOffset",
"LeftPowerPhaseStart",
"LeftPowerPhaseEnd",
"LeftPowerPhasePeakStart",
"LeftPowerPhasePeakEnd",
"RightPowerPhaseStart",
"RightPowerPhaseEnd",
"RightPowerPhasePeakStart",
"RightPowerPhasePeakEnd",
"VerticalRatio",
"StanceTimeBalance",
"StepLength",
],
"Data": [
{
"Event": "Start",
"MillisecondOffset": 0,
"Values": [
0,
0,
1667.92,
39.97426,
-105.15238,
71,
0,
0,
19,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
]
},
{
"Event": "None",
"MillisecondOffset": 1000,
"Values": [
0,
0,
1667.92,
39.97426,
-105.15238,
71,
0,
5.645,
19,
1,
1,
2.10,
1,
12,
300,
50,
300,
300,
35,
55,
70,
65,
100,
45,
46,
42,
0,
-2,
10,
255,
255,
10,
15,
255,
255,
255,
255,
255,
350,
350,
7,
50,
80,
]
},
...
{
"Event": "Stop",
"MillisecondOffset": 4300000,
"Values": [
41,
28314.17,
1677.32,
39.97426,
-105.15245,
117,
0,
0,
12,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
]
}
]
},
"SwimStats": {
"PoolLength": 25,
"PoolLengthUnit": "Metric",
"Lengths": [
{
"Id": 0,
"StartTimeMs": 0,
"EndTimeMs": 27312,
"StartDistance": 0,
"TotalElapsedTime": 27.312,
"TotalTimerTime": 27.312,
"TotalStrokes": 10,
"SpeedAverage": 0.915,
"StrokeCount": null,
"CadenceAverage": 22,
"SwimStroke": "Freestyle",
"SwimLengthType": "Active",
"Swolf": 37.31,
"HeartRateAverage": 82.6
},
...
{
"Id": 95,
"StartTimeMs": 3871000,
"EndTimeMs": 3871731,
"StartDistance": 2000,
"TotalElapsedTime": 0.732,
"TotalTimerTime": 0.732,
"TotalStrokes": null,
"SpeedAverage": null,
"StrokeCount": null,
"CadenceAverage": null,
"SwimStroke": "Invalid",
"SwimLengthType": "Idle",
"Swolf": null,
"HeartRateAverage": 0
}
],
"Stats": {
"StartLengthIndex": 0,
"EndLengthIndex": 95,
"StartTimeMs": 0,
"EndTimeMs": 3871731,
"ElapsedTimeMs": 3868307,
"MovingTimeMs": 2244562,
"StoppedTimeMs": 1623745,
"SwimStroke": "Mixed",
"Distance": 2000,
"DistanceNonDrill": 1700,
"DistanceDrill": 300,
"PaceMinimum": 0.61887,
"PaceMaximum": 1.481,
"PaceAverage": 0.89104,
"TotalStrokes": 730,
"StrokeRateMinimum": 18,
"StrokeRateMaximum": 32,
"StrokeRateAverage": 24.514705882352942,
"StrokesPerLengthMinimum": 7,
"StrokesPerLengthMaximum": 15,
"StrokesPerLengthAverage": 10.735294117647058,
"SwolfAverage": 37.18,
"DistancePerStroke": 2.33,
"HeartRateMinimum": 55,
"HeartRateMaximum": 139,
"HeartRateAverage": 98.76951913133402
}
},
"WorkoutStats": {
"Name": "Louisville Road Cycling",
"StartTimeMs": 0,
"EndTimeMs": 4301000,
"ElapsedTimeMs": 4300656,
"StoppedTimeMs": 0,
"Tss": 60.8,
"TssCalculationMethod": "Power",
"IF": 0.72,
"HeartRateMinimum": 66,
"HeartRateMaximum": 146,
"HeartRateAverage": 115,
"SpeedAverage": 6.584,
"SpeedMaximum": 12.858,
"SpeedMinimum": 0,
"NormalizedSpeed": null,
"NormalizedPower": 179,
"PowerAverage": 142,
"PowerMaximum": 451,
"PowerMinimum": 0,
"TorqueAverage": null,
"TorqueMaximum": null,
"TorqueMinimum": null,
"TempMin": 12,
"TempAvg": 13.9154844,
"TempMax": 19,
"CadenceAverage": 80,
"CadenceMaximum": 112,
"CadenceMinimum": 0,
"Energy": 611.474,
"ElevationGain": 266,
"ElevationLoss": 258,
"ElevationMinimum": 1641,
"ElevationAverage": 1682,
"ElevationMaximum": 1742,
"Grade": 0.028,
"EfficiencyFactor": 1.56,
"EnergyRight": null,
"PowerPulseDecoupling": 4.5,
"SpeedPulseDecoupling": -4.68,
"PowerBalanceRight": null,
"PowerBalanceLeft": null,
"VAM": 223,
"VAMWattsPerKg": 1.11,
"WattsPerKg": 2.02,
"VI": 1.26
},
"LapStats": [
{
"Name": "Lap 1",
"StartTimeMs": 0,
"EndTimeMs": 1282000,
"ElapsedTimeMs": 1282000,
"StoppedTimeMs": 866,
"Tss": 20.5,
"TssCalculationMethod": "Power",
"IF": 0.77,
"HeartRateMinimum": 71,
"HeartRateMaximum": 143,
"HeartRateAverage": 122,
"SpeedAverage": 6.281,
"SpeedMaximum": 9.965,
"SpeedMinimum": 0,
"NormalizedSpeed": null,
"NormalizedPower": 192,
"PowerAverage": 169,
"PowerMaximum": 391,
"PowerMinimum": 0,
"TorqueAverage": null,
"TorqueMaximum": null,
"TorqueMinimum": null,
"TempMin": 13,
"TempAvg": 14.7987518,
"TempMax": 19,
"CadenceAverage": 87,
"CadenceMaximum": 112,
"CadenceMinimum": 0,
"Energy": 216.878,
"ElevationGain": 68.396728515625,
"ElevationLoss": 40.5980224609375,
"ElevationMinimum": 1657,
"ElevationAverage": 1688,
"ElevationMaximum": 1728,
"Grade": 0.345,
"EfficiencyFactor": 1.57,
"EnergyRight": null,
"PowerPulseDecoupling": -6.26,
"SpeedPulseDecoupling": 7.08,
"PowerBalanceRight": null,
"PowerBalanceLeft": null,
"VAM": 192,
"VAMWattsPerKg": 0.94,
"WattsPerKg": 2.4,
"VI": 1.14
},
{
"Name": "Lap 4",
"StartTimeMs": 3686000,
"EndTimeMs": 4300000,
"ElapsedTimeMs": 614000,
"StoppedTimeMs": -2362,
"Tss": 6.3,
"TssCalculationMethod": "Power",
"IF": 0.62,
"HeartRateMinimum": 94,
"HeartRateMaximum": 133,
"HeartRateAverage": 113,
"SpeedAverage": 6.774,
"SpeedMaximum": 10.301,
"SpeedMinimum": 0,
"NormalizedSpeed": null,
"NormalizedPower": 156,
"PowerAverage": 137,
"PowerMaximum": 357,
"PowerMinimum": 0,
"TorqueAverage": null,
"TorqueMaximum": null,
"TorqueMinimum": null,
"TempMin": 12,
"TempAvg": 13.0765476,
"TempMax": 14,
"CadenceAverage": 84,
"CadenceMaximum": 104,
"CadenceMinimum": 7,
"Energy": 83.917,
"ElevationGain": 16.19921875,
"ElevationLoss": 25.5986328125,
"ElevationMinimum": 1665,
"ElevationAverage": 1673,
"ElevationMaximum": 1685,
"Grade": -0.225,
"EfficiencyFactor": 1.38,
"EnergyRight": null,
"PowerPulseDecoupling": 9.5,
"SpeedPulseDecoupling": -1.95,
"PowerBalanceRight": null,
"PowerBalanceLeft": null,
"VAM": 95,
"VAMWattsPerKg": 0.48,
"WattsPerKg": 1.95,
"VI": 1.14
}
]
}
}