addedInput schema / properties / activity_types
Added value: +{
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 20,
+ "minItems": 1,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Optional Garmin activity type keys to keep, matched case-insensitively, e.g. [\"indoor_cardio\", \"strength_training\"] or [\"running\"]. Filtering happens before limit and offset. Omit for all types.",
+ "title": "Activity Types"
+}
addedInput schema / properties / compact
Added value: +{
+ "default": false,
+ "description": "When true, return only id, name, start_time, type, duration, distance, calories, average/max HR, training load and effects, vo2_max, recovery HR (when cached) and has_description: about a third of the size. Defaults to false.",
+ "title": "Compact",
+ "type": "boolean"
+}
changedInput schema / properties / end_date / anyOf
Previous value: -[
- {
- "type": "string"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+]
addedInput schema / properties / end_date / description
Added value: +"Inclusive end date, YYYY-MM-DD; omit or pass null for today in the server's local timezone."
addedInput schema / properties / limit / description
Added value: +"Maximum number of activities returned, from 1 to 100; defaults to 20. This is a result cap, not a page number."
addedInput schema / properties / limit / maximum
Added value: +100
addedInput schema / properties / limit / minimum
Added value: +1
addedInput schema / properties / min_duration_minutes
Added value: +{
+ "anyOf": [
+ {
+ "exclusiveMinimum": 0,
+ "maximum": 1440,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Optional minimum moving duration in minutes, e.g. 20 to drop short walks. Activities without a reported duration are excluded.",
+ "title": "Min Duration Minutes"
+}
addedInput schema / properties / offset
Added value: +{
+ "default": 0,
+ "description": "Number of matching activities to skip, for paging: pass the previous response's next_offset. Defaults to 0.",
+ "maximum": 10000,
+ "minimum": 0,
+ "title": "Offset",
+ "type": "integer"
+}
addedInput schema / properties / order
Added value: +{
+ "default": "desc",
+ "description": "desc (default) is newest first; asc is oldest first.",
+ "enum": [
+ "desc",
+ "asc"
+ ],
+ "title": "Order",
+ "type": "string"
+}
changedInput schema / properties / start_date / anyOf
Previous value: -[
- {
- "type": "string"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+]
addedInput schema / properties / start_date / description
Added value: +"Inclusive start date, YYYY-MM-DD; must not follow end_date. Range is at most 366 days. Defaults to 29 days before end_date; if both dates are omitted, uses the last 14 days instead."
addedOutput schema / $defs
Added value: +{
+ "ActivitySummary": {
+ "properties": {
+ "activity_id": {
+ "title": "Activity Id",
+ "type": "integer"
+ },
+ "activity_training_load": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Activity Training Load"
+ },
+ "activity_type": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Activity Type"
+ },
+ "aerobic_training_effect": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Aerobic Training Effect"
+ },
+ "anaerobic_training_effect": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Anaerobic Training Effect"
+ },
+ "average_cadence": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Average Cadence"
+ },
+ "average_hr_bpm": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Average Hr Bpm"
+ },
+ "average_moving_speed_mps": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Average Moving Speed Mps"
+ },
+ "average_power_w": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Average Power W"
+ },
+ "average_respiration": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Average Respiration"
+ },
+ "average_speed_mps": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Average Speed Mps"
+ },
+ "average_stride_length_m": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Average Stride Length M"
+ },
+ "calories_kcal": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Calories Kcal"
+ },
+ "description": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Description"
+ },
+ "distance_m": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Distance M"
+ },
+ "duration_seconds": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Duration Seconds"
+ },
+ "elapsed_seconds": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Elapsed Seconds"
+ },
+ "elevation_gain_m": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Elevation Gain M"
+ },
+ "elevation_loss_m": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Elevation Loss M"
+ },
+ "feel": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Feel"
+ },
+ "has_description": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Has Description"
+ },
+ "highest_respiration": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Highest Respiration"
+ },
+ "hr_zones_seconds": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "type": "number"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Hr Zones Seconds"
+ },
+ "intensity_factor": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Intensity Factor"
+ },
+ "lowest_respiration": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Lowest Respiration"
+ },
+ "max_cadence": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Max Cadence"
+ },
+ "max_hr_bpm": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Max Hr Bpm"
+ },
+ "max_power_w": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Max Power W"
+ },
+ "moderate_intensity_minutes": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Moderate Intensity Minutes"
+ },
+ "moving_duration_seconds": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Moving Duration Seconds"
+ },
+ "name": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Name"
+ },
+ "normalized_power_w": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Normalized Power W"
+ },
+ "perceived_effort": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Perceived Effort"
+ },
+ "recovery_hr_bpm": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Recovery Hr Bpm"
+ },
+ "start_time": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Activity start: ISO 8601 with an explicit UTC offset, e.g. 2026-10-09T23:18:16+02:00. The wall time is already local; never add the offset again. The offset is the one Garmin recorded for the device at that moment, or this computer's time zone when Garmin gives only UTC.",
+ "title": "Start Time"
+ },
+ "steps": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Steps"
+ },
+ "training_effect_label": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Training Effect Label"
+ },
+ "training_stress_score": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Training Stress Score"
+ },
+ "vigorous_intensity_minutes": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Vigorous Intensity Minutes"
+ },
+ "vo2_max": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Vo2 Max"
+ }
+ },
+ "required": [
+ "activity_id"
+ ],
+ "title": "ActivitySummary",
+ "type": "object"
+ },
+ "AvailabilityNotice": {
+ "properties": {
+ "field": {
+ "title": "Field",
+ "type": "string"
+ },
+ "message": {
+ "title": "Message",
+ "type": "string"
+ },
+ "status": {
+ "title": "Status",
+ "type": "string"
+ }
+ },
+ "required": [
+ "field",
+ "status",
+ "message"
+ ],
+ "title": "AvailabilityNotice",
+ "type": "object"
+ }
+}
addedOutput schema / properties / activities
Added value: +{
+ "items": {
+ "$ref": "#/$defs/ActivitySummary"
+ },
+ "title": "Activities",
+ "type": "array"
+}
addedOutput schema / properties / activity_type
Added value: +{
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Activity Type"
+}
addedOutput schema / properties / activity_types
Added value: +{
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Activity Types"
+}
addedOutput schema / properties / availability
Added value: +{
+ "items": {
+ "$ref": "#/$defs/AvailabilityNotice"
+ },
+ "title": "Availability",
+ "type": "array"
+}
addedOutput schema / properties / count
Added value: +{
+ "description": "Number of activities returned.",
+ "title": "Count",
+ "type": "integer"
+}
addedOutput schema / properties / end_date
Added value: +{
+ "title": "End Date",
+ "type": "string"
+}
addedOutput schema / properties / limit
Added value: +{
+ "title": "Limit",
+ "type": "integer"
+}
addedOutput schema / properties / matched
Added value: +{
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Activities in the range that passed every filter.",
+ "title": "Matched"
+}
addedOutput schema / properties / min_duration_minutes
Added value: +{
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Min Duration Minutes"
+}
addedOutput schema / properties / next_offset
Added value: +{
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "offset for the next page, present only when more activities matched.",
+ "title": "Next Offset"
+}
addedOutput schema / properties / offset
Added value: +{
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Offset"
+}
addedOutput schema / properties / order
Added value: +{
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Order"
+}
removedOutput schema / properties / result
Removed value: -{
- "items": {
- "additionalProperties": true,
- "type": "object"
- },
- "title": "Result",
- "type": "array"
-}
addedOutput schema / properties / size_capped
Added value: +{
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "True when the page stopped before limit to keep the response small.",
+ "title": "Size Capped"
+}
addedOutput schema / properties / start_date
Added value: +{
+ "title": "Start Date",
+ "type": "string"
+}
addedOutput schema / properties / truncated
Added value: +{
+ "description": "True when more activities matched than this response holds; pass next_offset as offset to get the rest.",
+ "title": "Truncated",
+ "type": "boolean"
+}
changedOutput schema / required
Previous value: -[
- "result"
-]New value: +[
+ "start_date",
+ "end_date",
+ "limit",
+ "count",
+ "truncated"
+]
changedOutput schema / title
Previous value: -"get_activitiesOutput"New value: +"ActivityList"