Skip to main content

Hello,


GET `activity` from the API includes `segment_efforts` array containing incorrect id values. They are all missing at least the last two digits.


I just started using this recently, and it seems like this is something people would have noticed already. Is it a new change?


example:


url of segment effort on Strava.com: 


https://www.strava.com/activities/{activityId}/segments/XXXXXXXXXXXXXXXX336


what gets returned in API response:


{..., segment_efforts: [{id: XXXXXXXXXXXXXXXX300, ... }], ... }


note the last three digits in the URL: "336", and in the API response: "300"


This is for an identical segment effort, and can be repeated for every segment effort I tested


Calling API for GET segment_effort with id XXXXXXXXXXXXXXXX300 returns 404!


---


also calling GET segment_effort API with the correct id returns a result with the incorrect id.


---


DetailedSegmentEffort id says type is `long`


https://developers.strava.com/docs/reference/#api-models-DetailedSegmentEffort


Maybe this type does not have enough capacity to represent the full id as a number. Maybe it should return a string?


Found while using JavaScript API



 

That's not a problem with the Strava API, but with the JavaScript API you use. It seems to have problems with BigIntegers.


Poked around some more, and it's definitely a JS issue. For anyone else hitting this limitation, you can try using the json-bigint npm package hooked into axios.


Reply