Data models
📘 Note
All fields in all models are nullable unless explicitly stated otherwise.
🚧 Uniquely identifying payloads
ActivityActivity payloads can be uniquely identified by their
summary_id
field undermetadata
. If an activity comes in a second time, with the same summary ID, you should update the previous entries with the new data corresponding to thatsummary_id
Body, Daily, Sleep, NutritionBody, Daily, Sleep, Nutrition payloads can be uniquely identified by the combination of their
start_time
andend_time
fields undermetadata
. If one of these payloads comes in again, with the samestart_time
andend_time
, you should update the previous entries with the new data.For example, the
Daily
payload can come in multiple times in one day, with updatedsteps
field every time
🚧 Schema parser
When building a parser for the models below, please take into account that more fields may be added down the line (but no field name should ever change within a given version)
Also note that this version is equivalent to
2022_03_16
TerraUser
{
"user_id": String, // not nullable
"provider": String, // not nullable
"last_webhook_update": String,
"scopes": String,
"reference_id": String
}
Core data types
Activity
{
// NOTE ────────────────────────────────────────────────────
// ❶ Unless a property is explicitly documented as
// “required / non‑null”, **it may be `null`.**
// ❷ Date‑time strings are ISO‑8601.
// ❸ Top‑level keys are listed alphabetically for clarity.
// ─────────────────────────────────────────────────────────
"active_durations_data": {
"activity_levels_samples": Array<ActivityLevelSample>,
"activity_seconds": Number,
"inactivity_seconds": Number,
"low_intensity_seconds": Number,
"moderate_intensity_seconds": Number,
"num_continuous_inactive_periods": Number,
"rest_seconds": Number,
"standing_hours_count": Number,
"standing_seconds": Number,
"vigorous_intensity_seconds": Number
},
"calories_data": {
"BMR_calories": Number,
"calorie_samples": Array<CalorieSample>,
"net_activity_calories": Number,
"net_intake_calories": Number,
"total_burned_calories": Number
},
"cheat_detection": CheatDetection,
"data_enrichment": {
"stress_score": Number
},
"device_data": {
"activation_timestamp": String,
"data_provided": Array<DeviceDataType>,
"hardware_version": String,
"last_upload_date": String,
"manufacturer": String,
"name": String,
"other_devices": Array<OtherDeviceData>,
"serial_number": String,
"software_version": String
},
/* schema for each element of other_devices */
"OtherDeviceData": {
"activation_timestamp": String,
"data_provided": Array<DeviceDataType>,
"hardware_version": String,
"last_upload_date": String,
"manufacturer": String,
"name": String,
"serial_number": String,
"software_version": String
},
"distance_data": {
"detailed": {
"distance_samples": Array<DistanceSample>,
"elevation_samples": Array<ElevationSample>,
"floors_climbed_samples": Array<FloorsClimbedSample>,
"step_samples": Array<StepSample>
},
"summary": {
"distance_meters": Number,
"elevation": {
"avg_meters": Number,
"gain_actual_meters": Number,
"gain_planned_meters": Number,
"loss_actual_meters": Number,
"max_meters": Number,
"min_meters": Number
},
"floors_climbed": Number,
"steps": Number,
"swimming": {
"num_laps": Number,
"num_strokes": Number,
"pool_length_meters": Number
}
}
},
"energy_data": {
"energy_kilojoules": Number,
"energy_planned_kilojoules": Number
},
"heart_rate_data": {
"detailed": {
"hr_samples": Array<HeartRateDataSample>,
"hrv_samples_rmssd": Array<HeartRateVariabilityDataSampleRMSSD>,
"hrv_samples_sdnn": Array<HeartRateVariabilityDataSampleSDNN>
},
"summary": {
"avg_hr_bpm": Number,
"avg_hrv_rmssd": Number,
"avg_hrv_sdnn": Number,
"hr_zone_data": Array<HeartRateZoneData>,
"max_hr_bpm": Number,
"min_hr_bpm": Number,
"resting_hr_bpm": Number,
"user_max_hr_bpm": Number
}
},
"lap_data": {
"laps": Array<LapSample>
},
"MET_data": {
"MET_samples": Array<METSample>,
"avg_level": Number,
"num_high_intensity_minutes": Number,
"num_inactive_minutes": Number,
"num_low_intensity_minutes": Number,
"num_moderate_intensity_minutes": Number
},
"metadata": {
"city": String,
"country": String,
"end_time": String, // required
"name": String,
"start_time": String, // required
"state": String,
"summary_id": String, // required
"timestamp_localization": Number,
"type": ActivityType, // required
"upload_type": UploadType // required
},
"movement_data": {
"adjusted_max_speed_meters_per_second": Number,
"avg_cadence_rpm": Number,
"avg_pace_minutes_per_kilometer": Number,
"avg_speed_meters_per_second": Number,
"avg_torque_newton_meters": Number,
"avg_velocity_meters_per_second": Number,
"cadence_samples": Array<CadenceSample>,
"max_cadence_rpm": Number,
"max_pace_minutes_per_kilometer": Number,
"max_speed_meters_per_second": Number,
"max_torque_newton_meters": Number,
"max_velocity_meters_per_second": Number,
"normalized_speed_meters_per_second": Number,
"speed_samples": Array<SpeedSample>,
"torque_samples": Array<TorqueSample>
},
"oxygen_data": {
"avg_saturation_percentage": Number,
"saturation_samples": Array<OxygenSaturationSample>,
"vo2_samples": Array<Vo2MaxSample>,
"vo2max_ml_per_min_per_kg": Number
},
"polyline_map_data": {
"summary_polyline": String
},
"position_data": {
"center_pos_lat_lng_deg": [Number, Number],
"end_pos_lat_lng_deg": [Number, Number],
"position_samples": Array<PositionSample>,
"start_pos_lat_lng_deg": [Number, Number]
},
"power_data": {
"avg_watts": Number,
"max_watts": Number,
"power_samples": Array<PowerSample>
},
"strain_data": {
"strain_level": Number
},
"TSS_data": {
"TSS_samples": Array<TSSSample>
},
"work_data": {
"work_kilojoules": Number
}
}
Athlete
{
"age": Number,
"country": String,
"bio": String,
"state": String,
"last_name": String,
"sex": String,
"city": String,
"email": String,
"date_of_birth": String,
"first_name": String,
"gender": String,
"joined_provider": String,
"devices": Array<device_data>
}
Body
{
"blood_pressure_data": {
"blood_pressure_samples": Array<BloodPressureSample>
},
"device_data": {
"activation_timestamp": String,
"hardware_version": String,
"software_version": String,
"serial_number": String,
"manufacturer": String,
"name": String,
"sensor_state": String,
"other_devices": Array<OtherDeviceData>,
"data_provided": Array<DeviceDataType>,
"last_upload_date": String
},
"heart_data": {
"afib_classification_samples": Array<AFibClassificationSample>,
"ecg_signal": Array<ECGReading>,
"heart_rate_data": {
"detailed": {
"hr_samples": Array<HeartRateDataSample>,
"hrv_samples_rmssd": Array<HeartRateVariabilityDataSampleRMSSD>,
"hrv_samples_sdnn": Array<HeartRateVariabilityDataSampleSDNN>
},
"summary": {
"avg_hr_bpm": Number,
"avg_hrv_rmssd": Number,
"avg_hrv_sdnn": Number,
"hr_zone_data": Array<HeartRateZoneData>,
"max_hr_bpm": Number,
"min_hr_bpm": Number,
"resting_hr_bpm": Number,
"user_max_hr_bpm": Number
}
},
"pulse_wave_velocity_samples": Array<PulseVelocitySample>,
"rr_interval_samples": Array<RRInterval>
},
"hydration_data": {
"day_total_water_consumption_ml": Number,
"hydration_amount_samples": Array<HydrationAmountSample>
},
"ketone_data": {
"ketone_samples": Array<KetoneSample>
},
"measurements_data": {
"measurements": Array<MeasurementDataSample>
},
"metadata": {
"start_time": String, // required (ISO-8601)
"end_time": String, // required (ISO-8601)
"timestamp_localization": Number // 0 = UTC, 1 = local-time, etc.
},
"oxygen_data": {
"avg_saturation_percentage": Number,
"saturation_samples": Array<OxygenSaturationSample>,
"vo2_samples": Array<Vo2MaxSample>,
"vo2max_ml_per_min_per_kg": Number
},
"temperature_data": {
"ambient_temperature_samples": Array<TemperatureSample>,
"body_temperature_samples": Array<TemperatureSample>,
"skin_temperature_samples": Array<TemperatureSample>
},
"glucose_data": {
"blood_glucose_samples": Array<GlucoseDataSample>,
"detailed_blood_glucose_samples": Array<GlucoseDataSample>,
"daily_patterns": Array<DailyPatternSample>,
"sensor_usage": Number,
"day_avg_blood_glucose_mg_per_dL": Number,
"time_in_range": Number,
"gmi": Number
}
}
Daily
{
"active_durations_data": {
"activity_levels_samples": Array<ActivityLevelSample>,
"activity_seconds": Number,
"inactivity_seconds": Number,
"low_intensity_seconds": Number,
"moderate_intensity_seconds": Number,
"num_continuous_inactive_periods": Number,
"rest_seconds": Number,
"standing_hours_count": Number,
"standing_seconds": Number,
"vigorous_intensity_seconds": Number
},
"calories_data": {
"BMR_calories": Number,
"calorie_samples": Array<CalorieSample>,
"net_activity_calories": Number,
"net_intake_calories": Number,
"total_burned_calories": Number
},
"data_enrichment": {
"cardiovascular_contributors": Array<DataContributor>,
"cardiovascular_score": Number,
"immune_contributors": Array<DataContributor>,
"immune_index": Number,
"readiness_contributors": Array<DataContributor>,
"readiness_score": Number,
"respiratory_contributors": Array<DataContributor>,
"respiratory_score": Number,
"start_time": String,
"stress_contributors": Array<DataContributor>,
"total_stress_score": Number
},
"device_data": {
"activation_timestamp": String,
"data_provided": Array<DeviceDataType>,
"hardware_version": String,
"last_upload_date": String,
"manufacturer": String,
"name": String,
"other_devices": Array<OtherDeviceData>,
"serial_number": String,
"software_version": String
},
"distance_data": {
"detailed": {
"distance_samples": Array<DistanceSample>,
"elevation_samples": Array<ElevationSample>,
"floors_climbed_samples": Array<FloorsClimbedSample>,
"step_samples": Array<StepSample>
},
"distance_meters": Number,
"elevation": {
"avg_meters": Number,
"gain_actual_meters": Number,
"gain_planned_meters": Number,
"loss_actual_meters": Number,
"max_meters": Number,
"min_meters": Number
},
"floors_climbed": Number,
"steps": Number,
"swimming": {
"num_laps": Number,
"num_strokes": Number,
"pool_length_meters": Number
}
},
"heart_rate_data": {
"detailed": {
"hr_samples": Array<HeartRateDataSample>,
"hrv_samples_rmssd": Array<HeartRateVariabilityDataSampleRMSSD>,
"hrv_samples_sdnn": Array<HeartRateVariabilityDataSampleSDNN>
},
"summary": {
"avg_hr_bpm": Number,
"avg_hrv_rmssd": Number,
"avg_hrv_sdnn": Number,
"hr_zone_data": Array<HeartRateZoneData>,
"max_hr_bpm": Number,
"min_hr_bpm": Number,
"resting_hr_bpm": Number,
"user_max_hr_bpm": Number
}
},
"MET_data": {
"MET_samples": Array<METSample>,
"avg_level": Number,
"num_high_intensity_minutes": Number,
"num_inactive_minutes": Number,
"num_low_intensity_minutes": Number,
"num_moderate_intensity_minutes": Number
},
"metadata": {
"end_time": String, // required
"start_time": String, // required
"timestamp_localization": Number,
"upload_type": UploadType // required
},
"oxygen_data": {
"avg_saturation_percentage": Number,
"saturation_samples": Array<OxygenSaturationSample>,
"vo2_samples": Array<Vo2MaxSample>,
"vo2max_ml_per_min_per_kg": Number
},
"scores": {
"activity": Number,
"recovery": Number,
"sleep": Number
},
"strain_data": {
"strain_level": Number
},
"stress_data": {
"activity_stress_duration_seconds": Number,
"avg_stress_level": Number,
"body_battery_samples": Array<BodyBatterySample>,
"high_stress_duration_seconds": Number,
"low_stress_duration_seconds": Number,
"max_stress_level": Number,
"medium_stress_duration_seconds": Number,
"rest_stress_duration_seconds": Number,
"samples": Array<StressSample>,
"stress_duration_seconds": Number,
"stress_rating": Number
},
"tag_data": {
"tags": Array<TagEntry>
}
}
Menstruation
{
"metadata": {
"end_time": String,
"start_time": String
},
"menstruation_data": {
"period_length_days": Number,
"current_phase": MenstruationFlow,
"length_of_current_phase_days": Number,
"days_until_next_phase": Number,
"period_start_date": String,
"predicted_cycle_length_days": Number,
"day_in_cycle": Number,
"last_updated_time": String,
"cycle_length_days": Number,
"is_predicted_cycle": String,
"menstruation_flow": Array<MenstruationFlow>
}
}
Nutrition
{
"drink_samples": Array<DrinkSample>,
"meals": Array<Meal>,
"metadata": {
"end_time": String, // required – ISO‑8601
"start_time": String, // required – ISO‑8601
"timestamp_localization": Number
},
"summary": {
"macros": {
"alcohol_g": Number,
"calories": Number,
"carbohydrates_g": Number,
"cholesterol_mg": Number,
"fat_g": Number,
"fiber_g": Number,
"net_carbohydrates_g": Number,
"protein_g": Number,
"saturated_fat_g": Number,
"sodium_mg": Number,
"sugar_g": Number,
"trans_fat_g": Number
},
"micros": {
"biotin_mg": Number,
"caffeine_mg": Number,
"calcium_mg": Number,
"chloride_mg": Number,
"chromium_mg": Number,
"copper_mg": Number,
"folate_mg": Number,
"folic_acid_mg": Number,
"iodine_mg": Number,
"iron_mg": Number,
"magnesium_mg": Number,
"manganese_mg": Number,
"molybdenum_mg": Number,
"niacin_mg": Number,
"pantothenic_acid_mg": Number,
"phosphorus_mg": Number,
"potassium_mg": Number,
"riboflavin_mg": Number,
"selenium_mg": Number,
"thiamin_mg": Number,
"vitamin_A_mg": Number,
"vitamin_B12_mg": Number,
"vitamin_B6_mg": Number,
"vitamin_C_mg": Number,
"vitamin_D_mg": Number,
"vitamin_D2_mg": Number,
"vitamin_D3_mg": Number,
"vitamin_E_mg": Number,
"vitamin_K_mg": Number,
"zinc_mg": Number,
/* amino‑acids & related */
"cystine_g": Number,
"histidine_g": Number,
"isoleucine_g": Number,
"leucine_g": Number,
"lysine_g": Number,
"methionine_g": Number,
"phenylalanine_g": Number,
"threonine_g": Number,
"tryptophan_g": Number,
"tyrosine_g": Number,
"valine_g": Number,
/* fats & fatty‑acids */
"monounsaturated_fat_g": Number,
"polyunsaturated_fat_g": Number,
"omega3_g": Number,
"omega6_g": Number,
/* carbohydrates */
"starch_g": Number
},
"water_ml": Number,
"drink_ml": Number
}
}
Sleep
{
"data_enrichment": {
"sleep_contributors": Array<DataContributor>,
"sleep_score": Number
},
"device_data": {
"activation_timestamp": String,
"data_provided": Array<DeviceDataType>,
"hardware_version": String,
"last_upload_date": String,
"manufacturer": String,
"name": String,
"other_devices": Array<OtherDeviceData>,
"serial_number": String,
"software_version": String
},
"heart_rate_data": {
"detailed": {
"hr_samples": Array<HeartRateDataSample>,
"hrv_samples_rmssd": Array<HeartRateVariabilityDataSampleRMSSD>,
"hrv_samples_sdnn": Array<HeartRateVariabilityDataSampleSDNN>
},
"summary": {
"avg_hr_bpm": Number,
"avg_hrv_rmssd": Number,
"avg_hrv_sdnn": Number,
"hr_zone_data": Array<HeartRateZoneData>,
"max_hr_bpm": Number,
"min_hr_bpm": Number,
"resting_hr_bpm": Number,
"user_max_hr_bpm": Number
}
},
"metadata": {
"end_time": String, // required – ISO‑8601
"start_time": String, // required – ISO‑8601
"is_nap": Boolean,
"summary_id": String,
"timestamp_localization": Number,
"upload_type": SleepUploadType // required
},
"readiness_data": {
"readiness": Number,
"recovery_level": RecoveryLevel
},
"respiration_data": {
"breaths_data": {
"avg_breaths_per_min": Number,
"end_time": String,
"max_breaths_per_min": Number,
"min_breaths_per_min": Number,
"on_demand_reading": Boolean,
"samples": Array<BreathSample>,
"start_time": String
},
"oxygen_saturation_data": {
"avg_saturation_percentage": Number,
"end_time": String,
"samples": Array<OxygenSaturationSample>,
"start_time": String
},
"snoring_data": {
"end_time": String,
"num_snoring_events": Number,
"samples": Array<SnoringSample>,
"start_time": String,
"total_snoring_duration_seconds": Number
}
},
"scores": {
"sleep": Number
},
"sleep_durations_data": {
"asleep": {
"duration_asleep_state_seconds": Number,
"duration_deep_sleep_state_seconds": Number,
"duration_light_sleep_state_seconds": Number,
"duration_REM_sleep_state_seconds": Number,
"num_REM_events": Number
},
"awake": {
"duration_awake_state_seconds": Number,
"duration_long_interruption_seconds": Number,
"duration_short_interruption_seconds": Number,
"num_out_of_bed_events": Number,
"num_wakeup_events": Number,
"sleep_latency_seconds": Number,
"wake_up_latency_seconds": Number
},
"hypnogram_samples": Array<SleepHypnogramSample>,
"other": {
"duration_in_bed_seconds": Number,
"duration_unmeasurable_sleep_seconds": Number
},
"sleep_efficiency": Number
},
"temperature_data": {
"delta": Number
}
}
Enums
DeviceDataType
Represents data types that a certain device contributed to
Steps
STEPS
Active minutes
ACTIVE_MINUTES
BMR
BMR
Calories
CALORIES
Distance
DISTANCE
Heart Rate
HEART_RATE
Oxygen Saturation (SpO2)
OXYGEN_SATURATION
Sleep type classification
SLEEP_TYPE
Speed
SPEED
Cadence
CADENCE
AFibFlag
Negative (AFib not present)
0
Positive (AFib present)
1
Inconclusive
2
ActivityType
In Vehicle
0
Biking
1
Still
3
Unknown
4
Tilting
5
Walking
7
Running
8
Aerobics
9
Badminton
10
Baseball
11
Basketball
12
Biathlon
13
Handbiking
14
Mountain Biking
15
Road Biking
16
Spinning
17
Stationary Biking
18
Utility Biking
19
Boxing
20
Calisthenics
21
Circuit Training
22
Cricket
23
Dancing
24
Elliptical
25
Fencing
26
American Football
27
Australian Football
28
English Football
29
Frisbee
30
Gardening
31
Golf
32
Gymnastics
33
Handball
34
Hiking
35
Hockey
36
Horseback Riding
37
Housework
38
Jumping Rope
39
Kayaking
40
Kettlebell Training
41
Kickboxing
42
Kitesurfing
43
Martial Arts
44
Meditation
45
Mixed Martial Arts
46
P90X Exercises
47
Paragliding
48
Pilates
49
Polo
50
Racquetball
51
Rock Climbing
52
Rowing
53
Rowing Machine
54
Rugby
55
Jogging
56
Running On Sand
57
Treadmill Running
58
Sailing
59
Scuba Diving
60
Skateboarding
61
Skating
62
Cross Skating
63
Indoor Rollerblading
64
Skiing
65
Back Country Skiing
66
Cross Country Skiing
67
Downhill Skiing
68
Kite Skiing
69
Roller Skiing
70
Sledding
71
Snowboarding
73
Snowmobile
74
Snowshoeing
75
Squash
76
Stair Climbing
77
Stair Climbing Machine
78
Stand Up Paddleboarding
79
Strength Training
80
Surfing
81
Swimming
82
Swimming In Pool
83
Open Water Swimming
84
Table Tennis
85
Team Sport
86
Tennis
87
Treadmill
88
Volleyball
89
Beach Volleyball
90
Indoor Volleyball
91
Wakeboarding
92
Walking Fitness
93
Nording Walking
94
Walking Treadmill
95
Waterpolo
96
Weightlifting
97
Wheelchair
98
Windsurfing
99
Yoga
100
Zumba
101
Diving
102
Ergometer
103
Ice Skating
104
Indoor Skating
105
Curling
106
Other
108
Crossfit
113
HIIT
114
Interval Training
115
Walkin Stroller
116
Elevator
117
Escalator
118
Archery
119
Softball
120
Guided Breathing
122
Cardio Training
123
Lacrosse
124
Stretching
125
Triathlon
126
INLINE_SKATING
127
SKY_DIVING
128
PADDLING
129
MOUNTAINEERING
130
FISHING
131
WATER_SKIING
132
INDOOR_RUNNING
133
PADEL_TENNIS
134
DRIVING
135
OFF_ROAD_DRIVING
136
MOTORBIKING
137
MOTOR_RACING
138
ENDURO
139
CANOEING
140
ORIENTEERING
141
HANG_GLIDING
142
FLYING
143
HOT_AIR_BALLOONING
144
JET_SKIING
145
POWER_BOATING
146
GAELIC_FOOTBALL
147
HURLING
148
ActivityLevel
Unknown
0
Rest
1
Inactive
2
Low Intensity
3
Medium Intensity
4
High Intensity
5
HeartRateZone
Zone 0
0
Zone 1
1
Zone 2
2
Zone 3
3
Zone 4
4
Zone 5
5
Other/custom classification
6
SleepLevel
Unknown
0
Awake
1
Sleeping
2
Out of Bed
3
Light
4
Deep
5
REM
6
UploadType
Unknown
0
Automatic
1
Manual
2
Update
3
Delete
4
Pending
5
Third party upload
6
SleepUploadType
Unknown
0
Manual
1
Automatic
2
Tentative
3
Indeterminate
4
StrokeType
OTHER
other
FREESTYLE
freestyle
BACKSTROKE
backstroke
BREASTSTROKE
breaststroke
BUTTERFLY
butterfly
GlucoseFlag
Normal
0
High
1
Low
2
NutritionUnits
Unknown
0
Gram
1
Teaspoon
2
Tablespoon
3
Cup
4
Medium Egg
5
Large Egg
6
Small Egg
7
Milliliter
8
Ounce
9
Count
10
Scoop
11
Fluid Ounce
12
RecoveryLevel
Unknown
0
Very Poor
1
Poor
2
Compromised
3
Ok
4
Good
5
Very Good
6
TrendArrow
UNKNOWN
0
FALLING_QUICKLY
1
FALLING
2
FLAT
3
RISING
4
RISING_QUICKLY
5
MenstruationFlow
UNKNOWN
0
NONE
1
LIGHT
2
MEDIUM
3
HEAVY
4
HAD
5
MealType
UNKNOWN
0
BREAKFAST
1
MORNING_SNACK
2
LUNCH
3
AFTERNOON_SNACK
4
DINNER
5
SNACK
6
StressLevel
NOT_ENOUGH_DATA
0
REST
1
LOW
2
MEDIUM
3
HIGH
4
HeartRateContext
NOT_SET
0
ACTIVE
1
NOT_ACTIVE
2
MenstrualPhase
MENSTRUAL
menstrual
FOLLICULAR
follicular
OVULATION
ovulation
LUTEAL
luteal
PMS
pms
FERTILE
fertile
FIRST_TRIMESTER
first_trimester
SECOND_TRIMESTER
second_trimester
THIRD_TRIMESTER
third_trimester
UNKNOWN
unknown
PlannedWorkout
{
"steps": Array<PlannedWorkoutStep||PlannedWorkoutRepeatStep>,
"metadata": {
"id": String,
"estimated_if": Number,
"provider": String,
"estimated_distance_meters": Number,
"estimated_elevation_gain_meters": Number,
"estimated_energy_kj": Number,
"estimated_speed_meters_per_second": Number,
"planned_date": ISO-Date-String,
"created_date": ISO-Date-String,
"estimated_tss": Number,
"type": WorkoutTypeNumber,
"name": String,
"description": String,
"pool_length_meters": Number,
"estimated_calories": Number,
"estimated_duration_seconds": Number
}
}
The Workout Types follow the same numbering as the Activity Types that can be found in https://docs.tryterra.co/reference/enums#activitytype
PlannedWorkoutStep
{
"description": String,
"order": Number,
"intensity": Number,
"durations": Array<PlannedWorkoutStepDuration>
"type": 0,
"targets": Array<PlannedWorkoutStepTarget>,
"stroke_type": Number, //for Swimming Workouts
"equipement_type": Number, //for Swimming Workouts
"exercice_category" : Number, //for Strength and Cardio workouts
"exercice_name": String, //for Strength and Cardio workouts
"weight_kg": Number, //for Strength workouts
}
REST
0
WARMUP
1
COOLDOWN
2
RECOVERY
3
INTERVAL
4
ACTIVE
5
PlannedWorkoutRepeatStep
{
"description": String,
"order": Number,
"intensity": Number,
"durations": Array<PlannedWorkoutStepDuration>
"type": 1,
"targets": Array<PlannedWorkoutStepTarget>,
"steps" : Array<PlannedWorkoutStep>
}
PlannedWorkoutStepTarget
SPEED
{ "target_type": 0, "speed_meters_per_second": Number, "speed_meters_per_second_low": Number, "speed_meters_per_second_high": Number }
HEART_RATE
{ "target_type": 1, "hr_bpm_high": Number, "hr_bpm_low": Number }
OPEN
{ "target_type": 2 }
CADENCE
{ "target_type": 3, "cadence": Number, "cadence_high": Number, "cadence_low" : Number }
POWER
{ "target_type": 4, "power_watt_high": Number, "power_watt_low": Number, "power_watt": Number }
SWIM_STROKE
{ "target_type": 8, "swim_strokes": Number }
PACE
{ "target_type": 11, "speed_meters_per_second": Number, "speed_meters_per_second_low": Number, "speed_meters_per_second_high": Number }
HEART_RATE_THRESHOLD_PERCENTAGE
{ "target_type": 12, "hr_percentage": Number, "hr_percentage_low": Number, "hr_percentage_high": Number }
HEART_RATE_MAX_PERCENTAGE
{ "target_type": 13, "hr_percentage": Number, "hr_percentage_low": Number, "hr_percentage_high": Number }
SPEED_PERCENTAGE
{ "target_type": 14, "speed_percentage": Number, "speed_percentage_low": Number, "speed_percentage_high": Number }
POWER_PERCENTAGE
{ "target_type": 15, "power_percentage": Number, "power_percentage_low": Number, "power_percentage_high": Number }
REPETITION
{ "target_type": 16, "repetitions": Number }
PlannedWorkoutStepDuration
TIME
{ "duration_type": 0, "seconds": Number }
DISTANCE_METERS
{ "duration_type": 1, "distance_meters": Number }
HR_LESS_THAN
{ "duration_type": 2, "hr_below_bpm": Number }
HR_GREATER_THAN
{ "duration_type": 3, "hr_above_bpm": Number }
CALORIES
{ "duration_type": 4, "calories": 2.0 }
OPEN
{ "duration_type": 5 }
POWER_LESS_THAN
{ "duration_type": 6, "power_below_watts": Number }
POWER_GREATER_THAN
{ "duration_type": 7, "power_above_watts": Number }
REPS
{ "duration_type": 9, "reps": Number }
FIXED_REST
{ "duration_type": 10, "rest_seconds": Number }
STEPS
{ "duration_type": 12, "steps": Number }
Enums
BACKSTROKE
0
BREASTSTROKE
1
DRILL
2
BUTTERFLY
3
FREESTYLE
4
MIXED
5
IM
6
NONE
0
SWIM_FINS
1
SWIM_KICKBOARD
2
SWIM_PADDLES
3
SWIM_PULL_BUOY
4
SWIM_SNORKEL
5
UNKNOWN
0
BENCH_PRESS
1
CALF_RAISE
2
CARDIO
3
CARRY
4
CHOP
5
CORE
6
CRUNCH
7
CURL
8
DEADLIFT
9
FLYE
10
HIP_RAISE
11
HIP_STABILITY
12
HIP_SWING
13
HYPEREXTENSION
14
LATERAL_RAISE
15
LEG_CURL
16
LEG_RAISE
17
LUNGE
18
OLYMPIC_LIFT
19
PLANK
20
PLYO
21
PULL_UP
22
PUSH_UP
23
ROW
24
SHOULDER_PRESS
25
SHOULDER_STABILITY
26
SHRUG
27
SIT_UP
28
SQUAT
29
TOTAL_BODY
30
TRICEPS_EXTENSION
31
WARM_UP
32
RUN
33
BIKE
34
CARDIO_SENSORS
35
Last updated
Was this helpful?