Curves (watts, pace, hr ... per types) for one activity, optionally with fatigued variants.
Observed live (2026-09-22): the API returns HTTP 422 when a requested stream or fatigue variant
is not available for the activity (e.g. hr on a ride without heart rate, kj0/kj1 without fatigue data).
Optionaloptions: ActivityPowerCurvesOptionsSame as getCurves, as CSV
Optionaloptions: ActivityPowerCurvesOptionsTime in heart-rate buckets
Optionaloptions: { bucketSize?: number }Statistics for an arbitrary index range of the activity, as if it were an interval
Power model used to resolve %MMP workout steps for a sport type
OptionalathleteId: stringTime in power buckets
Optionaloptions: { bucketSize?: number }Power model fitted to the activity, used to detect power spikes
Activity- and athlete-level analytics: histograms, time-at-HR, interval statistics, power models and activity curves. Activity-level methods take an activity id; athlete-level methods take the usual optional trailing athleteId.
The older single-curve activity methods (activities.getPowerCurve and friends) hit different routes and remain on ActivityService.
Caller-supplied activity ids are URL-encoded before interpolation so a delimiter in an id cannot change the route.