Performance Summary
ZoneTimeMinutes
pydantic-model
¶
Bases: OtfItemBase
Time spent in each heart rate zone during a workout, measured in minutes.
Show JSON schema:
{
"description": "Time spent in each heart rate zone during a workout, measured in minutes.",
"properties": {
"gray": {
"description": "Minutes in the gray (rest) zone.",
"title": "Gray",
"type": "integer"
},
"blue": {
"description": "Minutes in the blue (light effort) zone.",
"title": "Blue",
"type": "integer"
},
"green": {
"description": "Minutes in the green (base pace) zone.",
"title": "Green",
"type": "integer"
},
"orange": {
"description": "Minutes in the orange (push pace) zone.",
"title": "Orange",
"type": "integer"
},
"red": {
"description": "Minutes in the red (all-out) zone.",
"title": "Red",
"type": "integer"
}
},
"required": [
"gray",
"blue",
"green",
"orange",
"red"
],
"title": "ZoneTimeMinutes",
"type": "object"
}
Fields:
HeartRate
pydantic-model
¶
Bases: OtfItemBase
Heart rate statistics from a workout.
Show JSON schema:
{
"description": "Heart rate statistics from a workout.",
"properties": {
"max_hr": {
"description": "Member's configured max heart rate.",
"title": "Max Hr",
"type": "integer"
},
"peak_hr": {
"description": "Highest heart rate reached during the workout.",
"title": "Peak Hr",
"type": "integer"
},
"peak_hr_percent": {
"description": "Peak HR as a percentage of max HR.",
"title": "Peak Hr Percent",
"type": "integer"
},
"avg_hr": {
"description": "Average heart rate during the workout.",
"title": "Avg Hr",
"type": "integer"
},
"avg_hr_percent": {
"description": "Average HR as a percentage of max HR.",
"title": "Avg Hr Percent",
"type": "integer"
}
},
"required": [
"max_hr",
"peak_hr",
"peak_hr_percent",
"avg_hr",
"avg_hr_percent"
],
"title": "HeartRate",
"type": "object"
}
Fields:
-
max_hr(int) -
peak_hr(int) -
peak_hr_percent(int) -
avg_hr(int) -
avg_hr_percent(int)
PerformanceMetric
pydantic-model
¶
Bases: OtfItemBase
A single performance metric with display and raw values.
Show JSON schema:
{
"description": "A single performance metric with display and raw values.",
"properties": {
"display_value": {
"description": "Formatted value for display (e.g. '6:30').",
"title": "Display Value"
},
"display_unit": {
"description": "Unit label for display (e.g. 'min/mi', 'mph').",
"title": "Display Unit",
"type": "string"
},
"metric_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
}
],
"description": "The raw value of the metric, as a float or int. When time this reflects seconds.",
"title": "Metric Value"
}
},
"required": [
"display_value",
"display_unit",
"metric_value"
],
"title": "PerformanceMetric",
"type": "object"
}
Fields:
-
display_value(Any) -
display_unit(str) -
metric_value(float | int)
metric_value
pydantic-field
¶
metric_value
The raw value of the metric, as a float or int. When time this reflects seconds.
BaseEquipment
pydantic-model
¶
Bases: OtfItemBase
Base class for equipment performance data shared between treadmill and rower.
Show JSON schema:
{
"$defs": {
"PerformanceMetric": {
"description": "A single performance metric with display and raw values.",
"properties": {
"display_value": {
"description": "Formatted value for display (e.g. '6:30').",
"title": "Display Value"
},
"display_unit": {
"description": "Unit label for display (e.g. 'min/mi', 'mph').",
"title": "Display Unit",
"type": "string"
},
"metric_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
}
],
"description": "The raw value of the metric, as a float or int. When time this reflects seconds.",
"title": "Metric Value"
}
},
"required": [
"display_value",
"display_unit",
"metric_value"
],
"title": "PerformanceMetric",
"type": "object"
}
},
"description": "Base class for equipment performance data shared between treadmill and rower.",
"properties": {
"avg_pace": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average pace during the workout segment."
},
"avg_speed": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average speed during the workout segment."
},
"max_pace": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Fastest pace achieved."
},
"max_speed": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Maximum speed achieved."
},
"moving_time": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total time spent actively moving."
},
"total_distance": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total distance covered."
}
},
"required": [
"avg_pace",
"avg_speed",
"max_pace",
"max_speed",
"moving_time",
"total_distance"
],
"title": "BaseEquipment",
"type": "object"
}
Fields:
-
avg_pace(PerformanceMetric) -
avg_speed(PerformanceMetric) -
max_pace(PerformanceMetric) -
max_speed(PerformanceMetric) -
moving_time(PerformanceMetric) -
total_distance(PerformanceMetric)
Treadmill
pydantic-model
¶
Bases: BaseEquipment
Treadmill-specific performance data from a workout.
Show JSON schema:
{
"$defs": {
"PerformanceMetric": {
"description": "A single performance metric with display and raw values.",
"properties": {
"display_value": {
"description": "Formatted value for display (e.g. '6:30').",
"title": "Display Value"
},
"display_unit": {
"description": "Unit label for display (e.g. 'min/mi', 'mph').",
"title": "Display Unit",
"type": "string"
},
"metric_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
}
],
"description": "The raw value of the metric, as a float or int. When time this reflects seconds.",
"title": "Metric Value"
}
},
"required": [
"display_value",
"display_unit",
"metric_value"
],
"title": "PerformanceMetric",
"type": "object"
}
},
"description": "Treadmill-specific performance data from a workout.",
"properties": {
"avg_pace": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average pace during the workout segment."
},
"avg_speed": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average speed during the workout segment."
},
"max_pace": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Fastest pace achieved."
},
"max_speed": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Maximum speed achieved."
},
"moving_time": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total time spent actively moving."
},
"total_distance": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total distance covered."
},
"avg_incline": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average incline during the treadmill segment."
},
"elevation_gained": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total elevation gained."
},
"max_incline": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Maximum incline achieved."
}
},
"required": [
"avg_pace",
"avg_speed",
"max_pace",
"max_speed",
"moving_time",
"total_distance",
"avg_incline",
"elevation_gained",
"max_incline"
],
"title": "Treadmill",
"type": "object"
}
Fields:
Rower
pydantic-model
¶
Bases: BaseEquipment
Rower-specific performance data from a workout.
Show JSON schema:
{
"$defs": {
"PerformanceMetric": {
"description": "A single performance metric with display and raw values.",
"properties": {
"display_value": {
"description": "Formatted value for display (e.g. '6:30').",
"title": "Display Value"
},
"display_unit": {
"description": "Unit label for display (e.g. 'min/mi', 'mph').",
"title": "Display Unit",
"type": "string"
},
"metric_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
}
],
"description": "The raw value of the metric, as a float or int. When time this reflects seconds.",
"title": "Metric Value"
}
},
"required": [
"display_value",
"display_unit",
"metric_value"
],
"title": "PerformanceMetric",
"type": "object"
}
},
"description": "Rower-specific performance data from a workout.",
"properties": {
"avg_pace": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average pace during the workout segment."
},
"avg_speed": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average speed during the workout segment."
},
"max_pace": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Fastest pace achieved."
},
"max_speed": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Maximum speed achieved."
},
"moving_time": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total time spent actively moving."
},
"total_distance": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total distance covered."
},
"avg_cadence": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average strokes per minute."
},
"avg_power": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average power output in watts."
},
"max_cadence": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Maximum strokes per minute achieved."
}
},
"required": [
"avg_pace",
"avg_speed",
"max_pace",
"max_speed",
"moving_time",
"total_distance",
"avg_cadence",
"avg_power",
"max_cadence"
],
"title": "Rower",
"type": "object"
}
Fields:
PerformanceSummary
pydantic-model
¶
Bases: OtfItemBase
Represents a workout performance summary - much of the same data as in the app, but not all.
You likely want to use the Workout model and get_workouts method instead.
Show JSON schema:
{
"$defs": {
"HeartRate": {
"description": "Heart rate statistics from a workout.",
"properties": {
"max_hr": {
"description": "Member's configured max heart rate.",
"title": "Max Hr",
"type": "integer"
},
"peak_hr": {
"description": "Highest heart rate reached during the workout.",
"title": "Peak Hr",
"type": "integer"
},
"peak_hr_percent": {
"description": "Peak HR as a percentage of max HR.",
"title": "Peak Hr Percent",
"type": "integer"
},
"avg_hr": {
"description": "Average heart rate during the workout.",
"title": "Avg Hr",
"type": "integer"
},
"avg_hr_percent": {
"description": "Average HR as a percentage of max HR.",
"title": "Avg Hr Percent",
"type": "integer"
}
},
"required": [
"max_hr",
"peak_hr",
"peak_hr_percent",
"avg_hr",
"avg_hr_percent"
],
"title": "HeartRate",
"type": "object"
},
"PerformanceMetric": {
"description": "A single performance metric with display and raw values.",
"properties": {
"display_value": {
"description": "Formatted value for display (e.g. '6:30').",
"title": "Display Value"
},
"display_unit": {
"description": "Unit label for display (e.g. 'min/mi', 'mph').",
"title": "Display Unit",
"type": "string"
},
"metric_value": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
}
],
"description": "The raw value of the metric, as a float or int. When time this reflects seconds.",
"title": "Metric Value"
}
},
"required": [
"display_value",
"display_unit",
"metric_value"
],
"title": "PerformanceMetric",
"type": "object"
},
"Rower": {
"description": "Rower-specific performance data from a workout.",
"properties": {
"avg_pace": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average pace during the workout segment."
},
"avg_speed": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average speed during the workout segment."
},
"max_pace": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Fastest pace achieved."
},
"max_speed": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Maximum speed achieved."
},
"moving_time": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total time spent actively moving."
},
"total_distance": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total distance covered."
},
"avg_cadence": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average strokes per minute."
},
"avg_power": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average power output in watts."
},
"max_cadence": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Maximum strokes per minute achieved."
}
},
"required": [
"avg_pace",
"avg_speed",
"max_pace",
"max_speed",
"moving_time",
"total_distance",
"avg_cadence",
"avg_power",
"max_cadence"
],
"title": "Rower",
"type": "object"
},
"Treadmill": {
"description": "Treadmill-specific performance data from a workout.",
"properties": {
"avg_pace": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average pace during the workout segment."
},
"avg_speed": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average speed during the workout segment."
},
"max_pace": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Fastest pace achieved."
},
"max_speed": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Maximum speed achieved."
},
"moving_time": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total time spent actively moving."
},
"total_distance": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total distance covered."
},
"avg_incline": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Average incline during the treadmill segment."
},
"elevation_gained": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Total elevation gained."
},
"max_incline": {
"allOf": [
{
"$ref": "#/$defs/PerformanceMetric"
}
],
"description": "Maximum incline achieved."
}
},
"required": [
"avg_pace",
"avg_speed",
"max_pace",
"max_speed",
"moving_time",
"total_distance",
"avg_incline",
"elevation_gained",
"max_incline"
],
"title": "Treadmill",
"type": "object"
},
"ZoneTimeMinutes": {
"description": "Time spent in each heart rate zone during a workout, measured in minutes.",
"properties": {
"gray": {
"description": "Minutes in the gray (rest) zone.",
"title": "Gray",
"type": "integer"
},
"blue": {
"description": "Minutes in the blue (light effort) zone.",
"title": "Blue",
"type": "integer"
},
"green": {
"description": "Minutes in the green (base pace) zone.",
"title": "Green",
"type": "integer"
},
"orange": {
"description": "Minutes in the orange (push pace) zone.",
"title": "Orange",
"type": "integer"
},
"red": {
"description": "Minutes in the red (all-out) zone.",
"title": "Red",
"type": "integer"
}
},
"required": [
"gray",
"blue",
"green",
"orange",
"red"
],
"title": "ZoneTimeMinutes",
"type": "object"
}
},
"description": "Represents a workout performance summary - much of the same data as in the app, but not all.\n\nYou likely want to use the `Workout` model and `get_workouts` method instead.",
"properties": {
"id": {
"description": "Unique identifier for this performance summary",
"title": "Id",
"type": "string"
},
"ratable": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether this workout is eligible for rating.",
"title": "Ratable"
},
"calories_burned": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Total calories burned.",
"title": "Calories Burned"
},
"splat_points": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Total splat points earned.",
"title": "Splat Points"
},
"step_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Total step count.",
"title": "Step Count"
},
"zone_time_minutes": {
"anyOf": [
{
"$ref": "#/$defs/ZoneTimeMinutes"
},
{
"type": "null"
}
],
"default": null,
"description": "Time spent in each HR zone."
},
"heart_rate": {
"anyOf": [
{
"$ref": "#/$defs/HeartRate"
},
{
"type": "null"
}
],
"default": null,
"description": "Heart rate statistics."
},
"rower_data": {
"anyOf": [
{
"$ref": "#/$defs/Rower"
},
{
"type": "null"
}
],
"default": null,
"description": "Rower performance data."
},
"treadmill_data": {
"anyOf": [
{
"$ref": "#/$defs/Treadmill"
},
{
"type": "null"
}
],
"default": null,
"description": "Treadmill performance data."
}
},
"required": [
"id"
],
"title": "PerformanceSummary",
"type": "object"
}
Fields:
-
performance_summary_id(str) -
ratable(bool | None) -
calories_burned(int | None) -
splat_points(int | None) -
step_count(int | None) -
zone_time_minutes(ZoneTimeMinutes | None) -
heart_rate(HeartRate | None) -
rower_data(Rower | None) -
treadmill_data(Treadmill | None)
performance_summary_id
pydantic-field
¶
performance_summary_id
Unique identifier for this performance summary