get-activity-streams
Retrieve detailed time-series data from Strava activities for analyzing workout metrics, visualizing routes, and performing activity analysis with flexible resolution and format options.
Instructions
Retrieves detailed time-series data streams from a Strava activity. Perfect for analyzing workout metrics, visualizing routes, or performing detailed activity analysis.
Key Features:
Multiple Data Types: Access various metrics like heart rate, power, speed, GPS coordinates, etc.
Flexible Resolution: Choose data density from low (~100 points) to high (~10000 points)
Smart Pagination: Get data in manageable chunks optimized for LLM context limits
Rich Statistics: Includes min/max/avg for numeric streams
Dual Format Support: Compact (LLM-optimized) or verbose (human-readable)
Intelligent Downsampling: Automatically reduce large datasets while preserving key features
Format Options:
compact (default): Raw arrays, minified JSON, ~70-80% smaller payloads, ideal for LLM processing
verbose: Human-readable objects with formatted values, backward compatible with legacy format
Common Use Cases:
Analyzing workout intensity through heart rate zones
Calculating power metrics for cycling activities
Visualizing route data using GPS coordinates
Analyzing pace and elevation changes
Detailed segment analysis
Output Format:
Metadata: Activity overview, available streams, data points, units, format info
Statistics: Summary stats for each stream type (max/min/avg where applicable)
Data: Time-series data in compact arrays or verbose objects (based on format parameter)
Notes:
Requires activity:read scope
Not all streams are available for all activities
Older activities might have limited data
Large activities are automatically chunked to ~50KB per message
Use max_points parameter to downsample very large activities intelligently
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The Strava activity identifier to fetch streams for. This can be obtained from activity URLs or the get-activities tool. | |
| types | No | Array of stream types to fetch. Available types: - time: Time in seconds from start - distance: Distance in meters from start - latlng: Array of [latitude, longitude] pairs - altitude: Elevation in meters - velocity_smooth: Smoothed speed in meters/second - heartrate: Heart rate in beats per minute - cadence: Cadence in revolutions per minute - watts: Power output in watts - temp: Temperature in Celsius - moving: Boolean indicating if moving - grade_smooth: Road grade as percentage | |
| resolution | No | Optional data resolution. Affects number of data points returned: - low: ~100 points - medium: ~1000 points - high: ~10000 points Default varies based on activity length. | |
| series_type | No | Optional base series type for the streams: - time: Data points are indexed by time (seconds from start) - distance: Data points are indexed by distance (meters from start) Useful for comparing different activities or analyzing specific segments. | distance |
| page | No | Optional page number for paginated results. Use with points_per_page to retrieve specific data ranges. Example: page=2 with points_per_page=100 gets points 101-200. | |
| points_per_page | No | Optional number of data points per page. Special values: - Positive number: Returns that many points per page - -1: Returns ALL data points split into multiple messages (~1000 points each) Use -1 when you need the complete activity data for analysis. | |
| format | No | Output format: - compact: Raw arrays, minified JSON (~70-80% smaller, LLM-friendly) - verbose: Human-readable objects with formatted values (backward compatible) | compact |
| max_points | No | Maximum number of data points to return. If activity exceeds this, data will be intelligently downsampled while preserving peaks and valleys. Useful for very large activities. |