Streams
Streams is the Strava term for the raw data associated with an activity. All streams for a given activity or segment effort will be the same length and the values at a given index correspond to the same time.
Object attributes
| type: | string |
| data: |
array array of stream values |
| series_type: |
string series type used for down sampling, will be present even if not used |
| original_size: |
integer complete stream length |
| resolution: |
string ‘low’, ‘medium’ or ‘high’ |
Stream types
Streams are available in 11 different types. If the stream is not available for a particular activity it will be left out of the request results.
| time: | integer seconds |
| latlng: | floats [latitude, longitude] |
| distance: | float meters |
| altitude: | float meters |
| velocity_smooth: | float meters per second |
| heartrate: | integer BPM |
| cadence: | integer RPM |
| watts: | integer watts |
| temp: | integer degrees Celsius |
| moving: | boolean |
| grade_smooth: | float percent |
Example stream
{
"type": "latlng",
"data": [
[ 38.603734, -122.864112 ],
[ 38.608798, -122.867714 ],
[ 38.604691, -122.88178 ],
[ 38.611249, -122.890977 ],
... omitted for brevity ...
[ 38.634357, -122.874144 ],
[ 38.62268, -122.872756 ],
[ 38.611205, -122.870848 ],
[ 38.603579, -122.863891 ]
],
"series_type": "distance",
"original_size": 512,
"resolution": "low"
}
Streams represent the raw data of the uploaded file. External applications may only access this information for activities owned by the authenticated athlete.
While there are a large number of stream types, they may not exist for all activities. If a stream type does not exist for the activity, it will be ignored.
All streams for a given activity will be the same length and the values at a given index correspond to the same time. For example, the time from the time stream can be correlated to the lat/lng or watts streams.
Privacy Zones Stream requests made using a public access_token will be cropped with the
user’s privacy zones, regardless if the requesting athlete owns the requested activity.
To fetch the complete stream data use an access_token with view_private permissions.
Parameters
| id: | integer required |
| types: |
list of strings single stream type or comma-separated list of types, if the activity does not have that stream it will not be included in the response |
| resolution: |
string optional low (100), medium (1000) or high (10000), default is all, indicates desired number of data points, streams will only be down sampled |
| series_type: |
string relevant only if using resolution either ‘time’ or ‘distance’, default is ‘distance’, used to index the streams if the stream is being reduced |
Returns an array of unordered stream objects.
Definition
GET https://www.strava.com/api/v3/activities/:id/streams/:types
Example request
$ curl -G \
https://www.strava.com/api/v3/activities/123/streams/latlng \
-H "Authorization: Bearer 83ebeabdec09f6670863766f792ead24d61fe3f9" \
-d resolution=low
Example response
[
{
"type": "latlng",
"data": [
[ 38.603734, -122.864112 ],
[ 38.608798, -122.867714 ],
... omitted for brevity ...
[ 38.611205, -122.870848 ],
[ 38.603579, -122.863891 ]
],
"series_type": "distance",
"original_size": 512,
"resolution": "low"
},
{
"type": "distance",
"data": [
0.0,
1305.8,
... omitted for brevity ...
128136.6,
129444.1
],
"series_type": "distance",
"original_size": 512,
"resolution": "low"
}
]
A segment effort represents an attempt on a segment. This resource returns a subset of the activity streams that correspond to that effort.
All streams for a given segment effort will be the same length and the values at a given index correspond to the same time.
This resource is available for segment efforts by the authenticated athlete.
Parameters
| id: | integer required |
| types: |
list of strings single stream type or comma-separated list of types, if the activity does not have that stream it will not be included in the response |
| resolution: |
string optional low (100), medium (1000) or high (10000), default is all, indicates desired number of data points, streams will only be down sampled |
| series_type: |
string relevant only if using resolution either ‘time’ or ‘distance’, default is ‘distance’, used to index the streams if the stream is being reduced |
Returns an array of unordered stream objects.
Definition
GET https://www.strava.com/api/v3/segment_efforts/:id/streams/:types
Example request
$ curl -G \
https://www.strava.com/api/v3/segment_efforts/123/streams/latlng \
-H "Authorization: Bearer 83ebeabdec09f6670863766f792ead24d61fe3f9" \
-d resolution=low
Only distance, altitude and latlng stream types are available.
Parameters
| id: | integer required |
| types: |
list of strings single stream type or comma-separated list of types, if the activity does not have that stream it will not be included in the response |
| resolution: |
string optional low (100), medium (1000) or high (10000), default is all, indicates desired number of data points, streams will only be down sampled |
| series_type: |
string relevant only if using resolution either ‘time’ or ‘distance’, default is ‘distance’, used to index the streams if the stream is being reduced |
Returns an array of unordered stream objects.
Definition
GET https://www.strava.com/api/v3/segments/:id/streams/:types
Example request
$ curl https://www.strava.com/api/v3/segments/123/streams/latlng \
-H "Authorization: Bearer 83ebeabdec09f6670863766f792ead24d61fe3f9"
distance, altitude and latlng stream types are always returned.
Parameters
| id: | integer required |
Returns an array of unordered stream objects.
Definition
GET https://www.strava.com/api/v3/routes/:id/streams
Example request
$ curl https://www.strava.com/api/v3/routes/14296826/streams \
-H "Authorization: Bearer 83ebeabdec09f6670863766f792ead24d61fe3f9"
Example response
[
{
"type": "latlng",
"data": [
[43.96240499998943, 11.114369999870984],
[43.96241602169922, 11.114389594048717],
... omitted for brevity ...
[43.96246041052659, 11.114477067306458],
[43.96250000005456, 11.11457999984086]
]
},
{
"type": "distance",
"data": [
0.0,
9.222209323078733
... omitted for brevity ...
32353.339870102107,
32370.98213305391
]
},
{
"type": "altitude",
"data": [
97.73514151793162,
97.42,
... omitted for brevity ...
115.21365665991632,
115.0
]
}
]
