In 1975, FredBrooks said: I will contend that conceptual integrity is the most important consideration in system design. It is better to have a system omit certain anomalous features and improvements, but to reflect one set of design ideas, than to have one that contains many good but independent and uncoordinated ideas.

Strava activity data service view and download

Have you authorised access to your Strava data?
CSV download: {{req_csv_url}}
{{preview_data}}
{{resp_err_type}} {{resp_err}}
{{resp_info}}
# id Name Type Description Start Time Start Town Start City Start Country Finish Time Finish Town Finish City Finish Country Distance Elapsed Time Moving Time Avg Pace Max Pace Avg Cadence Min Elevation Max Elevation Elevation Gain Avg Gradient Avg Heart Rate Max Heart Rate Avg Temp Calories Suffer Score Shoe Device Commute On Trainer Manual Flagged
{{$index+1}} {{r.id}} {{r.athlete.name}} Run {{get_desc_display(r.description)}} {{get_date_time_display(r["start-time"])}} {{r["start-town"]}} {{r["start-city"]}} {{r["start-country"]}} {{get_date_time_display(r["finish-time"])}} {{r["finish-town"]}} {{r["finish-city"]}} {{r["finish-country"]}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_duration_display(r["avg-pace"])}} {{get_duration_display(r["max-pace"])}} {{get_number_display(r["avg-cadence"],0)}} {{get_number_display(r["min-elevation"],0)}} {{get_number_display(r["max-elevation"],0)}} {{get_number_display(r["elevation-gain"],0)}} {{get_percent_display(r["avg-gradient"],2)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["max-heart-rate"],0)}} {{get_number_display(r["avg-temp"],1)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_gear_display(r.shoe)}} {{r["device-name"]}} {{get_boolean_display(r["is-commute"])}} {{get_boolean_display(r["is-on-trainer"])}} {{get_boolean_display(r["is-manual"])}} {{get_boolean_display(r["is-flagged"])}}
# id Name Type Description Start Time Start Town Start City Start Country Finish Time Finish Town Finish City Finish Country Distance Elapsed Time Moving Time Avg Speed Max Speed Avg Cadence Min Elevation Max Elevation Elevation Gain Avg Gradient Avg Heart Rate Max Heart Rate Avg Temp Calories Suffer Score Kilojoules Avg Watts Max Watts Weighted Avg Watts Bike Device Commute On Trainer Manual Flagged
{{$index+1}} {{r.id}} {{r.athlete.name}} Ride {{get_desc_display(r.description)}} {{get_date_time_display(r["start-time"])}} {{r["start-town"]}} {{r["start-city"]}} {{r["start-country"]}} {{get_date_time_display(r["finish-time"])}} {{r["finish-town"]}} {{r["finish-city"]}} {{r["finish-country"]}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r["avg-speed"],2)}} {{get_number_display(r["max-speed"],2)}} {{get_number_display(r["avg-cadence"],0)}} {{get_number_display(r["min-elevation"],0)}} {{get_number_display(r["max-elevation"],0)}} {{get_number_display(r["elevation-gain"],0)}} {{get_percent_display(r["avg-gradient"],2)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["max-heart-rate"],0)}} {{get_number_display(r["avg-temp"],1)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_number_display(r.kilojoules,0)}} {{get_number_display(r["avg-watts"],0)}} {{get_number_display(r["max-watts"],0)}} {{get_number_display(r["weighted-avg-watts"],0)}} {{get_gear_display(r.bike)}} {{r["device-name"]}} {{get_boolean_display(r["is-commute"])}} {{get_boolean_display(r["is-on-trainer"])}} {{get_boolean_display(r["is-manual"])}} {{get_boolean_display(r["is-flagged"])}}
# id Name Type Description Start Time Start Town Start City Start Country Finish Time Finish Town Finish City Finish Country Distance Elapsed Time Moving Time Avg Pace Max Pace Min Elevation Max Elevation Elevation Gain Avg Gradient Avg Heart Rate Max Heart Rate Avg Temp Calories Suffer Score Shoe Device Commute On Trainer Manual Flagged
{{$index+1}} {{r.id}} {{r.athlete.name}} Walk {{get_desc_display(r.description)}} {{get_date_time_display(r["start-time"])}} {{r["start-town"]}} {{r["start-city"]}} {{r["start-country"]}} {{get_date_time_display(r["finish-time"])}} {{r["finish-town"]}} {{r["finish-city"]}} {{r["finish-country"]}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_duration_display(r["avg-pace"])}} {{get_duration_display(r["max-pace"])}} {{get_number_display(r["min-elevation"],0)}} {{get_number_display(r["max-elevation"],0)}} {{get_number_display(r["elevation-gain"],0)}} {{get_percent_display(r["avg-gradient"],2)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["max-heart-rate"],0)}} {{get_number_display(r["avg-temp"],1)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_gear_display(r.shoe)}} {{r["device-name"]}} {{get_boolean_display(r["is-commute"])}} {{get_boolean_display(r["is-on-trainer"])}} {{get_boolean_display(r["is-manual"])}} {{get_boolean_display(r["is-flagged"])}}
# id Name Type Description Start Time Start Town Start City Start Country Finish Time Finish Town Finish City Finish Country Distance Elapsed Time Moving Time Avg Speed Max Speed Min Elevation Max Elevation Elevation Gain Avg Gradient Avg Heart Rate Max Heart Rate Avg Temp Calories Suffer Score Device Manual Flagged
{{$index+1}} {{r.id}} {{r.athlete.name}} Ski {{get_desc_display(r.description)}} {{get_date_time_display(r["start-time"])}} {{r["start-town"]}} {{r["start-city"]}} {{r["start-country"]}} {{get_date_time_display(r["finish-time"])}} {{r["finish-town"]}} {{r["finish-city"]}} {{r["finish-country"]}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r["avg-speed"],2)}} {{get_number_display(r["max-speed"],2)}} {{get_number_display(r["min-elevation"],0)}} {{get_number_display(r["max-elevation"],0)}} {{get_number_display(r["elevation-gain"],0)}} {{get_percent_display(r["avg-gradient"],2)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["max-heart-rate"],0)}} {{get_number_display(r["avg-temp"],1)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_gear_display(r.bike)}} {{r["device-name"]}} {{get_boolean_display(r["is-manual"])}} {{get_boolean_display(r["is-flagged"])}}
# id Name Type Description Start Time Finish Time Distance Elapsed Time Moving Time Avg Speed Max Speed Avg Heart Rate Max Heart Rate Avg Temp Calories Suffer Score Device Manual Flagged
{{$index+1}} {{r.id}} {{r.athlete.name}} Swim {{get_desc_display(r.description)}} {{get_date_time_display(r["start-time"])}} {{get_date_time_display(r["finish-time"])}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r["avg-speed"],2)}} {{get_number_display(r["max-speed"],2)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["max-heart-rate"],0)}} {{get_number_display(r["avg-temp"],1)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{r["device-name"]}} {{get_boolean_display(r["is-manual"])}} {{get_boolean_display(r["is-flagged"])}}
# id Name Type On Trainer Description Start Time Finish Time Elapsed Time Moving Time Avg Heart Rate Max Heart Rate Avg Temp Calories Suffer Score Device On Trainer Manual Flagged
{{$index+1}} {{r.id}} {{r.athlete.name}} Workout {{get_boolean_display(r["is-on-trainer"])}} {{get_desc_display(r.description)}} {{get_date_time_display(r["start-time"])}} {{get_date_time_display(r["finish-time"])}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["max-heart-rate"],0)}} {{get_number_display(r["avg-temp"],1)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{r["device-name"]}} {{get_boolean_display(r["is-on-trainer"])}} {{get_boolean_display(r["is-manual"])}} {{get_boolean_display(r["is-flagged"])}}
# Name Type Description Days Active Days Activities Distance Elapsed Time Moving Time Elevation Gain Avg Gradient Calories Suffer Score Avg Heart Rate Avg Distance Avg Elapsed Time Avg Moving Time Avg Elevation Gain Avg Calories Avg Suffer Score Avg Daily Distance Avg Daily Elapsed Time Avg Daily Moving Time Avg Daily Calories Avg Daily Suffer Score
{{$index+1}} {{r.athlete.name}} All {{get_period_display(r.period)}} {{get_number_display(r["days"],0)}} {{get_number_display(r["activity-days"],0)}} {{get_number_display(r.count,0)}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r["elevation-gain"],0)}} {{get_percent_display(r["avg-gradient"],2)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["distance-per-activity"],2)}} {{get_duration_display(r["elapsed-time-per-activity"])}} {{get_duration_display(r["moving-time-per-activity"])}} {{get_number_display(r["elevation-gain-per-activity"],0)}} {{get_number_display(r["calories-per-activity"],0)}} {{get_number_display(r["suffer-score-per-activity"],0)}} {{get_number_display(r["distance-per-day"],2)}} {{get_duration_display(r["elapsed-time-per-day"])}} {{get_duration_display(r["moving-time-per-day"])}} {{get_number_display(r["calories-per-day"],0)}} {{get_number_display(r["suffer-score-per-day"],0)}}
# Name Type Description Days Run Days Runs Distance Elapsed Time Moving Time Elevation Gain Avg Gradient Calories Suffer Score Avg Pace Avg Cadence Avg Heart Rate Avg Distance Avg Elapsed Time Avg Moving Time Avg Elevation Gain Avg Calories Avg Suffer Score Avg Daily Distance Avg Daily Elapsed Time Avg Daily Moving Time Avg Daily Calories Avg Daily Suffer Score
{{$index+1}} {{r.athlete.name}} Run {{get_period_display(r.period)}} {{get_number_display(r["days"],0)}} {{get_number_display(r["activity-days"],0)}} {{get_number_display(r.count,0)}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r["elevation-gain"],0)}} {{get_percent_display(r["avg-gradient"],2)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_duration_display(r["avg-pace"])}} {{get_number_display(r["avg-cadence"],0)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["distance-per-activity"],2)}} {{get_duration_display(r["elapsed-time-per-activity"])}} {{get_duration_display(r["moving-time-per-activity"])}} {{get_number_display(r["elevation-gain-per-activity"],0)}} {{get_number_display(r["calories-per-activity"],0)}} {{get_number_display(r["suffer-score-per-activity"],0)}} {{get_number_display(r["distance-per-day"],2)}} {{get_duration_display(r["elapsed-time-per-day"])}} {{get_duration_display(r["moving-time-per-day"])}} {{get_number_display(r["calories-per-day"],0)}} {{get_number_display(r["suffer-score-per-day"],0)}}
# Name Type Description Days Ride Days Rides Distance Elapsed Time Moving Time Elevation Gain Avg Gradient Calories Suffer Score Kilojoules Avg Speed Avg Cadence Avg Heart Rate Avg Distance Avg Elapsed Time Avg Moving Time Avg Elevation Gain Avg Calories Avg Suffer Score Avg Avg Watts Avg Weighted Avg Watts Avg Daily Distance Avg Daily Elapsed Time Avg Daily Moving Time Avg Daily Calories Avg Daily Suffer Score
{{$index+1}} {{r.athlete.name}} Ride {{get_period_display(r.period)}} {{get_number_display(r["days"],0)}} {{get_number_display(r["activity-days"],0)}} {{get_number_display(r.count,0)}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r["elevation-gain"],0)}} {{get_percent_display(r["avg-gradient"],2)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_number_display(r.kilojoules,0)}} {{get_number_display(r["avg-speed"],2)}} {{get_number_display(r["avg-cadence"],0)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["distance-per-activity"],2)}} {{get_duration_display(r["elapsed-time-per-activity"])}} {{get_duration_display(r["moving-time-per-activity"])}} {{get_number_display(r["elevation-gain-per-activity"],0)}} {{get_number_display(r["calories-per-activity"],0)}} {{get_number_display(r["suffer-score-per-activity"],0)}} {{get_number_display(r["avg-watts-per-activity"],0)}} {{get_number_display(r["weighted-avg-watts-per-activity"],0)}} {{get_number_display(r["distance-per-day"],2)}} {{get_duration_display(r["elapsed-time-per-day"])}} {{get_duration_display(r["moving-time-per-day"])}} {{get_number_display(r["calories-per-day"],0)}} {{get_number_display(r["suffer-score-per-day"],0)}}
# Name Type Description Days Walk Days Walks Distance Elapsed Time Moving Time Elevation Gain Avg Gradient Calories Suffer Score Avg Pace Avg Heart Rate Avg Distance Avg Elapsed Time Avg Moving Time Avg Elevation Gain Avg Calories Avg Suffer Score Avg Daily Distance Avg Daily Elapsed Time Avg Daily Moving Time Avg Daily Calories Avg Daily Suffer Score
{{$index+1}} {{r.athlete.name}} Walk {{get_period_display(r.period)}} {{get_number_display(r["days"],0)}} {{get_number_display(r["activity-days"],0)}} {{get_number_display(r.count,0)}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r["elevation-gain"],0)}} {{get_percent_display(r["avg-gradient"],2)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_duration_display(r["avg-pace"])}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["distance-per-activity"],2)}} {{get_duration_display(r["elapsed-time-per-activity"])}} {{get_duration_display(r["moving-time-per-activity"])}} {{get_number_display(r["elevation-gain-per-activity"],0)}} {{get_number_display(r["calories-per-activity"],0)}} {{get_number_display(r["suffer-score-per-activity"],0)}} {{get_number_display(r["distance-per-day"],2)}} {{get_duration_display(r["elapsed-time-per-day"])}} {{get_duration_display(r["moving-time-per-day"])}} {{get_number_display(r["calories-per-day"],0)}} {{get_number_display(r["suffer-score-per-day"],0)}}
# Name Type Description Days Ski Days Skis Distance Elapsed Time Moving Time Elevation Gain Avg Gradient Calories Suffer Score Avg Speed Avg Heart Rate Avg Distance Avg Elapsed Time Avg Moving Time Avg Elevation Gain Avg Calories Avg Suffer Score Avg Daily Distance Avg Daily Elapsed Time Avg Daily Moving Time Avg Daily Calories Avg Daily Suffer Score
{{$index+1}} {{r.athlete.name}} Ski {{get_period_display(r.period)}} {{get_number_display(r["days"],0)}} {{get_number_display(r["activity-days"],0)}} {{get_number_display(r.count,0)}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r["elevation-gain"],0)}} {{get_percent_display(r["avg-gradient"],2)}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_number_display(r["avg-speed"],2)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["distance-per-activity"],2)}} {{get_duration_display(r["elapsed-time-per-activity"])}} {{get_duration_display(r["moving-time-per-activity"])}} {{get_number_display(r["elevation-gain-per-activity"],0)}} {{get_number_display(r["calories-per-activity"],0)}} {{get_number_display(r["suffer-score-per-activity"],0)}} {{get_number_display(r["distance-per-day"],2)}} {{get_duration_display(r["elapsed-time-per-day"])}} {{get_duration_display(r["moving-time-per-day"])}} {{get_number_display(r["calories-per-day"],0)}} {{get_number_display(r["suffer-score-per-day"],0)}}
# Name Type Description Days Swim Days Swims Distance Elapsed Time Moving Time Calories Suffer Score Avg Speed Avg Heart Rate Avg Distance Avg Elapsed Time Avg Moving Time Avg Calories Avg Suffer Score Avg Daily Distance Avg Daily Elapsed Time Avg Daily Moving Time Avg Daily Calories Avg Daily Suffer Score
{{$index+1}} {{r.athlete.name}} Swim {{get_period_display(r.period)}} {{get_number_display(r["days"],0)}} {{get_number_display(r["activity-days"],0)}} {{get_number_display(r.count,0)}} {{get_number_display(r.distance,2)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_number_display(r["avg-speed"],2)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_number_display(r["distance-per-activity"],2)}} {{get_duration_display(r["elapsed-time-per-activity"])}} {{get_duration_display(r["moving-time-per-activity"])}} {{get_number_display(r["calories-per-activity"],0)}} {{get_number_display(r["suffer-score-per-activity"],0)}} {{get_number_display(r["distance-per-day"],2)}} {{get_duration_display(r["elapsed-time-per-day"])}} {{get_duration_display(r["moving-time-per-day"])}} {{get_number_display(r["calories-per-day"],0)}} {{get_number_display(r["suffer-score-per-day"],0)}}
# Name Type Description Days Workout Days Workouts Elapsed Time Moving Time Calories Suffer Score Avg Heart Rate Avg Elapsed Time Avg Moving Time Avg Calories Avg Suffer Score Avg Daily Elapsed Time Avg Daily Moving Time Avg Daily Calories Avg Daily Suffer Score
{{$index+1}} {{r.athlete.name}} Workout {{get_period_display(r.period)}} {{get_number_display(r["days"],0)}} {{get_number_display(r["activity-days"],0)}} {{get_number_display(r.count,0)}} {{get_duration_display(r["elapsed-time"])}} {{get_duration_display(r["moving-time"])}} {{get_number_display(r.calories,0)}} {{get_number_display(r["suffer-score"],0)}} {{get_number_display(r["avg-heart-rate"],0)}} {{get_duration_display(r["elapsed-time-per-activity"])}} {{get_duration_display(r["moving-time-per-activity"])}} {{get_number_display(r["calories-per-activity"],0)}} {{get_number_display(r["suffer-score-per-activity"],0)}} {{get_duration_display(r["elapsed-time-per-day"])}} {{get_duration_display(r["moving-time-per-day"])}} {{get_number_display(r["calories-per-day"],0)}} {{get_number_display(r["suffer-score-per-day"],0)}}