Skip to main content

When calling the GET /activities/{id} endpoint, I referred to the sample JSON structure in the Strava API documentation. I noticed this section:

"highlighted_kudosers" : [ {
"destination_url" : "strava://athletes/12345678987654321",
"display_name" : "Marianne V.",
"avatar_url" : "https://dgalywyr863hv.cloudfront.net/pictures/athletes/12345678987654321/12345678987654321/3/medium.jpg",
"show_name" : true
} ]

However, when I made the actual request, I didn't receive any highlighted_kudosers field in the response. What could be the reason for this? I want to display the avatars of these highlighted kudos users. How can I achieve this? Do I need to call additional endpoints to get this information? My question is, since the highlighted_kudosers field exists in the official documentation's sample JSON, why is it completely absent in the actual response? Here is the JSON returned by my actual request:

{"resource_state":3,"athlete":{"id":xxxxxx,"resource_state":1},"name":"night 10KM 3% ","distance":10026.5,"moving_time":1761,"elapsed_time":1761,"total_elevation_gain":0,"type":"Ride","sport_type":"Ride","workout_type":10,"id":xxxxx,"start_date":"2025-05-07T12:44:06Z","start_date_local":"2025-05-07T20:44:06Z","timezone":"(GMT+11:00) Antarctica/Casey","utc_offset":28800.0,"location_city":null,"location_state":null,"location_country":null,"achievement_count":0,"kudos_count":4,"comment_count":0,"athlete_count":1,"photo_count":0,"map":{"id":"xxxxx","polyline":"","resource_state":3,"summary_polyline":""},"trainer":true,"commute":false,"manual":false,"private":false,"visibility":"everyone","flagged":false,"gear_id":"xxxxx","start_latlng":[],"end_latlng":[],"average_speed":5.694,"max_speed":6.08,"average_cadence":72.4,"average_temp":22,"average_watts":151.6,"max_watts":195,"weighted_average_watts":150,"device_watts":true,"kilojoules":266.9,"has_heartrate":true,"average_heartrate":151.2,"max_heartrate":162.0,"heartrate_opt_out":false,"display_hide_heartrate_option":true,"elev_high":0.0,"elev_low":0.0,"upload_id":xxxxxx,"upload_id_str":"x","externaxxxxxxl_id":"xxxxx","from_accepted_tag":false,"pr_count":0,"total_photo_count":0,"has_kudoed":false,"description":"😮 🔗 https://strava.com/clubs/riduck","calories":305.0,"perceived_exertion":null,"prefer_perceived_exertion":false,"segment_efforts":o],"splits_metric":t{"distance":1000.3,"elapsed_time":178,"elevation_difference":0.0,"moving_time":178,"split":1,"average_speed":5.62,"average_grade_adjusted_speed":null,"average_heartrate":141.1123595505618,"pace_zone":0},{"distance":1003.5,"elapsed_time":182,"elevation_difference":0.0,"moving_time":182,"split":2,"average_speed":5.51,"average_grade_adjusted_speed":null,"average_heartrate":149.54945054945054,"pace_zone":0},{"distance":1000.3,"elapsed_time":179,"elevation_difference":0.0,"moving_time":179,"split":3,"average_speed":5.59,"average_grade_adjusted_speed":null,"average_heartrate":155.62011173184356,"pace_zone":0},{"distance":997.9,"elapsed_time":172,"elevation_difference":0.0,"moving_time":172,"split":4,"average_speed":5.8,"average_grade_adjusted_speed":null,"average_heartrate":156.69767441860466,"pace_zone":0},{"distance":998.9,"elapsed_time":174,"elevation_difference":0.0,"moving_time":174,"split":5,"average_speed":5.74,"average_grade_adjusted_speed":null,"average_heartrate":153.05172413793105,"pace_zone":0},{"distance":1001.2,"elapsed_time":177,"elevation_difference":0.0,"moving_time":177,"split":6,"average_speed":5.66,"average_grade_adjusted_speed":null,"average_heartrate":149.93785310734464,"pace_zone":0},{"distance":999.6,"elapsed_time":176,"elevation_difference":0.0,"moving_time":176,"split":7,"average_speed":5.68,"average_grade_adjusted_speed":null,"average_heartrate":149.0909090909091,"pace_zone":0},{"distance":999.5,"elapsed_time":176,"elevation_difference":0.0,"moving_time":176,"split":8,"average_speed":5.68,"average_grade_adjusted_speed":null,"average_heartrate":149.9318181818182,"pace_zone":0},{"distance":999.1,"elapsed_time":173,"elevation_difference":0.0,"moving_time":173,"split":9,"average_speed":5.78,"average_grade_adjusted_speed":null,"average_heartrate":151.0,"pace_zone":0},{"distance":1002.3,"elapsed_time":170,"elevation_difference":0.0,"moving_time":170,"split":10,"average_speed":5.9,"average_grade_adjusted_speed":null,"average_heartrate":156.68235294117648,"pace_zone":0},{"distance":23.9,"elapsed_time":4,"elevation_difference":0.0,"moving_time":4,"split":11,"average_speed":5.98,"average_grade_adjusted_speed":null,"average_heartrate":159.25,"pace_zone":0}],"splits_standard":d{"distance":1613.1,"elapsed_time":289,"elevation_difference":0.0,"moving_time":289,"split":1,"average_speed":5.58,"average_grade_adjusted_speed":null,"average_heartrate":144.08304498269896,"pace_zone":0},{"distance":1610.9,"elapsed_time":289,"elevation_difference":0.0,"moving_time":289,"split":2,"average_speed":5.57,"average_grade_adjusted_speed":null,"average_heartrate":154.2941176470588,"pace_zone":0},{"distance":1605.8,"elapsed_time":277,"elevation_difference":0.0,"moving_time":277,"split":3,"average_speed":5.8,"average_grade_adjusted_speed":null,"average_heartrate":155.23826714801444,"pace_zone":0},{"distance":1611.0,"elapsed_time":284,"elevation_difference":0.0,"moving_time":284,"split":4,"average_speed":5.67,"average_grade_adjusted_speed":null,"average_heartrate":149.65845070422534,"pace_zone":0},{"distance":1606.2,"elapsed_time":283,"elevation_difference":0.0,"moving_time":283,"split":5,"average_speed":5.68,"average_grade_adjusted_speed":null,"average_heartrate":149.73498233215548,"pace_zone":0},{"distance":1610.4,"elapsed_time":276,"elevation_difference":0.0,"moving_time":276,"split":6,"average_speed":5.83,"average_grade_adjusted_speed":null,"average_heartrate":153.46376811594203,"pace_zone":0},{"distance":369.1,"elapsed_time":63,"elevation_difference":0.0,"moving_time":63,"split":7,"average_speed":5.86,"average_grade_adjusted_speed":null,"average_heartrate":156.6984126984127,"pace_zone":0}],"laps":l{"id":xxxxx,"resource_state":2,"name":"Lap 1","activity":{"id":xxxxx,"visibility":"everyone","resource_state":1},"athlete":{"id":xxxx,"resource_state":1},"elapsed_time":1761,"moving_time":1761,"start_date":"2025-05-07T12:44:06Z","start_date_local":"2025-05-07T20:44:06Z","distance":10026.5,"average_speed":5.69,"max_speed":6.08,"lap_index":1,"split":1,"start_index":0,"end_index":1761,"total_elevation_gain":0,"average_cadence":72.4,"device_watts":true,"average_watts":151.6,"average_heartrate":151.2,"max_heartrate":162.0}],"gear":{"id":"xxxxx","primary":false,"name":"Pinarello Gan","nickname":"Pinarello Gan","resource_state":2,"retired":false,"distance":26377034,"converted_distance":26377.0},"photos":{"primary":null,"count":0},"stats_visibility":l{"type":"heart_rate","visibility":"everyone"},{"type":"pace","visibility":"everyone"},{"type":"power","visibility":"everyone"},{"type":"speed","visibility":"everyone"},{"type":"calories","visibility":"everyone"}],"hide_from_home":false,"device_name":"Garmin Edge 530","embed_token":"xxxxxxxxx","available_zones":o]}

 

