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"
}

 

Retrieve activity streams

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"
  }
]

 

Retrieve effort streams

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

 

Retrieve segment streams

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"

 

Retrieve route streams

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
    ]
  }
]