stravalib.model.DetailedActivity#

pydantic model stravalib.model.DetailedActivity[source]#

Represents an activity (ride, run, etc.).

Show JSON schema
{
   "title": "DetailedActivity",
   "description": "Represents an activity (ride, run, etc.).",
   "type": "object",
   "properties": {
      "bound_client": {
         "anyOf": [
            {},
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Bound Client"
      },
      "id": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Id"
      },
      "achievement_count": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Achievement Count"
      },
      "athlete": {
         "anyOf": [
            {
               "$ref": "#/$defs/MetaAthlete"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "athlete_count": {
         "anyOf": [
            {
               "minimum": 1,
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Athlete Count"
      },
      "average_speed": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Average Speed"
      },
      "average_watts": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Average Watts"
      },
      "comment_count": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Comment Count"
      },
      "commute": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Commute"
      },
      "device_watts": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Device Watts"
      },
      "distance": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Distance"
      },
      "elapsed_time": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Elapsed Time"
      },
      "elev_high": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Elev High"
      },
      "elev_low": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Elev Low"
      },
      "end_latlng": {
         "anyOf": [
            {
               "$ref": "#/$defs/LatLon"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "external_id": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "External Id"
      },
      "flagged": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Flagged"
      },
      "gear_id": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Gear Id"
      },
      "has_kudoed": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Has Kudoed"
      },
      "hide_from_home": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Hide From Home"
      },
      "kilojoules": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Kilojoules"
      },
      "kudos_count": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Kudos Count"
      },
      "manual": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Manual"
      },
      "map": {
         "anyOf": [
            {
               "$ref": "#/$defs/Map"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "max_speed": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Max Speed"
      },
      "max_watts": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Max Watts"
      },
      "moving_time": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Moving Time"
      },
      "name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Name"
      },
      "photo_count": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Photo Count"
      },
      "private": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Private"
      },
      "sport_type": {
         "anyOf": [
            {
               "$ref": "#/$defs/RelaxedSportType"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "start_date": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Start Date"
      },
      "start_date_local": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Start Date Local"
      },
      "start_latlng": {
         "anyOf": [
            {
               "$ref": "#/$defs/LatLon"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "timezone": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Timezone"
      },
      "total_elevation_gain": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Total Elevation Gain"
      },
      "total_photo_count": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Total Photo Count"
      },
      "trainer": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Trainer"
      },
      "type": {
         "anyOf": [
            {
               "$ref": "#/$defs/RelaxedActivityType"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "upload_id": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Upload Id"
      },
      "upload_id_str": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Upload Id Str"
      },
      "weighted_average_watts": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Weighted Average Watts"
      },
      "workout_type": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Workout Type"
      },
      "best_efforts": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/BestEffort"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Best Efforts"
      },
      "calories": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Calories"
      },
      "description": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Description"
      },
      "device_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Device Name"
      },
      "embed_token": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Embed Token"
      },
      "gear": {
         "anyOf": [
            {
               "$ref": "#/$defs/SummaryGear"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "laps": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/Lap"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Laps"
      },
      "photos": {
         "anyOf": [
            {
               "$ref": "#/$defs/PhotosSummary"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "segment_efforts": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/SegmentEffort"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Segment Efforts"
      },
      "splits_metric": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/Split"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Splits Metric"
      },
      "splits_standard": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/Split"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Splits Standard"
      },
      "utc_offset": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Utc Offset"
      },
      "location_city": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Location City"
      },
      "location_state": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Location State"
      },
      "location_country": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Location Country"
      },
      "pr_count": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Pr Count"
      },
      "suffer_score": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Suffer Score"
      },
      "has_heartrate": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Has Heartrate"
      },
      "average_heartrate": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Average Heartrate"
      },
      "max_heartrate": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Max Heartrate"
      },
      "average_cadence": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Average Cadence"
      },
      "from_accepted_tag": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "From Accepted Tag"
      },
      "visibility": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Visibility"
      },
      "guid": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Guid"
      },
      "start_latitude": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Start Latitude"
      },
      "start_longitude": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Start Longitude"
      },
      "average_temp": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Average Temp"
      },
      "instagram_primary_photo": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Instagram Primary Photo"
      },
      "partner_logo_url": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Partner Logo Url"
      },
      "partner_brand_tag": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Partner Brand Tag"
      },
      "segment_leaderboard_opt_out": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Segment Leaderboard Opt Out"
      },
      "perceived_exertion": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Perceived Exertion"
      },
      "prefer_perceived_exertion": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Prefer Perceived Exertion"
      },
      "private_note": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Private Note"
      }
   },
   "$defs": {
      "ActivityPhotoPrimary": {
         "description": "Represents the primary photo for an activity.\n\nAttributes\n----------\nuse_primary_photo : bool, optional\n    Indicates whether the photo is used as the primary photo.\n\nNotes\n-----\nhttps://developers.strava.com/docs/reference/#api-models-PhotosSummary_primary\nThis object is not returned in strava_model, but it is documented in the\nStrava API V3 spec. The Spec documentation deviates from what is actually\nreturned. This model represents what is actually returned.",
         "properties": {
            "id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "source": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Source"
            },
            "unique_id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "title": "Unique Id"
            },
            "urls": {
               "anyOf": [
                  {
                     "additionalProperties": {
                        "type": "string"
                     },
                     "type": "object"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Urls"
            },
            "media_type": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Media Type"
            }
         },
         "required": [
            "unique_id"
         ],
         "title": "ActivityPhotoPrimary",
         "type": "object"
      },
      "AthletePrEffort": {
         "description": "An object that holds athlete PR effort attributes.",
         "properties": {
            "effort_count": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Effort Count"
            },
            "pr_activity_id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pr Activity Id"
            },
            "pr_date": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pr Date"
            },
            "pr_elapsed_time": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pr Elapsed Time"
            },
            "distance": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Distance"
            },
            "start_date": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Date"
            },
            "start_date_local": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Date Local"
            },
            "is_kom": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Is Kom"
            }
         },
         "title": "AthletePrEffort",
         "type": "object"
      },
      "AthleteSegmentStats": {
         "description": "A structure being returned for segment stats for current athlete.",
         "properties": {
            "pr_activity_id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pr Activity Id"
            },
            "distance": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Distance"
            },
            "elapsed_time": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Elapsed Time"
            },
            "id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "is_kom": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Is Kom"
            },
            "start_date": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Date"
            },
            "start_date_local": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Date Local"
            },
            "effort_count": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Effort Count"
            },
            "pr_date": {
               "anyOf": [
                  {
                     "format": "date",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pr Date"
            }
         },
         "title": "AthleteSegmentStats",
         "type": "object"
      },
      "BestEffort": {
         "description": "Class representing a best effort (e.g. best time for 5k)",
         "properties": {
            "pr_activity_id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pr Activity Id"
            },
            "distance": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Distance"
            },
            "elapsed_time": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Elapsed Time"
            },
            "id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "is_kom": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Is Kom"
            },
            "start_date": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Date"
            },
            "start_date_local": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Date Local"
            },
            "activity": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/MetaActivity"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "athlete": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/MetaAthlete"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "average_cadence": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Cadence"
            },
            "average_heartrate": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Heartrate"
            },
            "average_watts": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Watts"
            },
            "device_watts": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Device Watts"
            },
            "end_index": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "End Index"
            },
            "hidden": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Hidden"
            },
            "kom_rank": {
               "anyOf": [
                  {
                     "maximum": 10,
                     "minimum": 1,
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Kom Rank"
            },
            "max_heartrate": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Max Heartrate"
            },
            "moving_time": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Moving Time"
            },
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "pr_rank": {
               "anyOf": [
                  {
                     "maximum": 3,
                     "minimum": 1,
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pr Rank"
            },
            "segment": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/SummarySegment"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "start_index": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Index"
            }
         },
         "title": "BestEffort",
         "type": "object"
      },
      "Lap": {
         "description": "An object that represents an Activity lap.\n\nThis object inherits the BoundClient to support API access through lazy\nmethods.",
         "properties": {
            "bound_client": {
               "anyOf": [
                  {},
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Bound Client"
            },
            "activity": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/MetaActivity"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "athlete": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/MetaAthlete"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "average_cadence": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Cadence"
            },
            "average_speed": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Speed"
            },
            "distance": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Distance"
            },
            "elapsed_time": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Elapsed Time"
            },
            "end_index": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "End Index"
            },
            "id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "lap_index": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Lap Index"
            },
            "max_speed": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Max Speed"
            },
            "moving_time": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Moving Time"
            },
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "pace_zone": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pace Zone"
            },
            "split": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Split"
            },
            "start_date": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Date"
            },
            "start_date_local": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Date Local"
            },
            "start_index": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Index"
            },
            "total_elevation_gain": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Total Elevation Gain"
            },
            "average_watts": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Watts"
            },
            "average_heartrate": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Heartrate"
            },
            "max_heartrate": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Max Heartrate"
            },
            "device_watts": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Device Watts"
            }
         },
         "title": "Lap",
         "type": "object"
      },
      "LatLon": {
         "description": "Stores lat / lon values or None.",
         "items": {
            "type": "number"
         },
         "maxItems": 2,
         "minItems": 2,
         "title": "LatLon",
         "type": "array"
      },
      "Map": {
         "description": "Pass through object. Inherits from PolyLineMap",
         "properties": {
            "id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "polyline": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Polyline"
            },
            "summary_polyline": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Summary Polyline"
            }
         },
         "title": "Map",
         "type": "object"
      },
      "MetaActivity": {
         "description": "Represents an identifiable activity with lazily loaded properties to\ncollect this activity's comments, zones, kudos and photos.",
         "properties": {
            "bound_client": {
               "anyOf": [
                  {},
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Bound Client"
            },
            "id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            }
         },
         "title": "MetaActivity",
         "type": "object"
      },
      "MetaAthlete": {
         "description": "Represents an identifiable athlete with lazily loaded property to obtain\nthis athlete's summary stats.",
         "properties": {
            "bound_client": {
               "anyOf": [
                  {},
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Bound Client"
            },
            "id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "resource_state": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Resource State"
            }
         },
         "title": "MetaAthlete",
         "type": "object"
      },
      "PhotosSummary": {
         "description": "Represents the metadata of photos returned with the activity.\n\nNot to be confused with the fully loaded photos for an activity.\n\nAttributes\n----------\n\nprimary : ActivityPhoto_primary, optional\n    The primary photo for the activity.\nuse_primary_photo : bool, optional\n    Indicates whether the primary photo is used. Not currently documented\n    by Strava.\n\nNotes\n-----\nUndocumented attributes could be changed by Strava at any time.\nTHe API spec specifies that this object returns count and\nActivityPhoto_primary\n\nhttps://developers.strava.com/docs/reference/#api-models-PhotosSummary",
         "properties": {
            "count": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Count"
            },
            "primary": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/ActivityPhotoPrimary"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "use_primary_photo": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Use Primary Photo"
            }
         },
         "title": "PhotosSummary",
         "type": "object"
      },
      "RelaxedActivityType": {
         "description": "This object supports allowing an array of Literal values to be used for\nActivity Type. by default, the generated `strava_model` module only allows\na Literal that includes types: `Ride` and `Run`.",
         "enum": [
            "AlpineSki",
            "BackcountrySki",
            "Canoeing",
            "Crossfit",
            "EBikeRide",
            "Elliptical",
            "Golf",
            "Handcycle",
            "Hike",
            "IceSkate",
            "InlineSkate",
            "Kayaking",
            "Kitesurf",
            "NordicSki",
            "Ride",
            "RockClimbing",
            "RollerSki",
            "Rowing",
            "Run",
            "Sail",
            "Skateboard",
            "Snowboard",
            "Snowshoe",
            "Soccer",
            "StairStepper",
            "StandUpPaddling",
            "Surfing",
            "Swim",
            "Velomobile",
            "VirtualRide",
            "VirtualRun",
            "Walk",
            "WeightTraining",
            "Wheelchair",
            "Windsurf",
            "Workout",
            "Yoga"
         ],
         "title": "RelaxedActivityType",
         "type": "string"
      },
      "RelaxedSportType": {
         "description": "A class that extends the list of Literal values allowed for Sport Types\nthat are defined in the generated `strava_model` module.",
         "enum": [
            "AlpineSki",
            "BackcountrySki",
            "Badminton",
            "Canoeing",
            "Crossfit",
            "EBikeRide",
            "Elliptical",
            "EMountainBikeRide",
            "Golf",
            "GravelRide",
            "Handcycle",
            "HighIntensityIntervalTraining",
            "Hike",
            "IceSkate",
            "InlineSkate",
            "Kayaking",
            "Kitesurf",
            "MountainBikeRide",
            "NordicSki",
            "Pickleball",
            "Pilates",
            "Racquetball",
            "Ride",
            "RockClimbing",
            "RollerSki",
            "Rowing",
            "Run",
            "Sail",
            "Skateboard",
            "Snowboard",
            "Snowshoe",
            "Soccer",
            "Squash",
            "StairStepper",
            "StandUpPaddling",
            "Surfing",
            "Swim",
            "TableTennis",
            "Tennis",
            "TrailRun",
            "Velomobile",
            "VirtualRide",
            "VirtualRow",
            "VirtualRun",
            "Walk",
            "WeightTraining",
            "Wheelchair",
            "Windsurf",
            "Workout",
            "Yoga"
         ],
         "title": "RelaxedSportType",
         "type": "string"
      },
      "SegmentEffort": {
         "description": "Class representing a best effort on a particular segment.",
         "properties": {
            "pr_activity_id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pr Activity Id"
            },
            "distance": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Distance"
            },
            "elapsed_time": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Elapsed Time"
            },
            "id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "is_kom": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Is Kom"
            },
            "start_date": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Date"
            },
            "start_date_local": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Date Local"
            },
            "activity": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/MetaActivity"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "athlete": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/MetaAthlete"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "average_cadence": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Cadence"
            },
            "average_heartrate": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Heartrate"
            },
            "average_watts": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Watts"
            },
            "device_watts": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Device Watts"
            },
            "end_index": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "End Index"
            },
            "hidden": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Hidden"
            },
            "kom_rank": {
               "anyOf": [
                  {
                     "maximum": 10,
                     "minimum": 1,
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Kom Rank"
            },
            "max_heartrate": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Max Heartrate"
            },
            "moving_time": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Moving Time"
            },
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "pr_rank": {
               "anyOf": [
                  {
                     "maximum": 3,
                     "minimum": 1,
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pr Rank"
            },
            "segment": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/SummarySegment"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "start_index": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start Index"
            },
            "achievements": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/SegmentEffortAchievement"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Achievements"
            }
         },
         "title": "SegmentEffort",
         "type": "object"
      },
      "SegmentEffortAchievement": {
         "description": "An undocumented structure being returned for segment efforts.\n\nNotes\n-----\nUndocumented Strava elements can change at any time without notice.",
         "properties": {
            "rank": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Rank"
            },
            "type": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Type"
            },
            "type_id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Type Id"
            },
            "effort_count": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Effort Count"
            }
         },
         "title": "SegmentEffortAchievement",
         "type": "object"
      },
      "Split": {
         "description": "A split -- may be metric or standard units (which has no bearing\non the units used in this object, just the binning of values).",
         "properties": {
            "average_speed": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Speed"
            },
            "distance": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Distance"
            },
            "elapsed_time": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Elapsed Time"
            },
            "elevation_difference": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Elevation Difference"
            },
            "moving_time": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Moving Time"
            },
            "pace_zone": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pace Zone"
            },
            "split": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Split"
            },
            "average_heartrate": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Heartrate"
            },
            "average_grade_adjusted_speed": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Grade Adjusted Speed"
            }
         },
         "title": "Split",
         "type": "object"
      },
      "SummaryGear": {
         "properties": {
            "distance": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Distance"
            },
            "id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "primary": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Primary"
            },
            "resource_state": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Resource State"
            }
         },
         "title": "SummaryGear",
         "type": "object"
      },
      "SummarySegment": {
         "description": "Contains summary information for a specific segment\n\nNotes\n-----\nSeveral attributes represent overrides from the superclass to support\naccurate typing.",
         "properties": {
            "bound_client": {
               "anyOf": [
                  {},
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Bound Client"
            },
            "activity_type": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/RelaxedActivityType"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "athlete_pr_effort": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/AthletePrEffort"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "athlete_segment_stats": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/AthleteSegmentStats"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "average_grade": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Average Grade"
            },
            "city": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "City"
            },
            "climb_category": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Climb Category"
            },
            "country": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Country"
            },
            "distance": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Distance"
            },
            "elevation_high": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Elevation High"
            },
            "elevation_low": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Elevation Low"
            },
            "end_latlng": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/LatLon"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "id": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "maximum_grade": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Maximum Grade"
            },
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "private": {
               "anyOf": [
                  {
                     "type": "boolean"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Private"
            },
            "start_latlng": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/LatLon"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "state": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "State"
            }
         },
         "title": "SummarySegment",
         "type": "object"
      }
   }
}