Ciao ​@sheva. Have you tried to get in touch with support opening a ticket or maybe developers?


My guess is that the documentation is out of date or inaccurate. There are a few other instances of this where either the fields in the docs are incorrect, or missing. If you look at the field listing for DetailedActivity (https://developers.strava.com/docs/reference/#api-models-DetailedActivity) which is what the getActivity call returns, highlighted_kudosers is not listed. Conversely, fields like ‘suffer_score’ aren’t listed in DetailedActivity but show up in the data returned.

You can try e-mailing developers@strava to ask.


Ciao ​@sheva. Have you tried to get in touch with support opening a ticket or maybe developers?

I haven't tried to contact the developers yet. Could you please tell me how to raise a ticket or get in touch with the developers?


My guess is that the documentation is out of date or inaccurate. There are a few other instances of this where either the fields in the docs are incorrect, or missing. If you look at the field listing for DetailedActivity (https://developers.strava.com/docs/reference/#api-models-DetailedActivity) which is what the getActivity call returns, highlighted_kudosers is not listed. Conversely, fields like ‘suffer_score’ aren’t listed in DetailedActivity but show up in the data returned.

You can try e-mailing developers@strava to ask.

Thank you for your reply. I will try to reach out to the Strava developers.


You could use the endpoint explained in https://developers.strava.com/docs/reference/#api-Activities-getKudoersByActivityId but you will only get abbreviated names.


You could use the endpoint explained in https://developers.strava.com/docs/reference/#api-Activities-getKudoersByActivityId but you will only get abbreviated names.

Thank you for your reply, but I would like to obtain the avatar URLs of these likers to highlight them prominently. Are there any solutions for this? I really need this feature.


This information has not been available for many years now.


This information has not been available for many years now.

Although it is regrettable, I sincerely appreciate your answer.


Reply