{"openapi":"3.1.0","info":{"title":"Montis.icu Coach Proxy","version":"5.4.1","description":"Montis API Edge service for URF reports and extended Intervals.icu APIs"},"servers":[{"url":"/"}],"paths":{"/api/v1/connection/status":{"get":{"summary":"Check Montis Intervals connection status","operationId":"getConnectionStatusV1","description":"Checks whether the current GPT/browser session resolves to a stored Montis Intervals.icu token.","responses":{"200":{"description":"Current Montis connection status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionStatusResponse"}}}}}}},"/api/v1/run_weekly":{"get":{"summary":"Generate a weekly URF report (7-day)","operationId":"runWeeklyReportV2","parameters":[{"in":"query","name":"test","schema":{"type":"string"},"required":false,"description":"Demo weekly report data."},{"in":"query","name":"lite","schema":{"type":"boolean","default":false},"required":false,"description":"Default is false. Only set lite=true when the user explicitly asks for a lite/short report. Do not combine with overview=true."},{"in":"query","name":"overview","schema":{"type":"boolean","default":false},"required":false,"description":"Default is false. Only set overview=true when the user explicitly asks for compact overview, dashboard, Bento view, or weekly overview. Do not infer or default this to true."},{"in":"query","name":"start","schema":{"type":"string","format":"date"},"required":false,"description":"Optional start date (YYYY-MM-DD) for the weekly window."},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Weekly URF report output","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportResponse"}}}}}}},"/api/v1/run_season":{"get":{"summary":"Generate a season URF report (90-day block)","operationId":"runSeasonReportV2","parameters":[{"in":"query","name":"lite","schema":{"type":"boolean","default":false},"required":false,"description":"Default is false. Only set lite=true when the user explicitly asks for a lite/short report. Do not combine with overview=true."},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Season URF report output","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportResponse"}}}}}}},"/api/v1/run_wellness":{"get":{"summary":"Generate a 42-day wellness URF report","operationId":"runWellnessReportV2","parameters":[{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Wellness URF report output","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportResponse"}}}}}}},"/api/v1/run_summary":{"get":{"summary":"Generate a URF high-level summary for a specific date range","operationId":"runSummaryReportV2","parameters":[{"in":"query","name":"start","schema":{"type":"string","format":"date"},"required":false,"description":"Optional start date (YYYY-MM-DD) for the summary window."},{"in":"query","name":"end","schema":{"type":"string","format":"date"},"required":false,"description":"Optional end date (YYYY-MM-DD) for the summary window."},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Summary URF output","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportResponse"}}}}}}},"/api/v1/calendar/read":{"get":{"summary":"Read planned workouts from Intervals.icu calendar","operationId":"readCalendarV1","parameters":[{"in":"query","name":"start","schema":{"type":"string","format":"date"},"required":true,"description":"Start date (ISO 8601) for calendar range."},{"in":"query","name":"end","schema":{"type":"string","format":"date"},"required":true,"description":"End date (ISO 8601) for calendar range."},{"in":"query","name":"lite","schema":{"type":"boolean"},"required":false,"description":"Return lite version of planned events"},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Array of planned workouts","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PlannedWorkout"}}}}}}}},"/api/v1/calendar/write":{"post":{"summary":"Write or update planned workouts to Intervals.icu calendar","operationId":"writeCalendarV1","parameters":[{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"planned_workouts":{"type":"array","description":"List of planned workouts to create or update.","items":{"type":"object","required":["date","title","type","category","description","duration_minutes"],"properties":{"date":{"type":"string","description":"ISO date (YYYY-MM-DD)"},"title":{"type":"string","description":"Workout title"},"type":{"type":"string","description":"Sport type (Run, Ride, TrailRun, Swim, etc.)"},"category":{"type":"string","description":"Workout category (WORKOUT, RACE_A, NOTE, etc.)"},"description":{"type":"string","description":"STRICT interval format (only '-' lines)"},"duration_minutes":{"type":"number","description":"Total duration in minutes (must equal sum of intervals)"},"tss":{"type":"number","description":"Optional intended training load"},"carbs_per_hour":{"type":"number","description":"Fueling recommendation (g/hour)"}}}}},"required":["planned_workouts"]}}}},"responses":{"200":{"description":"Planned workouts successfully written","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"created":{"type":"integer","description":"Number of workouts created"},"updated":{"type":"integer","description":"Number of workouts updated"}}}}}}}}},"/api/v1/calendar/delete":{"post":{"summary":"Delete planned workouts or events from Intervals.icu calendar","operationId":"deleteCalendarV1","parameters":[{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":["integer","string"],"description":"Event ID to delete"},"date":{"type":"string","format":"date","description":"If ID not provided, delete all events on this date"},"dates":{"type":"array","items":{"type":"string","format":"date"}}},"oneOf":[{"required":["id"]},{"required":["date"]},{"required":["dates"]}]}}}},"responses":{"200":{"description":"Delete successful","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"integer","description":"Number of events deleted"},"status":{"type":"string"}}}}}},"400":{"description":"Missing ID or date"},"401":{"description":"Unauthorized"}}}},"/api/v1/athlete/0/activities_t0light":{"get":{"summary":"List activities (Tier-0 lightweight, 90-day reduced fieldset)","operationId":"listActivitiesLight","parameters":[{"name":"oldest","in":"query","schema":{"type":"string","format":"date"}},{"name":"newest","in":"query","schema":{"type":"string","format":"date"}},{"name":"fields","in":"query","schema":{"type":"string"},"description":"Comma-separated field list for lightweight mode"},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Lightweight 90-day dataset of completed activities","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ActivityLight"}}}}}}}},"/api/v1/athlete/0/onedayfullactivity":{"get":{"summary":"Fetch full activity data (including intervals)","operationId":"getOneDayFullActivityV1","parameters":[{"in":"query","name":"date","schema":{"type":"string","format":"date"},"required":false,"description":"Date (YYYY-MM-DD) to fetch all activities for that day"},{"in":"query","name":"activity_id","schema":{"type":"string"},"required":false,"description":"Intervals activity id starting with 'i'. Example: i129985499"},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Full activity bundle with interval data","content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","format":"date"},"activities":{"type":"array","items":{"type":"object","properties":{"activity":{"type":"object"},"interval_stats":{"type":"array","items":{"type":"object"}}},"required":["activity"]}}},"required":["activities"]}}}}}}},"/api/v1/athlete/0/wellness":{"get":{"summary":"Fetch wellness data for a single day","operationId":"getOneDayWellnessV1","parameters":[{"in":"query","name":"date","schema":{"type":"string","format":"date"},"required":true,"description":"Date (YYYY-MM-DD) to fetch wellness data for"},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Wellness record for the given day","content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","format":"date"},"wellness":{"type":"object","additionalProperties":true}},"required":["date","wellness"]}}}},"404":{"description":"No wellness record found for that date"}}}},"/api/v1/chats/send-message":{"post":{"summary":"Send a direct Intervals.icu message","description":"Sends a message to an Intervals.icu chat, athlete, or activity thread. Exactly one routing field must be provided.","operationId":"sendChatMessageV1","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","description":"Rendered URF report or coaching message (Markdown supported)"},"chat_id":{"type":"string","description":"Intervals.icu internal chat ID (e.g. 01)"},"to_athlete_id":{"type":"string","description":"Intervals.icu athlete ID"},"to_activity_id":{"type":"string","description":"Intervals.icu activity ID"}},"required":["content"],"oneOf":[{"required":["chat_id"]},{"required":["to_athlete_id"]},{"required":["to_activity_id"]}]}}}},"responses":{"200":{"description":"Message sent successfully"},"422":{"description":"No valid routing target provided"}}}},"/api/v1/run_data_quality":{"get":{"summary":"Generate a data quality audit report","operationId":"runDataQualityReportV1","parameters":[{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Data quality audit report","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportResponse"}}}}}}},"/api/v1/athlete/0/sport-settings":{"get":{"summary":"Fetch athlete sport settings","operationId":"getSportSettingsV1","parameters":[{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Sport settings profile","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}}}}},"/api/v1/athlete/0":{"get":{"summary":"Fetch athlete profile data","operationId":"getAthleteProfileV1","parameters":[{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Raw athlete profile JSON","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}}}}},"/api/v1/athlete/0/power-curves-ext":{"get":{"summary":"Fetch extended power curves for a sport","operationId":"getPowerCurvesExtV1","parameters":[{"in":"query","name":"type","schema":{"type":"string","enum":["Ride","Run","VirtualRow","VirtualSki","Swim"]},"required":true,"description":"Sport type for power curve calculation"},{"in":"query","name":"curves","schema":{"type":"string"},"required":false,"description":"Comma-separated curve identifiers (e.g. 'all', '1y', 's1,s0', 'r.2025-01-01.2025-03-01,r.2025-03-01.2025-05-01'). Defaults to 1 year if omitted."},{"in":"query","name":"pmType","schema":{"type":"string","enum":["MS_2P","MORTON_3P","FFT_CURVES","ECP"]},"required":false,"description":"Power model type to return. If omitted, all models are returned."},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Extended power curve data","content":{"application/json":{"schema":{"type":"object","properties":{"curves":{"type":"object","additionalProperties":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"start_date_local":{"type":"string","format":"date-time"},"end_date_local":{"type":"string","format":"date-time"},"days":{"type":"integer"},"moving_time":{"type":"number"},"training_load":{"type":"number"},"weight":{"type":"number"},"secs":{"type":"array","items":{"type":"integer"}},"values":{"type":"array","items":{"type":"number"}},"watts_per_kg":{"type":"array","items":{"type":"number"}},"powerModels":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"criticalPower":{"type":"number"},"wPrime":{"type":"number"},"pMax":{"type":"number"},"ftp":{"type":"number"}}}}}}}}}}}}}}},"/api/v1/athlete/0/pace-curves-ext":{"get":{"summary":"Fetch pace curves for running or swimming","operationId":"getPaceCurvesExtV1","parameters":[{"in":"query","name":"curves","schema":{"type":"string"},"required":false,"description":"Comma-separated curve identifiers (e.g. s0,s1,1y)"},{"in":"query","name":"type","schema":{"type":"string","enum":["Run","Swim"]},"required":true},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Pace curve data","content":{"application/json":{"schema":{"type":"object","properties":{"curves":{"type":"object"}}}}}}}}},"/api/v1/athlete/0/activity_power_curve":{"get":{"summary":"Fetch maximal mean power curve for a single activity","operationId":"getActivityPowerCurveV1","parameters":[{"in":"query","name":"activity_id","schema":{"type":"string"},"required":true,"description":"Intervals.icu activity ID (e.g. i146251446)"},{"in":"query","name":"kj","schema":{"type":"string","enum":["kj0","kj1"]},"required":false,"description":"Optional fatigued power curve preset. kj0=fresh baseline, kj1=fatigued curve."},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Single activity power curve data","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"secs":{"type":"array","items":{"type":"number"}},"values":{"type":"array","items":{"type":"number"}},"watts_per_kg":{"type":"array","items":{"type":"number"}},"vo2max_5m":{"type":"number"},"compound_score_5m":{"type":"number"}}}}}}}}},"/api/v1/athlete/0/hr-curves":{"get":{"summary":"Fetch heart rate curves for the athlete","operationId":"getHRCurvesV1","parameters":[{"in":"query","name":"curves","schema":{"type":"string"},"required":false,"description":"Comma-separated curve identifiers (e.g. '1y', 's1,s0')."},{"in":"query","name":"type","schema":{"type":"string","enum":["Ride","Run","Swim"]},"required":false,"description":"Sport type"},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Heart rate curve data","content":{"application/json":{"schema":{"type":"object","properties":{"curves":{"type":"object","additionalProperties":true}}}}}}}}},"/api/v1/athlete/0/power-hr-curve":{"get":{"summary":"Fetch power vs heart rate curve for a date range","operationId":"getPowerHRCurveV1","parameters":[{"in":"query","name":"start","schema":{"type":"string","format":"date"},"required":true,"description":"Start date (YYYY-MM-DD)"},{"in":"query","name":"end","schema":{"type":"string","format":"date"},"required":true,"description":"End date (YYYY-MM-DD)"},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Power vs heart rate curve data","content":{"application/json":{"schema":{"type":"object","properties":{"points":{"type":"array","items":{"type":"object","properties":{"power":{"type":"number"},"hr":{"type":"number"}}}}}}}}}}}},"/api/v1/athlete/0/activity_hr_curve":{"get":{"summary":"Fetch heart rate curve for a single activity","operationId":"getActivityHRCurveV1","parameters":[{"in":"query","name":"activity_id","schema":{"type":"string"},"required":true,"description":"Intervals.icu activity ID"},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Single activity HR curve"}}}},"/api/v1/athlete/0/activity_pace_curve":{"get":{"summary":"Fetch pace curve for a single activity","operationId":"getActivityPaceCurveV1","parameters":[{"in":"query","name":"activity_id","schema":{"type":"string"},"required":true,"description":"Intervals.icu activity ID"},{"in":"query","name":"gap","schema":{"type":"boolean"},"required":false,"description":"true=GAP, false=raw pace"},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Single activity pace/GAP curve"}}}},"/api/v1/athlete/0/activity_segments":{"get":{"summary":"Fetch detected segments for a single activity","operationId":"getActivitySegmentsV1","parameters":[{"in":"query","name":"activity_id","schema":{"type":"string"},"required":true,"description":"Intervals.icu activity ID"},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Activity segment data"}}}},"/api/v1/athlete/0/mmp-model":{"get":{"summary":"Fetch mean maximal power model","operationId":"getMMPModelV1","parameters":[{"in":"query","name":"type","schema":{"type":"string","enum":["Ride","Run","Swim"]},"required":false,"description":"Sport type for power model"},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Mean maximal power model","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"cp":{"type":"number"},"ftp":{"type":"number"},"w_prime":{"type":"number"},"p_max":{"type":"number"}},"additionalProperties":true}}}}}}},"/api/v1/athlete/0/activity_terrain_execution":{"get":{"summary":"Terrain Execution Analysis for a single activity","operationId":"getActivityTerrainExecutionV1","parameters":[{"in":"query","name":"activity_id","schema":{"type":"string"},"required":true,"description":"Intervals.icu activity ID (e.g. i146251446)"},{"in":"query","name":"segment_m","schema":{"type":"integer","default":250,"minimum":100,"maximum":500},"required":false,"description":"Route segmentation distance in metres."},{"in":"query","name":"athleteID","schema":{"type":"string"},"required":false,"description":"Optional athlete ID for coached athlete."}],"responses":{"200":{"description":"Terrain Execution Analysis","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerrainExecutionResponse"}}}}}}},"/api/v1/athlete/0/coached-athletes":{"get":{"summary":"List coached athletes accessible to the current user","operationId":"getCoachedAthletesV1","responses":{"200":{"description":"List of coached athletes","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"firstname":{"type":"string"},"lastname":{"type":"string"},"name":{"type":"string"}},"required":["id"]}}}}},"401":{"description":"Unauthorized"}}}}},"components":{"schemas":{"ConnectionStatusResponse":{"type":"object","properties":{"connected":{"type":"boolean"},"source":{"type":"string"},"has_cookie":{"type":"boolean"},"cookie_session_valid":{"type":"boolean"},"cookie_athlete_id":{"type":["string","null"]},"has_authorization_header":{"type":"boolean"},"gpt_jwt_valid":{"type":"boolean"},"gpt_athlete_id":{"type":["string","null"]},"gpt_kv_key":{"type":["string","null"]},"kv_exists":{"type":"boolean"},"kv_athlete_id":{"type":["string","null"]},"athlete_name":{"type":["string","null"]},"timezone":{"type":["string","null"]},"message":{"type":"string"}}},"ReportResponse":{"type":"object","properties":{"status":{"type":"string"},"report_type":{"type":"string"},"markdown":{"type":["string","null"]},"semantic_graph":{"type":["object","null"],"properties":{"future_state":{"type":["object","null"],"description":"Projected load and fitness state based on planned workouts."},"actions_future":{"type":["array","null"],"description":"Forecasted coaching recommendations."}}},"logs":{"type":["string","null"]}}},"PlannedWorkout":{"type":"object","properties":{"date":{"type":"string","format":"date"},"title":{"type":"string"},"tss":{"type":["number","null"]},"duration_minutes":{"type":["number","null"]},"carbs_per_hour":{"type":["number","null"]},"notes":{"type":["string","null"]}},"required":["date","title"]},"TerrainExecutionResponse":{"type":"object","properties":{"activity_id":{"type":"string"},"segment_m":{"type":"integer"},"stream_points":{"type":"integer"},"total_distance_km":{"type":"number"},"summary":{"type":"object","properties":{"terrain_demand":{"type":"string"},"execution_quality":{"type":"string"},"primary_limiter":{"type":"string"},"confidence":{"type":"string"},"evidence":{"type":"object","additionalProperties":true}}},"rankings":{"type":"object","properties":{"hardest_segment":{"type":["integer","null"]},"best_climb_segment":{"type":["integer","null"]},"first_review_segment":{"type":["integer","null"]}}},"route_story":{"type":"array","items":{"type":"string"}},"map_payload":{"type":"object","properties":{"segments":{"type":"array","items":{"type":"object","additionalProperties":true}}}},"coach_insight":{"type":"array","items":{"type":"string"}}}}}},"x-intents":[{"trigger":["check connection","check connection status","am i connected","connection status","verify connection"]},{"trigger":["weekly report","run weekly report","generate weekly report","7 day report","7-day report","past week report","weekly report starting","weekly report from","weekly report for week of","weekly report last week","weekly report this week","ISO week report","week starting","week beginning"],"action":"runWeeklyReportV2","x-intent":{"x-intent":"weekly","strict":false}},{"trigger":["season report","90 day report","block report","training block report","run season report","mid term report"],"action":"runSeasonReportV2","x-intent":{"x-intent":"season","strict":false}},{"trigger":["wellness report","42 day wellness","recovery report","run wellness report"],"action":"runWellnessReportV2","x-intent":{"x-intent":"wellness","strict":false}},{"trigger":["summary report","overview report","high level summary","run summary","annual summary","yearly summary","annual report"],"action":"runSummaryReportV2","x-intent":{"x-intent":"summary","strict":false}},{"trigger":["read calendar","read events","get planned workouts","list planned events","fetch calendar","forecast events","get events","load planned events"],"action":"readCalendarV1","x-intent":{"x-intent":"calendar-read","strict":false}},{"trigger":["write calendar","add event","create event","plan workout","update calendar","sync planned workouts"],"action":"writeCalendarV1","x-intent":{"x-intent":"calendar-write","strict":true}},{"trigger":["delete calendar event","remove event","cancel planned workout"],"action":"deleteCalendarV1","x-intent":{"x-intent":"calendar-delete","strict":true}},{"trigger":["get activities","list activities","show recent rides","show last week rides","activities this week","list recent sessions","show last 5 rides"],"action":"listActivitiesLight","x-intent":{"x-intent":"activities-light","strict":false}},{"trigger":["get activity","get one day full acivity","load last activity","analyse last activity","analyze last activity","deep dive last activity","full activity analysis","break down yesterday's activity","detailed activity analysis"],"action":"getOneDayFullActivityV1","x-intent":{"x-intent":"oneday-full-activity","strict":false}},{"trigger":["data quality report","check my data","data audit","run data quality"],"action":"runDataQualityReportV1","x-intent":{"x-intent":"data-quality","strict":true}},{"trigger":["sport settings","show my zones","get my zones","ftp and zones","heart rate zones","power zones"],"action":"getSportSettingsV1","x-intent":{"x-intent":"sport-settings","strict":false}},{"trigger":["power curve","power curves","my power curve","power curve ride","power curve run"],"action":"getPowerCurvesExtV1","x-intent":{"x-intent":"power-curves","strict":false}},{"trigger":["wellness for today","wellness for yesterday","show today's wellness","show yesterday's wellness","single day wellness"],"action":"getOneDayWellnessV1","x-intent":{"x-intent":"oneday-wellness","strict":false}},{"trigger":["athlete profile raw","show athlete json","get athlete data"],"action":"getAthleteProfileV1","x-intent":{"x-intent":"athlete-raw","strict":false}},{"trigger":["pace curve","pace curves","running pace curve","swim pace curve","run pace curve","best pace curve","running performance curve","pace curve run","pace curve swim"],"action":"getPaceCurvesExtV1","x-intent":{"x-intent":"pace-curves","strict":false}},{"trigger":["hr curve","heart rate curve","hr curves","heart rate curves","my hr curve","hr power curve","heart rate power curve"],"action":"getHRCurvesV1","x-intent":{"x-intent":"hr-curves","strict":false}},{"trigger":["get activity power curve","single activity power curve","ride power curve","power curve for activity","activity mmp","ride mmp","maximal mean power for ride","fatigued power curve","fresh vs fatigued power curve","single ride power curve","activity durability curve"],"action":"getActivityPowerCurveV1","x-intent":{"x-intent":"activity-power-curve","strict":false}},{"trigger":["power hr curve","power vs hr","power heart rate curve","power to heart rate","aerobic decoupling curve","power hr relationship"],"action":"getPowerHRCurveV1","x-intent":{"x-intent":"power-hr-curve","strict":false}},{"trigger":["activity hr curve","ride hr curve","single activity hr","heart rate curve for ride"],"action":"getActivityHRCurveV1","x-intent":{"x-intent":"activity-hr-curve","strict":false}},{"trigger":["activity pace curve","run pace curve","gap curve","activity gap curve","single activity pace"],"action":"getActivityPaceCurveV1","x-intent":{"x-intent":"activity-pace-curve","strict":false}},{"trigger":["activity segments","ride segments","climb segments","segments from activity","analyse segments"],"action":"getActivitySegmentsV1","x-intent":{"x-intent":"activity-segments","strict":false}},{"trigger":["ftp estimate","critical power model","power model","mmp model","power capacity model"],"action":"getMMPModelV1","x-intent":{"x-intent":"mmp-model","strict":false}},{"trigger":["terrain execution","tea analysis","terrain analysis","route execution","analyse terrain execution","analyze terrain execution","terrain execution analysis","why did i struggle on this route","route intelligence","activity terrain analysis","trail execution analysis"],"action":"getActivityTerrainExecutionV1","x-intent":{"x-intent":"terrain-execution","strict":false}},{"trigger":["list coached athletes","show my athletes","who do I coach","coached athletes"],"action":"getCoachedAthletesV1","x-intent":{"x-intent":"coached-athletes","strict":false}}],"x-actions":{"runWeeklyReportV2":{"type":"operation","operationId":"runWeeklyReportV2"},"runSeasonReportV2":{"type":"operation","operationId":"runSeasonReportV2"},"runWellnessReportV2":{"type":"operation","operationId":"runWellnessReportV2"},"runSummaryReportV2":{"type":"operation","operationId":"runSummaryReportV2"},"readCalendarV1":{"type":"operation","operationId":"readCalendarV1"},"writeCalendarV1":{"type":"operation","operationId":"writeCalendarV1"},"deleteCalendarV1":{"type":"operation","operationId":"deleteCalendarV1"},"getOneDayFullActivityV1":{"type":"operation","operationId":"getOneDayFullActivityV1"},"runDataQualityReportV1":{"type":"operation","operationId":"runDataQualityReportV1"},"getSportSettingsV1":{"type":"operation","operationId":"getSportSettingsV1"},"getPowerCurvesExtV1":{"type":"operation","operationId":"getPowerCurvesExtV1"},"getOneDayWellnessV1":{"type":"operation","operationId":"getOneDayWellnessV1"},"getAthleteProfileV1":{"type":"operation","operationId":"getAthleteProfileV1"},"listActivitiesLight":{"type":"operation","operationId":"listActivitiesLight"},"getPaceCurvesExtV1":{"type":"operation","operationId":"getPaceCurvesExtV1"},"getActivityPowerCurveV1":{"type":"operation","operationId":"getActivityPowerCurveV1"},"getHRCurvesV1":{"type":"operation","operationId":"getHRCurvesV1"},"getPowerHRCurveV1":{"type":"operation","operationId":"getPowerHRCurveV1"},"getActivityHRCurveV1":{"type":"operation","operationId":"getActivityHRCurveV1"},"getActivityPaceCurveV1":{"type":"operation","operationId":"getActivityPaceCurveV1"},"getActivitySegmentsV1":{"type":"operation","operationId":"getActivitySegmentsV1"},"getMMPModelV1":{"type":"operation","operationId":"getMMPModelV1"},"getActivityTerrainExecutionV1":{"type":"operation","operationId":"getActivityTerrainExecutionV1"},"getCoachedAthletesV1":{"type":"operation","operationId":"getCoachedAthletesV1"},"getConnectionStatusV1":{"type":"operation","operationId":"getConnectionStatusV1"}}}