Search activities
garmin_search_activitiesSearch and filter your Garmin activities by type, date, distance, duration, location, or keyword to retrieve activity IDs and summaries for detailed analysis or FIT file download.
Instructions
Search and list the user's recorded activities (runs, rides, swims, strength sessions, hikes, dives…), newest first by default. Returns an array of activity summaries with: activityId, activityName, description, startTimeLocal/startTimeGMT, activityType, eventType, distance (meters), duration / movingDuration / elapsedDuration (seconds), elevationGain/Loss (meters), averageSpeed/maxSpeed (m/s), calories, averageHR/maxHR (bpm), cadence, power, training effect and more. Use this first to find activity IDs, then call garmin_get_activity for splits and full detail, or garmin_download_activity_file for the original FIT file. All filters are optional and combined with AND. Paginate with start and limit.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of activities to return. Default 20 here (Garmin itself defaults to 99). Keep it small to save context. | |
| start | No | Zero-based offset of the first activity to return, for pagination. Default 0. | |
| search | No | Free text matched against activity names and descriptions. | |
| sortBy | No | Field to sort by, e.g. startLocal (default), name, distance, duration, elevationGain, calories. | |
| endDate | No | Only activities that started on or before this local date. Format YYYY-MM-DD, in the user's local calendar. | |
| decoDive | No | Dives only: true = decompression dives, false = non-decompression dives. | |
| favorite | No | 1 = only favorites, 0 = only non-favorites, -1 = no filter (default). | |
| eventType | No | Event classification key: race, training, recreation, fitness, specialEvent or uncategorized. | |
| sortOrder | No | Sort direction. Default desc (newest/largest first). | |
| startDate | No | Only activities that started on or after this local date. Format YYYY-MM-DD, in the user's local calendar. | |
| maxDistance | No | Maximum distance in meters (inclusive). | |
| maxDuration | No | Maximum timer (moving) duration in seconds (inclusive). | |
| minAvgPower | No | Minimum average power in watts. | |
| minDistance | No | Minimum distance in meters (inclusive). | |
| minDuration | No | Minimum timer (moving) duration in seconds (inclusive). | |
| activityType | No | Parent activity type key, e.g. running, cycling, swimming, walking, hiking, fitness_equipment, diving. Must be a parent type, not a subtype. | |
| maxElevation | No | Maximum total elevation gain in meters. | |
| minElevation | No | Minimum total elevation gain in meters. | |
| leftLongitude | No | Bounding box west edge, decimal degrees. Provide all four bounds. | |
| lowerLatitude | No | Bounding box south edge, decimal degrees. Provide all four bounds. | |
| lowerMaxDepth | No | Dives only: minimum of the max depth, in centimeters. | |
| maxBottomTime | No | Dives only: maximum bottom time in seconds. | |
| minBottomTime | No | Dives only: minimum bottom time in seconds. | |
| requiredField | No | Only return activities where all of these fields are non-null, e.g. ["averageHR", "avgPower"]. | |
| upperLatitude | No | Bounding box (start location) north edge, decimal degrees. Provide all four bounds. | |
| upperMaxDepth | No | Dives only: maximum of the max depth, in centimeters. | |
| rightLongitude | No | Bounding box east edge, decimal degrees. Provide all four bounds. | |
| activitySubType | No | Activity subtype key, e.g. trail_running or treadmill_running (with activityType=running), road_cycling or indoor_cycling (with activityType=cycling). | |
| excludeChildren | No | Exclude child activities of a multisport activity (e.g. the swim/bike/run legs of a triathlon). Garmin default: true. | |
| maxElapsedDuration | No | Maximum elapsed duration including pauses, in seconds. | |
| minElapsedDuration | No | Minimum elapsed duration including pauses, in seconds. | |
| excludedActivitySubType | No | Subtype keys to exclude, e.g. ["treadmill_running"]. |