get_activities_by_date
Retrieve activities in a date range with pagination support to avoid large result errors. Filter by activity type and walk pages via next_page until has_more is false.
Instructions
Get activities between specified dates with pagination support.
For accounts with large activity histories, broad date ranges can return thousands of activities in a single response. Use page and page_size to retrieve activities in manageable chunks and avoid "result too large" errors. Activities are ordered newest-first.
Pagination: when has_more is true the response includes next_page — pass that value as page on the next call to retrieve the following page. Repeat until has_more is false.
Note: total_count for a date range is not available from the Garmin API without fetching all results. Use has_more / next_page to walk pages.
Each activity includes an event_type field with values such as:
"race" — explicitly tagged as a race by the user
"training" — explicitly tagged as a training activity
"uncategorized" — no event type set; common for Peloton imports and untagged outdoor runs. Distinct from "training": filter for races with event_type == "race" rather than excluding "training", since many non-race activities appear as "uncategorized" not "training"
field absent — API returned no eventType for this activity; not observed in practice in any activity back to 2012 (oldest activities sampled on this account)
Args: start_date: Start date in YYYY-MM-DD format end_date: End date in YYYY-MM-DD format activity_type: Optional activity type filter (e.g., cycling, running, swimming) page: Zero-based page number (default 0) page_size: Number of activities per page, max 200 (default 100)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| end_date | Yes | ||
| page_size | No | ||
| start_date | Yes | ||
| activity_type | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |