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 data
    • Channels contains a list of available fields that matches the order that data appears in the value arrays.
  • SwimStats for .FIT swim files
  • WorkoutStats stats for the entire workout
  • LapStats 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
			}
		]
	}
}