query_workouts
Retrieve cached Mi Fitness workout session summaries within an inclusive date range, filtered by activity type, duration, or distance, with pagination for heart-rate and pace data.
Instructions
List recorded workouts starting within an inclusive YYYY-MM-DD range. Returns data.workouts, count and data_quality; rows include workout_id, activity_type, start_at/end_at, duration_minutes, distance_m, calories_kcal and available heart-rate/pace fields (missing fields may be null). activity_types matches case-insensitively; min_duration is minutes and min_distance_km is kilometers (unlike output distance_m). Filters combine with AND before pagination. Use a returned workout_id with query_workout_series for a heart-rate curve; this tool returns session summaries, not samples. Read-only local SQLite query; no cloud request or automatic sync. Requires a configured local account/cache. Returns JSON text with status, source=cache, generated_at and data; empty lists mean no cached matches, not zero measurements. Use get_data_coverage to inspect availability or sync_data to refresh with user consent. Returns data.pagination {limit, offset, has_more, next_offset}; next_offset is null at the end. Keep filters unchanged and avoid syncing between pages.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records per page (1-5000); count describes this page only. | |
| offset | No | Zero-based position; pass pagination.next_offset unchanged with the same filters. | |
| end_date | Yes | Inclusive last calendar date, YYYY-MM-DD; must be on or after start_date. | |
| start_date | Yes | Inclusive first calendar date, YYYY-MM-DD; must be on or before end_date. Uses stored calendar dates, not caller timezone conversion. | |
| min_duration | No | Minimum workout duration in minutes, inclusive; 0 or omitted disables this filter. | |
| activity_types | No | Optional activity labels from stored workouts (e.g. running); case-insensitive. Omit or [] for all; labels depend on device/upstream data. | |
| min_distance_km | No | Minimum workout distance in kilometers, inclusive; 0 or omitted disables this filter. Returned distance uses meters. |