Fields:
Validators:
SPORT_TYPES: ClassVar[tuple[Any, ...]] = ('AlpineSki', 'BackcountrySki', 'Badminton', 'Canoeing', 'Crossfit', 'EBikeRide', 'Elliptical', 'EMountainBikeRide', 'Golf', 'GravelRide', 'Handcycle', 'HighIntensityIntervalTraining', 'Hike', 'IceSkate', 'InlineSkate', 'Kayaking', 'Kitesurf', 'MountainBikeRide', 'NordicSki', 'Pickleball', 'Pilates', 'Racquetball', 'Ride', 'RockClimbing', 'RollerSki', 'Rowing', 'Run', 'Sail', 'Skateboard', 'Snowboard', 'Snowshoe', 'Soccer', 'Squash', 'StairStepper', 'StandUpPaddling', 'Surfing', 'Swim', 'TableTennis', 'Tennis', 'TrailRun', 'Velomobile', 'VirtualRide', 'VirtualRow', 'VirtualRun', 'Walk', 'WeightTraining', 'Wheelchair', 'Windsurf', 'Workout', 'Yoga')#
TYPES: ClassVar[tuple[Any, ...]] = ('AlpineSki', 'BackcountrySki', 'Canoeing', 'Crossfit', 'EBikeRide', 'Elliptical', 'Golf', 'Handcycle', 'Hike', 'IceSkate', 'InlineSkate', 'Kayaking', 'Kitesurf', 'NordicSki', 'Ride', 'RockClimbing', 'RollerSki', 'Rowing', 'Run', 'Sail', 'Skateboard', 'Snowboard', 'Snowshoe', 'Soccer', 'StairStepper', 'StandUpPaddling', 'Surfing', 'Swim', 'Velomobile', 'VirtualRide', 'VirtualRun', 'Walk', 'WeightTraining', 'Wheelchair', 'Windsurf', 'Workout', 'Yoga')#
field achievement_count: int | None = None#

The number of achievements gained during this activity

field athlete: MetaAthlete | None = None#
field athlete_count: int | None = None#

The number of athletes for taking part in a group activity

Constraints:
  • ge = 1

field average_cadence: float | None = None#
field average_heartrate: float | None = None#
field average_speed: VelocityType | None = None#

The activity’s average speed, in meters per second

field average_temp: int | None = None#
field average_watts: float | None = None#

Average power output in watts during this activity. Rides only

field best_efforts: Sequence[BestEffort] | None = None#
field bound_client: Any | None = None#
field calories: float | None = None#

The number of kilocalories consumed during this activity

field comment_count: int | None = None#

The number of comments for this activity

property comments: BatchedResultsIterator[Comment]#

Retrieves comments for a specific activity id.

field commute: bool | None = None#

Whether this activity is a commute

classmethod construct(_fields_set: set[str] | None = None, **values: Any) Self#
copy(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, update: Dict[str, Any] | None = None, deep: bool = False) Self#

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`python {test="skip" lint="skip"} data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include – Optional set or mapping specifying which fields to include in the copied model.

  • exclude – Optional set or mapping specifying which fields to exclude in the copied model.

  • update – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep – If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

field description: str | None = None#

The description of the activity

field device_name: str | None = None#

The name of the device used to record the activity

field device_watts: bool | None = None#

Whether the watts are from a power meter, false if estimated

dict(*, include: set[int] | set[str] | Mapping[int, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, exclude: set[int] | set[str] | Mapping[int, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) Dict[str, Any]#
field distance: DistanceType | None = None#

The activity’s distance, in meters

field elapsed_time: DurationType | None = None#

The activity’s elapsed time, in seconds

field elev_high: float | None = None#

The activity’s highest elevation, in meters

field elev_low: float | None = None#

The activity’s lowest elevation, in meters

field embed_token: str | None = None#

The token used to embed a Strava activity

field end_latlng: LatLon | None = None#
Validated by:
field external_id: str | None = None#

The identifier provided at upload time

field flagged: bool | None = None#

Whether this activity is flagged

field from_accepted_tag: bool | None = None#
classmethod from_orm(obj: Any) Self#
property full_photos: BatchedResultsIterator[ActivityPhoto]#

Retrieves activity photos for a specific activity by id.

field gear: SummaryGear | None = None#
field gear_id: str | None = None#

The id of the gear for the activity

field guid: str | None = None#
field has_heartrate: bool | None = None#
field has_kudoed: bool | None = None#

Whether the logged-in athlete has kudoed this activity

field hide_from_home: bool | None = None#

Whether the activity is muted

field id: int | None = None#

The unique identifier of the activity

field instagram_primary_photo: str | None = None#
json(*, include: set[int] | set[str] | Mapping[int, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, exclude: set[int] | set[str] | Mapping[int, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Callable[[Any], Any] | None = PydanticUndefined, models_as_dict: bool = PydanticUndefined, **dumps_kwargs: Any) str#
field kilojoules: float | None = None#

The total work done in kilojoules during this activity. Rides only

property kudos: BatchedResultsIterator[SummaryAthlete]#

Retrieves the kudos provided for a specific activity.

field kudos_count: int | None = None#

The number of kudos given for this activity

field laps: Sequence[Lap] | None = None#
field location_city: str | None = None#
field location_country: str | None = None#
field location_state: str | None = None#
field manual: bool | None = None#

Whether this activity was created manually

field map: Map | None = None#
field max_heartrate: int | None = None#
field max_speed: VelocityType | None = None#

The activity’s max speed, in meters per second

field max_watts: int | None = None#

Rides with power meter data only

classmethod model_construct(_fields_set: set[str] | None = None, **values: Any) Self#

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == ‘allow’, then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == ‘ignore’ (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == ‘forbid’ does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set – A set of field names that were originally explicitly set during instantiation. If provided, this is directly used for the [model_fields_set][pydantic.BaseModel.model_fields_set] attribute. Otherwise, the field names from the values argument will be used.

  • values – Trusted or pre-validated data dictionary.

Returns:

A new instance of the Model class with validated data.

model_copy(*, update: Mapping[str, Any] | None = None, deep: bool = False) Self#
!!! abstract “Usage Documentation”

[model_copy](../concepts/serialization.md#model_copy)

Returns a copy of the model.

!!! note

The underlying instance’s [__dict__][object.__dict__] attribute is copied. This might have unexpected side effects if you store anything in it, on top of the model fields (e.g. the value of [cached properties][functools.cached_property]).

Parameters:
  • update – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep – Set to True to make a deep copy of the model.

Returns:

New model instance.

model_dump(*, mode: Literal['json', 'python'] | str = 'python', include: set[int] | set[str] | Mapping[int, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, exclude: set[int] | set[str] | Mapping[int, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, context: Any | None = None, by_alias: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, round_trip: bool = False, warnings: bool | Literal['none', 'warn', 'error'] = True, fallback: Callable[[Any], Any] | None = None, serialize_as_any: bool = False) dict[str, Any]#
!!! abstract “Usage Documentation”

[model_dump](../concepts/serialization.md#modelmodel_dump)

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.

  • include – A set of fields to include in the output.

  • exclude – A set of fields to exclude from the output.

  • context – Additional context to pass to the serializer.

  • by_alias – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults – Whether to exclude fields that are set to their default value.

  • exclude_none – Whether to exclude fields that have a value of None.

  • round_trip – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • fallback – A function to call when an unknown value is encountered. If not provided, a [PydanticSerializationError][pydantic_core.PydanticSerializationError] error is raised.

  • serialize_as_any – Whether to serialize fields with duck-typing serialization behavior.

Returns:

A dictionary representation of the model.

model_dump_json(*, indent: int | None = None, include: set[int] | set[str] | Mapping[int, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, exclude: set[int] | set[str] | Mapping[int, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, context: Any | None = None, by_alias: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, round_trip: bool = False, warnings: bool | Literal['none', 'warn', 'error'] = True, fallback: Callable[[Any], Any] | None = None, serialize_as_any: bool = False) str#
!!! abstract “Usage Documentation”

[model_dump_json](../concepts/serialization.md#modelmodel_dump_json)

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include – Field(s) to include in the JSON output.

  • exclude – Field(s) to exclude from the JSON output.

  • context – Additional context to pass to the serializer.

  • by_alias – Whether to serialize using field aliases.

  • exclude_unset – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults – Whether to exclude fields that are set to their default value.

  • exclude_none – Whether to exclude fields that have a value of None.

  • round_trip – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • fallback – A function to call when an unknown value is encountered. If not provided, a [PydanticSerializationError][pydantic_core.PydanticSerializationError] error is raised.

  • serialize_as_any – Whether to serialize fields with duck-typing serialization behavior.

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None#

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to “allow”.

property model_fields_set: set[str]#

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias: bool = True, ref_template: str = '#/$defs/{model}', schema_generator: type[~pydantic.json_schema.GenerateJsonSchema] = <class 'pydantic.json_schema.GenerateJsonSchema'>, mode: ~typing.Literal['validation', 'serialization'] = 'validation') dict[str, Any]#

Generates a JSON schema for a model class.

Parameters:
  • by_alias – Whether to use attribute aliases or not.

  • ref_template – The reference template.

  • schema_generator – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode – The mode in which to generate the schema.

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params: tuple[type[Any], ...]) str#

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

model_post_init(context: Any, /) None#

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

classmethod model_rebuild(*, force: bool = False, raise_errors: bool = True, _parent_namespace_depth: int = 2, _types_namespace: MappingNamespace | None = None) bool | None#

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors – Whether to raise errors, defaults to True.

  • _parent_namespace_depth – The depth level of the parent namespace, defaults to 2.

  • _types_namespace – The types namespace, defaults to None.

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj: Any, *, strict: bool | None = None, from_attributes: bool | None = None, context: Any | None = None, by_alias: bool | None = None, by_name: bool | None = None) Self#

Validate a pydantic model instance.

Parameters:
  • obj – The object to validate.

  • strict – Whether to enforce types strictly.

  • from_attributes – Whether to extract data from object attributes.

  • context – Additional context to pass to the validator.

  • by_alias – Whether to use the field’s alias when validating against the provided input data.

  • by_name – Whether to use the field’s name when validating against the provided input data.

Raises:

ValidationError – If the object could not be validated.

Returns:

The validated model instance.

classmethod model_validate_json(json_data: str | bytes | bytearray, *, strict: bool | None = None, context: Any | None = None, by_alias: bool | None = None, by_name: bool | None = None) Self#
!!! abstract “Usage Documentation”

[JSON Parsing](../concepts/json.md#json-parsing)

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data – The JSON data to validate.

  • strict – Whether to enforce types strictly.

  • context – Extra variables to pass to the validator.

  • by_alias – Whether to use the field’s alias when validating against the provided input data.

  • by_name – Whether to use the field’s name when validating against the provided input data.

Returns:

The validated Pydantic model.

Raises:

ValidationError – If json_data is not a JSON string or the object could not be validated.

classmethod model_validate_strings(obj: Any, *, strict: bool | None = None, context: Any | None = None, by_alias: bool | None = None, by_name: bool | None = None) Self#

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj – The object containing string data to validate.

  • strict – Whether to enforce types strictly.

  • context – Extra variables to pass to the validator.

  • by_alias – Whether to use the field’s alias when validating against the provided input data.

  • by_name – Whether to use the field’s name when validating against the provided input data.

Returns:

The validated Pydantic model.

field moving_time: DurationType | None = None#

The activity’s moving time, in seconds

field name: str | None = None#

The name of the activity

classmethod parse_file(path: str | Path, *, content_type: str | None = None, encoding: str = 'utf8', proto: DeprecatedParseProtocol | None = None, allow_pickle: bool = False) Self#
classmethod parse_obj(obj: Any) Self#
classmethod parse_raw(b: str | bytes, *, content_type: str | None = None, encoding: str = 'utf8', proto: DeprecatedParseProtocol | None = None, allow_pickle: bool = False) Self#
field partner_brand_tag: str | None = None#
field partner_logo_url: str | None = None#
field perceived_exertion: int | None = None#
field photo_count: int | None = None#

The number of Instagram photos for this activity

field photos: PhotosSummary | None = None#
field pr_count: int | None = None#
field prefer_perceived_exertion: bool | None = None#
field private: bool | None = None#

Whether this activity is private

field private_note: str | None = None#
classmethod schema(by_alias: bool = True, ref_template: str = '#/$defs/{model}') Dict[str, Any]#
classmethod schema_json(*, by_alias: bool = True, ref_template: str = '#/$defs/{model}', **dumps_kwargs: Any) str#
field segment_efforts: Sequence[SegmentEffort] | None = None#
field segment_leaderboard_opt_out: bool | None = None#
field splits_metric: Sequence[Split] | None = None#

The splits of this activity in metric units (for runs)

field splits_standard: Sequence[Split] | None = None#

The splits of this activity in imperial units (for runs)

field sport_type: RelaxedSportType | None = None#
field start_date: datetime | None = None#

The time at which the activity was started.

field start_date_local: datetime | None = None#

The time at which the activity was started in the local timezone.

Validated by:
field start_latitude: float | None = None#
field start_latlng: LatLon | None = None#
Validated by:
field start_longitude: float | None = None#
field suffer_score: int | None = None#
field timezone: TimezoneType | None = None#

The timezone of the activity

field total_elevation_gain: DistanceType | None = None#

The activity’s total elevation gain.

field total_photo_count: int | None = None#

The number of Instagram and Strava photos for this activity

field trainer: bool | None = None#

Whether this activity was recorded on a training machine

field type: RelaxedActivityType | None = None#

Deprecated. Prefer to use sport_type

classmethod update_forward_refs(**localns: Any) None#
field upload_id: int | None = None#

The identifier of the upload that resulted in this activity

field upload_id_str: str | None = None#

The unique identifier of the upload in string format

field utc_offset: float | None = None#
classmethod validate(value: Any) Self#
field visibility: str | None = None#
field weighted_average_watts: int | None = None#

Similar to Normalized Power. Rides with power meter data only

field workout_type: int | None = None#

The activity’s workout type

property zones: list[ActivityZone]#

Retrieve a list of zones for an activity.

Returns:

A list of stravalib.model.ActivityZone objects.

Return type:

list