Tools reference¶
163 tools, generated from the running server: 114 read-only, 24 writes, 25 destructive-capable (edits, deletions and overwriting filesystem exports; confirmation only where documented). Tool names, parameters and descriptions follow Taxuspt/garmin_mcp, so clients written for it keep working.
Every result ends with a provenance line: served from the mirror (and when it was fetched), fetched from Garmin just now, or stale and why. Bounded JSON results also carry structured data. See how sync works.
Read garmin://usage for resource URI examples, prompt names and API costs, including in clients without template discovery. See MCP context and API budget. Local-only tools cost no Garmin requests; cache-first tools may fetch missing/stale data, and ranges, pagination, batches and write refetches multiply that cost. General upstream quota is unknown; check timestamped local status and respect cooldowns. Never blindly replay an ambiguous write. Hints describe behavior, not authorization or spending caps.
Profiles¶
GARMIN_TOOL_PROFILE narrows the set a client sees; GARMIN_ENABLED_TOOLS and GARMIN_DISABLED_TOOLS add and remove names. The three mirror tools are in every profile.
| Profile | Tools |
|---|---|
minimal |
23: garmin_query, garmin_schema, garmin_sync_status, get_activities, get_activities_by_date, get_activity, get_activity_splits, get_body_battery, get_daily_steps, get_full_name, get_heart_rate_zones, get_heart_rates_summary, get_hrv_data, get_sleep_data, get_sleep_summary, get_stats, get_stress_summary, get_training_readiness, get_training_status, get_unit_system, get_user_profile, get_user_summary, get_userprofile_settings |
health |
56: add_body_composition, add_hydration_data, add_weigh_in, add_weigh_in_with_timestamps, delete_weigh_ins, garmin_query, garmin_schema, garmin_sync_status, get_all_day_events, get_all_day_stress, get_blood_pressure, get_body_battery, get_body_battery_events, get_body_composition, get_daily_steps, get_daily_weigh_ins, get_energy_balance, get_fitnessage_data, get_floors, get_full_name, get_heart_rate_zones, get_heart_rates, get_heart_rates_summary, get_hrv_data, get_hrv_trend, get_hydration_data, get_lifestyle_logging_data, get_menstrual_calendar_data, get_menstrual_data_for_date, get_morning_training_readiness, get_pregnancy_summary, get_recovery_time_remaining, get_respiration_data, get_respiration_summary, get_respiration_trend, get_rhr_day, get_sleep_data, get_sleep_summary, get_sleep_summary_range, get_spo2_data, get_stats, get_stats_and_body, get_stats_range, get_steps_data, get_stress_data, get_stress_summary, get_training_readiness, get_unit_system, get_user_profile, get_user_summary, get_userprofile_settings, get_weekly_intensity_minutes, get_weekly_steps, get_weekly_stress, get_weigh_ins, set_blood_pressure |
activities |
44: add_gear_to_activity, count_activities, create_manual_activity, delete_activity, delete_course, download_activity_file, download_course_gpx, garmin_query, garmin_schema, garmin_sync_status, get_activities, get_activities_by_date, get_activities_fordate, get_activity, get_activity_exercise_sets, get_activity_fit_data, get_activity_fit_messages, get_activity_gear, get_activity_hr_in_timezones, get_activity_power_in_timezones, get_activity_split_summaries, get_activity_splits, get_activity_typed_splits, get_activity_types, get_activity_weather, get_course_details, get_courses, get_full_name, get_gear, get_heart_rate_zones, get_power_duration_curve, get_unit_system, get_user_profile, get_userprofile_settings, remove_gear_from_activity, set_activity_description, set_activity_event_type, set_activity_exercise_sets, set_activity_feel, set_activity_name, set_activity_type, set_fit_download_dir, set_perceived_effort, upload_course |
workouts |
29: create_run_interval_workout, create_run_workout, create_strength_workout, create_walk_run_workout, create_z2_walk_workout, delete_workout, delete_workouts, download_workout, garmin_query, garmin_schema, garmin_sync_status, get_calendar_events, get_full_name, get_garmin_coach_workouts, get_heart_rate_zones, get_scheduled_workouts, get_training_plan_workouts, get_unit_system, get_user_profile, get_userprofile_settings, get_workout_by_id, get_workouts, schedule_week, schedule_workout, schedule_workouts, unschedule_workout, unschedule_workouts, upload_workout, upload_workouts |
training |
41: garmin_query, garmin_schema, garmin_sync_status, get_acclimation, get_adhoc_challenges, get_available_badge_challenges, get_badge_challenges, get_cycling_ftp, get_earned_badges, get_endurance_score, get_fitnessage_data, get_full_name, get_goals, get_heart_rate_zones, get_hill_score, get_hrv_data, get_hrv_trend, get_inprogress_virtual_challenges, get_lactate_threshold, get_morning_training_readiness, get_non_completed_badge_challenges, get_personal_record, get_power_duration_curve, get_primary_training_device, get_progress_summary_between_dates, get_race_predictions, get_recovery_time_remaining, get_respiration_trend, get_running_tolerance, get_running_tolerance_trend, get_training_effect, get_training_load_balance, get_training_load_trend, get_training_readiness, get_training_status, get_unit_system, get_user_profile, get_userprofile_settings, get_vo2max_trend, get_weekly_intensity_minutes, request_reload |
nutrition |
26: add_hydration_data, create_custom_food, delete_custom_food, delete_food_log, garmin_query, garmin_schema, garmin_sync_status, get_custom_food_serving_units, get_custom_foods, get_energy_balance, get_full_name, get_heart_rate_zones, get_hydration_data, get_nutrition_daily_food_log, get_nutrition_daily_meals, get_nutrition_daily_settings, get_nutrition_summary_between_dates, get_unit_system, get_user_profile, get_userprofile_settings, log_custom_food, log_food, search_foods, set_nutrition_daily_settings, update_custom_food, upsert_and_log |
all (default) |
every tool below |
The mirror¶
SQL, catalog and sync status of the local mirror. No Garmin request, ever.
garmin_query¶
read. Run a read-only DuckDB SQL query against the local mirror of the user's Garmin Connect data. Costs no Garmin requests. Use garmin_schema first to see the tables.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=false.
| Parameter | Type | Required |
|---|---|---|
sql |
string | yes |
max_rows |
integer, default 200 |
no |
garmin_schema¶
read. List the mirror's tables and views with their descriptions and estimated row counts, or, given a table name, its columns with types, units and descriptions. Use before garmin_query.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=false.
| Parameter | Type | Required |
|---|---|---|
table |
string or null | no |
garmin_sync_status¶
read. How complete and fresh the local mirror of Garmin Connect is: coverage per dataset, the sync queue by kind, last run of each periodic task, recent errors, pacing and backoff state, the archive reload quota, the login state, and any fields Garmin returns that the schema does not yet map.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=false.
Activities¶
Listings, one activity's detail, laps, splits, weather, zones, gear and sets, and the edits Garmin Connect allows.
get_activities_by_date¶
read. Get activities between specified dates with pagination support.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
activity_type |
string, default `` | no |
page |
integer, default 0 |
no |
page_size |
integer, default 100 |
no |
get_activities_fordate¶
read. Get activities for a specific date
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_activity¶
read. Get detailed information for a single activity.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
set_activity_name¶
destructive. Set or update the name of an activity.
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
activity_name |
string | yes |
set_activity_type¶
destructive. Change the activity type (sport) of an activity.
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
type_key |
string | yes |
set_activity_description¶
destructive. Set or update the free-text description (notes) of an activity. Pass an empty string to clear it.
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
description |
string | yes |
set_activity_event_type¶
destructive. Set the event type of an activity.
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
event_type |
string | yes |
set_perceived_effort¶
destructive. Set the perceived effort (RPE) for an activity, on Garmin Connect's 0-10 scale (0 clears the rating; Garmin stores it times 10).
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
rpe |
number | yes |
set_activity_feel¶
destructive. Set how an activity felt ('How did you feel?'): one of 0 (very tired), 25, 50 (normal), 75, 100 (strong).
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
feel |
integer | yes |
get_activity_splits¶
read. Get splits for an activity. Lap and nested length start_time_gmt timestamps are GMT (UTC).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
get_activity_typed_splits¶
read. Get typed splits for an activity
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
get_activity_split_summaries¶
read. Get split summaries for an activity
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
get_activity_weather¶
read. Get weather data for an activity.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
get_activity_hr_in_timezones¶
read. Get heart rate data in different time zones for an activity
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
get_activity_power_in_timezones¶
read. Get power distribution across training zones for an activity (time in each power zone with watt thresholds). Requires a power meter.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
get_activity_gear¶
read. Get gear data used for an activity
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
get_activity_exercise_sets¶
read. Get exercise sets for strength training activities
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
set_activity_exercise_sets¶
destructive. Replace the exercise sets on a strength (or other rep-counting) activity.
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
sets |
array of object | yes |
keep_timing |
boolean, default False |
no |
count_activities¶
read. Get total count of activities in the user's Garmin account
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_activities¶
read. Get activities with pagination support, ordered newest-first.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start |
integer, default 0 |
no |
limit |
integer, default 20 |
no |
create_manual_activity¶
write. Log a manual activity in Garmin Connect, for activities done without a watch.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
type_key |
string | yes |
date |
string | yes |
duration_minutes |
integer | yes |
start_time |
string, default 09:00 |
no |
activity_name |
string, default `` | no |
distance_km |
number, default 0.0 |
no |
time_zone |
string, default UTC |
no |
delete_activity¶
destructive. Permanently delete an activity from Garmin Connect. This cannot be undone.
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
confirm |
boolean, default False |
no |
get_activity_types¶
read. Get all available activity types supported by Garmin Connect, useful for filtering activities by type.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
Activity analysis¶
Analyses computed from the decoded FIT files in the mirror, and file exports.
get_activity_fit_messages¶
read. Retrieve and generically parse an activity's original FIT file (the source of truth for device data): every message and field the FIT decoder emits, in file order, without sport-specific curation. Service-side Garmin Connect edits are not merged.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
message_types |
array or null | no |
include_records |
boolean, default False |
no |
message_offset |
integer, default 0 |
no |
message_limit |
integer, default 1000 |
no |
get_activity_fit_data¶
read. Analyse an activity's original FIT file (from the mirror's decoded tables) for data the REST API lacks: Di2/eTap shift events with cadence, grade and gear at each shift and shift quality (proactive 70-100 rpm, reactive <70, coasting 0, spun_out >100); cycling dynamics per session and lap (PCO, left/right balance, torque effectiveness, pedal smoothness); variability index; climb detection with VAM and W/kg (latest weigh-in up to 90 days before the ride); grade-correlated power/cadence/HR (grade from the device when present, else derived from altitude and distance; grade_source says which); HR drift for rides of 60 min or more; temperature correlation; the power duration curve (5s to 60min); HRV from RR intervals; optional full per-second records. Multisport files report every leg in sessions and analyse the cycling or longest leg.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
include_records |
boolean, default False |
no |
get_power_duration_curve¶
read. Get the season-best Power Duration Curve across recent activities of a type: best mean maximal power at 5s, 30s, 1min, 5min, 10min, 20min and 60min with the activity and date each best came from, computed from the mirror's FIT records (activities whose file is not mirrored yet are fetched first). Use the 20-minute best x 0.95 as an FTP estimate.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
num_activities |
integer, default 20 |
no |
activity_type |
string, default cycling |
no |
download_activity_file¶
destructive. Download an activity and save it to disk: the original .fit (cache-first; a missing FIT may be fetched), or gpx, tcx, csv exports fetched from Garmin. Directory: output_dir, else GARMIN_FIT_DOWNLOAD_DIR, else the persisted set_fit_download_dir; with none configured returns status "needs_setup". Files are named {activity_id}.{ext} and overwrite existing ones. Protected mirror/token/config destinations and symlink traversal are rejected.
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer or string | yes |
format |
string, default fit |
no |
output_dir |
string or null | no |
set_fit_download_dir¶
destructive. Set and persist the default directory for downloaded activity files (in ~/.garminconnect_fit_config.json, overridable via GARMIN_FIT_CONFIG).
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=false.
| Parameter | Type | Required |
|---|---|---|
path |
string | yes |
get_courses¶
read. List all courses saved on Garmin Connect (id, name, distance, activity type, creation date).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_course_details¶
read. Get full details of a Garmin Connect course: metadata, elevation gain/loss, distance and all custom course waypoints.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
course_id |
integer | yes |
download_course_gpx¶
destructive. Download a Garmin Connect course as a GPX file rebuilt from its track points and course points (not the original upload). Overwrites an existing export. Protected mirror/token/config destinations and symlink traversal are rejected.
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
course_id |
integer | yes |
output_path |
string or null | no |
upload_course¶
write. Upload a GPX file as a Garmin Connect Course (loadable onto the watch for navigation or a PacePro strategy).
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
gpx_path |
string | yes |
course_name |
string or null | no |
activity_type |
string, default running |
no |
description |
string or null | no |
delete_course¶
destructive. Delete a course from Garmin Connect. This cannot be undone. Call once with confirm=false (the default) to preview, then with confirm=true.
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
course_id |
integer | yes |
confirm |
boolean, default False |
no |
Health and wellness¶
Daily summaries, heart rate, sleep, stress, Body Battery, respiration, pulse ox, hydration, weight, blood pressure, and the ranges and trends computed from them.
get_stats¶
read. Get daily activity stats with curated essential metrics: steps, calories, heart rate, stress, body battery, SpO2 and respiration.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_stats_range¶
read. Get lightweight per-day calorie and step totals for a date range (total/active/resting calories and steps per day).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_energy_balance¶
read. Estimate a composition-derived TDEE from logged intake, Garmin's claimed expenditure, and body-composition change over a date range.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_user_summary¶
read. Get user summary data (compatible with garminconnect-ha)
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_body_composition¶
read. Get body composition data for a single date or date range
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string or null | no |
get_stats_and_body¶
read. Get stats and body composition data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_steps_data¶
read. Get detailed steps data with 15-minute intervals (full interval data; for a compact summary use get_stats).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_daily_steps¶
read. Get steps data for a date range
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_training_readiness¶
read. Get training readiness data with curated metrics (score and contributing factors; one entry per snapshot of the day).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_body_battery¶
read. Get body battery data with events
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_body_battery_events¶
read. Get body battery events data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_blood_pressure¶
read. Get blood pressure data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_floors¶
read. Get floors climbed data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_rhr_day¶
read. Get resting heart rate data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_heart_rates¶
read. Get full heart rate time-series data (2-minute intervals, ~25KB; for a compact summary use get_heart_rates_summary).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_heart_rates_summary¶
read. Get heart rate summary with essential metrics (lightweight version, ~500 bytes).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_hydration_data¶
read. Get hydration data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_sleep_data¶
read. Get full sleep data with all details (~50KB; for a compact summary use get_sleep_summary).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_sleep_summary¶
read. Get sleep summary with only essential metrics (lightweight version, ~350 bytes).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_sleep_summary_range¶
read. Get lightweight sleep summaries for every night in a date range (same curated metrics as get_sleep_summary). Maximum: 90 nights per call.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_stress_data¶
read. Get full stress time-series data (~35KB, includes body battery; for a compact summary use get_stress_summary).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_stress_summary¶
read. Get stress summary with essential metrics (lightweight version, ~400 bytes).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_respiration_data¶
read. Get full respiration time-series data (~20KB; for a compact summary use get_respiration_summary).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_respiration_summary¶
read. Get respiration summary with essential metrics (lightweight version, ~300 bytes).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_spo2_data¶
read. Get SpO2 (blood oxygen) data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_all_day_stress¶
read. Get all-day stress data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_all_day_events¶
read. Get daily wellness events data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_lifestyle_logging_data¶
read. Get lifestyle logging data for a specific date (behaviours tracked and their impact on health metrics).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_weekly_steps¶
read. Get weekly step data aggregates: weekly step totals for the specified number of weeks ending at end_date (computed from the mirror's daily steps).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
end_date |
string | yes |
weeks |
integer, default 4 |
no |
get_weekly_stress¶
read. Get weekly stress data aggregates: weekly average stress for the specified number of weeks ending at end_date (computed from the mirror's daily summaries).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
end_date |
string | yes |
weeks |
integer, default 4 |
no |
get_weekly_intensity_minutes¶
read. Get weekly intensity minutes aggregates (moderate and vigorous) for the specified number of weeks ending at end_date.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
end_date |
string | yes |
weeks |
integer, default 4 |
no |
get_morning_training_readiness¶
read. Get morning training readiness score (the AFTER_WAKEUP_RESET snapshot; fields match one get_training_readiness entry).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_recovery_time_remaining¶
read. Get remaining recovery time in hours for a day (the Firstbeat recovery clock shown on-device).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string, default `` | no |
Training¶
Training status and load, readiness, HRV, VO2 max, acclimation, endurance and hill scores, race predictions, and Garmin-side reports.
get_progress_summary_between_dates¶
read. Get progress summary for a metric between dates, by activity type.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
metric |
string | yes |
get_hill_score¶
read. Get hill score data between dates
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_endurance_score¶
read. Get endurance score data between dates
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_training_effect¶
read. Get training effect data for a specific activity.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer | yes |
get_hrv_data¶
read. Get Heart Rate Variability (HRV) data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
return_timeseries |
boolean, default False |
no |
get_fitnessage_data¶
read. Get fitness age data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
details |
boolean, default False |
no |
get_training_status¶
read. Get training status with curated metrics: status, VO2 max, acute/chronic load (ACWR) and Load Focus balance.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_cycling_ftp¶
read. Get the latest cycling Functional Threshold Power (FTP) data.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_lactate_threshold¶
read. Get lactate threshold data (the exercise intensity at which lactate starts to accumulate): latest values, or history with a date range.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string or null | no |
end_date |
string or null | no |
request_reload¶
write. Request restoration of one archived intraday day. Uses one archive-reload allowance (local conservative limit 25/24h, not an authoritative general Garmin quota); follow-up reads run in about three hours. Check garmin_sync_status first. Ambiguous outcomes are recorded and never automatically replayed; inspect coverage before any manual recovery.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_training_load_trend¶
read. Get Garmin's daily acute and chronic training load over a date range.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_training_load_balance¶
read. Get Garmin's Load Focus: the distribution of the trailing-month training load across Aerobic Low, Aerobic High and Anaerobic bands with Garmin's target ranges, a status of below/within/above per band, and the feedback phrase (e.g. AEROBIC_HIGH_SHORTAGE, BALANCED). load_device_id/load_device_name say which device the numbers came from.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_hrv_trend¶
read. Get HRV (Heart Rate Variability) trend over a date range: daily values and the period average. A drop of >10ms from the 7-day baseline warrants reducing training load. Recommended range: 7-21 days. Maximum: 30 days.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_vo2max_trend¶
read. Get VO2 max trend over a date range (Garmin's FirstBeat estimates). Days between recomputes carry the last known value forward and are marked carried_forward: true, matching Garmin Connect's chart. Daily changes of <0.5 are noise; focus on the 4-6 week direction. Recommended range: 4-12 weeks. Maximum: 90 days.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_respiration_trend¶
read. Get overnight respiration rate trend over a date range. Elevated resting respiration vs the personal baseline is an early sign of overreaching, illness or poor recovery. Recommended range: 7-21 days. Maximum: 30 days.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_running_tolerance¶
read. Get Running Tolerance for a single day: tolerance_km (load capacity), acute_load_km (intensity-adjusted load), distance_km, and load_ratio (acute_load_km / distance_km).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_running_tolerance_trend¶
read. Get Running Tolerance trend over a date range, per period: tolerance_km, acute_load_km, distance_km and load_ratio. Weekly aggregation (default) gives a compact multi-month view. Maximum: 90 days for daily, 366 for weekly.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
aggregation |
string, default weekly |
no |
get_acclimation¶
read. Get heat and altitude acclimation status for a given date (heat_acclimation_percent 0-100, altitude acclimation in meters, Garmin's trend labels and the previous readings).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
Workouts and calendar¶
Workouts, the training calendar, scheduling, and the workout builders adapted from upstream.
get_workouts¶
read. Get all workouts with curated summary list (count and essential metadata; use get_workout_by_id for segments).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_workout_by_id¶
read. Get detailed information for a specific workout, including segments and step structure.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
workout_id |
integer or string | yes |
raw |
boolean, default False |
no |
download_workout¶
read. Download a workout as a FIT file. The binary cannot be returned through MCP; this confirms the workout is available and reports its size.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
workout_id |
integer | yes |
upload_workout¶
write. Upload a workout from JSON data (creates a new workout in Garmin Connect).
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
workout_data |
object | yes |
upload_workouts¶
write. Upload multiple workouts from JSON data in a single call. Each item uses the same structure and rules as upload_workout. Each workout is handled on its own: a failing one is reported and the rest still upload.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
workouts |
array of object | yes |
delete_workout¶
destructive. Permanently delete a workout from Garmin Connect. Call once with confirm=false (the default) to preview, then with confirm=true.
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
workout_id |
integer | yes |
confirm |
boolean, default False |
no |
delete_workouts¶
destructive. Permanently delete several workouts. Call once with confirm=false to preview them, then with confirm=true.
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
workout_ids |
array of integer | yes |
confirm |
boolean, default False |
no |
get_scheduled_workouts¶
read. Get scheduled workouts between two dates: workouts on the Garmin Connect calendar with their dates and completion status.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_garmin_coach_workouts¶
read. Get the active Garmin Coach plan's workouts for the week containing calendar_date (plan summary plus each scheduled workout; the count includes rest days).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
calendar_date |
string | yes |
get_training_plan_workouts¶
read. Get the active training plan's workouts for the week containing calendar_date (same data as get_garmin_coach_workouts; pass a workout_uuid to get_workout_by_id for details).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
calendar_date |
string | yes |
schedule_workout¶
write. Schedule a workout on the Garmin Connect calendar. Idempotent: a workout already scheduled on that date is reported and not duplicated.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
workout_id |
integer | yes |
calendar_date |
string | yes |
schedule_workouts¶
write. Schedule multiple workouts in a single call. Each item references an existing workout by workout_id, or provides inline workout_data (upload_workout structure) to upload-and-schedule in one step. Each item is handled on its own.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
schedules |
array of object | yes |
reschedule_workout¶
destructive. Move a scheduled workout to another date in place (same calendar-entry id, no duplicate). scheduled_workout_id is the calendar-entry id from get_scheduled_workouts, not the workout's id.
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
scheduled_workout_id |
integer | yes |
calendar_date |
string | yes |
unschedule_workout¶
destructive. Remove a scheduled workout from the calendar without deleting the workout template. scheduled_workout_id is the calendar-entry id from get_scheduled_workouts, not the workout's id.
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
scheduled_workout_id |
integer | yes |
unschedule_workouts¶
destructive. Remove several scheduled workouts from the calendar in one call (workout templates stay in the library). Each id is a calendar-entry id.
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
scheduled_workout_ids |
array of integer | yes |
create_walk_run_workout¶
write. Create a run/walk interval workout (warmup, repeats of run then walk, cooldown) and upload it to Garmin Connect.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
name |
string | yes |
run_seconds |
integer | yes |
walk_seconds |
integer | yes |
repeats |
integer | yes |
warmup_min |
integer | yes |
cooldown_min |
integer | yes |
hr_zone |
string, default Z3 |
no |
create_run_workout¶
write. Create a continuous run workout (warmup, run, cooldown) targeting a heart-rate zone, or a custom bpm range when hr_min and hr_max are given, and upload it.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
name |
string | yes |
run_seconds |
integer | yes |
warmup_min |
integer | yes |
cooldown_min |
integer | yes |
hr_zone |
string, default Z3 |
no |
hr_min |
integer or null | no |
hr_max |
integer or null | no |
create_run_interval_workout¶
write. Create a running interval workout (warmup, repeats of work then recovery, cooldown) and upload it. Work and recovery target a zone or, with the _hr_min/_hr_max pairs, custom bpm ranges.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
name |
string | yes |
repeats |
integer | yes |
rep_seconds |
integer | yes |
recovery_seconds |
integer | yes |
warmup_min |
integer | yes |
cooldown_min |
integer | yes |
hr_zone |
string, default Z4 |
no |
hr_min |
integer or null | no |
hr_max |
integer or null | no |
recovery_hr_min |
integer or null | no |
recovery_hr_max |
integer or null | no |
create_z2_walk_workout¶
write. Create a walking workout held in a custom heart-rate range (Zone 2 walk) and upload it.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
name |
string | yes |
duration_min |
integer | yes |
hr_min |
integer | yes |
hr_max |
integer | yes |
create_strength_workout¶
write. Create a strength workout and upload it to Garmin Connect. Each exercise becomes a reps-based step; when sets > 1 it is a repeat group of that many iterations (work + rest per set). The name is kept in the step description and sent as exerciseName, which Garmin retains only when it matches one of its own exercise keys (e.g. "FARMERS_CARRY").
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
name |
string | yes |
exercises |
array of object | yes |
schedule_week¶
write. Schedule several workouts on their dates in one call. Idempotent: a workout already scheduled on that date is reported and the POST skipped. Each entry is handled on its own.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
week |
array of object | yes |
get_calendar_events¶
read. Get races and events on the Garmin Connect calendar between two dates (entries the user added or subscribed to, such as upcoming races; not returned by get_scheduled_workouts or get_goals). Each event reports distance in meters when stored, the custom goal time in seconds when set, the local start time, is_race and primary_event (the goal race of an active plan).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
Profile, devices, gear, goals, courses¶
The user profile and settings, devices and sensors, gear, heart-rate zones, goals, badges, challenges and courses.
get_full_name¶
read. Get user's full name from profile
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_unit_system¶
read. Get user's preferred unit system from profile
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_user_profile¶
read. Get user profile information
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_userprofile_settings¶
read. Get user profile settings
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_heart_rate_zones¶
read. Get the user's saved heart-rate training-zone configuration: the generic DEFAULT profile plus sport-specific overrides (RUNNING, CYCLING, ...). With no sport every saved profile is returned.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
sport |
string or null | no |
set_heart_rate_zones¶
destructive. Set an account-level heart-rate training-zone configuration for one sport (DEFAULT, RUNNING, CYCLING, ... are independent).
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
sport |
string | yes |
max_hr |
integer or null | no |
resting_hr |
integer or null | no |
lactate_threshold_hr |
integer or null | no |
calculation_method |
string or null | no |
zone_boundaries |
array or null | no |
get_devices¶
read. Get all Garmin devices associated with the user account
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_device_last_used¶
read. Get information about the last used Garmin device
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_device_settings¶
read. Get settings for a specific Garmin device: time/date format, units, activity tracking settings, alarms.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
device_id |
integer or string or null | no |
get_primary_training_device¶
read. Get information about the primary training device and the other wearable devices on the account.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_device_solar_data¶
read. Get solar data for a specific device: activity time gained from solar, average/peak solar utilization and minutes with solar input across the day's per-minute readings. Only solar-capable devices.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
device_id |
integer or string | yes |
date |
string | yes |
get_device_alarms¶
read. Get alarms from all Garmin devices with their schedules, sounds and enabled status.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
push_workout_to_device¶
write. Send a workout from the library to a Garmin device (queues it like "Send to Device"; the watch picks it up at its next sync). Scheduled workouts reach the watch on their own. Each call queues another copy.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
workout_id |
integer | yes |
device_id |
integer or null | no |
get_gear¶
read. Get all gear registered with the user account: inventory with notes, usage statistics and default activity associations (defaults maps each activity type key to the names of its default gear).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
include_stats |
boolean, default True |
no |
add_gear_to_activity¶
write. Associate gear (shoes, bike, ...) with an activity.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer | yes |
gear_uuid |
string | yes |
remove_gear_from_activity¶
destructive. Remove a gear association from an activity.
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
activity_id |
integer | yes |
gear_uuid |
string | yes |
get_weigh_ins¶
read. Get weight measurements between specified dates
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_daily_weigh_ins¶
read. Get weight measurements for a specific date
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
delete_weigh_ins¶
destructive. Delete weight measurements for a specific date. This cannot be undone. Call once with confirm=false (the default) to preview, then with confirm=true to delete.
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
delete_all |
boolean, default True |
no |
confirm |
boolean, default False |
no |
add_weigh_in¶
write. Add a new weight measurement (now).
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
weight |
number | yes |
unit_key |
string, default kg |
no |
add_weigh_in_with_timestamps¶
write. Add a new weight measurement with specific timestamps. If both are omitted the current time is used; if only date_timestamp is given the GMT timestamp is derived from it.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
weight |
number | yes |
unit_key |
string, default kg |
no |
date_timestamp |
string or null | no |
gmt_timestamp |
string or null | no |
add_body_composition¶
write. Add a body composition entry (weight in kg plus optional smart-scale metrics) for a date.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
weight |
number | yes |
percent_fat |
number or null | no |
percent_hydration |
number or null | no |
visceral_fat_mass |
number or null | no |
bone_mass |
number or null | no |
muscle_mass |
number or null | no |
basal_met |
number or null | no |
active_met |
number or null | no |
physique_rating |
number or null | no |
metabolic_age |
number or null | no |
visceral_fat_rating |
number or null | no |
bmi |
number or null | no |
set_blood_pressure¶
write. Record a blood pressure measurement (now).
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
systolic |
integer | yes |
diastolic |
integer | yes |
pulse |
integer | yes |
notes |
string or null | no |
add_hydration_data¶
write. Log a hydration entry.
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
value_in_ml |
integer | yes |
cdate |
string | yes |
timestamp |
string | yes |
get_goals¶
read. Get Garmin Connect goals (active, future, or past), the way the Goals page reads them, so named distance/time targets are included with their progress and remaining amounts.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
goal_type |
string, default active |
no |
get_personal_record¶
read. Get personal records for user
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_earned_badges¶
read. Get earned badges for user
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_adhoc_challenges¶
read. Get user-created social/group challenges (e.g. step competitions with friends), distinct from official Garmin badge challenges.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start |
integer, default 0 |
no |
limit |
integer, default 20 |
no |
get_available_badge_challenges¶
read. Get official Garmin badge challenges available to join (monthly/seasonal challenges that award badges and points).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start |
integer, default 1 |
no |
limit |
integer, default 20 |
no |
get_badge_challenges¶
read. Get badge challenges the user has completed, with earned dates (for in-progress ones use get_non_completed_badge_challenges).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start |
integer, default 1 |
no |
limit |
integer, default 20 |
no |
get_non_completed_badge_challenges¶
read. Get badge challenges currently in progress (joined but not yet completed).
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start |
integer, default 1 |
no |
limit |
integer, default 20 |
no |
get_race_predictions¶
read. Get predicted race times (5K, 10K, half marathon, marathon) based on current fitness level and VO2 max.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_inprogress_virtual_challenges¶
read. Get in-progress virtual challenges/expeditions the user is participating in.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start |
integer, default 1 |
no |
limit |
integer, default 20 |
no |
get_pregnancy_summary¶
read. Get pregnancy summary data
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
get_menstrual_data_for_date¶
read. Get menstrual cycle data for a specific date
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_menstrual_calendar_data¶
read. Get menstrual calendar data between dates
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
Strava sync (optional)¶
Registered only when STRAVA_SYNC is set: Strava activity names onto Garmin, and removal of courses Strava's sync left behind. See Strava sync.
strava_sync_status¶
read. Status of the Strava sync: its settings, the last run's result (renames, conflicts, course deletions or why they were held), what the ledger links, and its recent actions. No Garmin request.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=false.
strava_sync_plan¶
read. What the Strava sync would do now, without doing it: the Garmin activities it would rename to their Strava names, the renames it leaves alone because the Garmin name was edited by hand, and which Strava-made courses it keeps (with the starred Strava route each matches and how) or would delete (orphaned: no starred route; or an older duplicate). Re-fetches the course list from Garmin first.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
strava_sync_apply¶
destructive. Run one part of the Strava sync now, past the per-run cap; for courses also when STRAVA_SYNC_COURSES is dry-run. Deleted courses cannot be restored. Call once with confirm=false (the default) for the preview, then with confirm=true.
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
part |
string | yes |
confirm |
boolean, default False |
no |
Nutrition and women's health¶
Pass-through tools vendored from upstream: fetched from Garmin and cached for ten minutes (the mirror does not keep nutrition logs).
get_nutrition_daily_food_log¶
read. Get daily food consumption records for a date
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_nutrition_summary_between_dates¶
read. Get per-day nutrition totals for every day in a date range.
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
start_date |
string | yes |
end_date |
string | yes |
get_nutrition_daily_meals¶
read. Get daily meal summaries for a date
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
get_nutrition_daily_settings¶
read. Get nutrition plan/settings for a date
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
set_nutrition_daily_settings¶
destructive. Update daily nutrition goals (calorie target and macronutrient targets).
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
date |
string | yes |
calorie_goal |
integer or null | no |
carbs_grams |
integer or null | no |
fat_grams |
integer or null | no |
protein_grams |
integer or null | no |
target_date |
string or null | no |
search_foods¶
read. Search Garmin's general food catalog (FatSecret + Garmin custom foods)
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
query |
string | yes |
start |
integer, default 0 |
no |
limit |
integer, default 20 |
no |
get_custom_foods¶
read. Search or list user's custom foods
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
search |
string, default `` | no |
start |
integer, default 0 |
no |
limit |
integer, default 20 |
no |
get_custom_food_serving_units¶
read. Get available serving units for custom foods
Hints: readOnly=true, destructive=false, idempotent=true, openWorld=true.
create_custom_food¶
write. Create a custom food in the user's Garmin nutrition library
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
food_name |
string | yes |
calories |
number | yes |
serving_unit |
string, default G |
no |
number_of_units |
number, default 100 |
no |
brand_name |
string or null | no |
carbs |
number or null | no |
protein |
number or null | no |
fat |
number or null | no |
fiber |
number or null | no |
sugar |
number or null | no |
saturated_fat |
number or null | no |
sodium |
number or null | no |
cholesterol |
number or null | no |
potassium |
number or null | no |
trans_fat |
number or null | no |
calcium |
number or null | no |
iron |
number or null | no |
vitamin_d |
number or null | no |
update_custom_food¶
destructive. Update an existing custom food in the user's Garmin nutrition library
Hints: readOnly=false, destructive=true, idempotent=true, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
food_id |
string | yes |
serving_id |
string | yes |
food_name |
string | yes |
calories |
number | yes |
serving_unit |
string or null | no |
number_of_units |
number or null | no |
brand_name |
string or null | no |
carbs |
number or null | no |
protein |
number or null | no |
fat |
number or null | no |
fiber |
number or null | no |
sugar |
number or null | no |
saturated_fat |
number or null | no |
sodium |
number or null | no |
cholesterol |
number or null | no |
potassium |
number or null | no |
trans_fat |
number or null | no |
calcium |
number or null | no |
iron |
number or null | no |
vitamin_d |
number or null | no |
delete_custom_food¶
destructive. Delete a custom food from the user's Garmin nutrition library
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
food_id |
string | yes |
confirm |
boolean, default False |
no |
log_custom_food¶
write. Log a food item to a meal on a date
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
meal_date |
string | yes |
meal_time |
string | yes |
food_id |
string | yes |
serving_id |
string | yes |
serving_qty |
number, default 1 |
no |
source |
string, default GARMIN |
no |
log_food¶
write. Quick-add a food entry with macro values to the nutrition log
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
meal_date |
string | yes |
meal_time |
string | yes |
name |
string | yes |
calories |
number | yes |
carbs |
number | yes |
protein |
number | yes |
fat |
number | yes |
delete_food_log¶
destructive. Delete a food log entry
Hints: readOnly=false, destructive=true, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
log_id |
string | yes |
meal_date |
string | yes |
confirm |
boolean, default False |
no |
upsert_and_log¶
write. Find-or-create a custom food then log it in one step
Hints: readOnly=false, destructive=false, idempotent=false, openWorld=true.
| Parameter | Type | Required |
|---|---|---|
meal_date |
string | yes |
meal_time |
string | yes |
food_name |
string | yes |
calories |
number | yes |
carbs |
number or null | no |
protein |
number or null | no |
fat |
number or null | no |
brand_name |
string or null | no |
serving_unit |
string, default G |
no |
number_of_units |
number, default 100 |
no |
serving_qty |
number, default 1 |
no |