Skip to main content

For clarity this is on the https://www.strava.com/api/v3/activities/##########/photos endpoint


Hi everyone - I'm still experiencing this issue and wanted to provide more technical details to see if anyone else is encountering the same problem or has insights.
Issue Summary:
When making requests to the /api/v3/activities/{activity_id}/photos endpoint, instead of receiving actual photo URLs, I'm consistently getting placeholder image URLs from CloudFront.
Technical Details:
API Call Example:

text

Apply

GET https://www.strava.com/api/v3/activities/vACTIVITY_ID]/photos

Authorization: Bearer  ACCESS_TOKEN]

 

Expected Response:

json

Apply

p

  {

    "unique_id": "abc123...",

    "urls": {

      "0": "https://dgtzuqphqg23d.cloudfront.net/dactual-photo-path].jpg",

      "100": "https://dgtzuqphqg23d.cloudfront.net/tactual-photo-path]_100.jpg",

      "600": "https://dgtzuqphqg23d.cloudfront.net/0actual-photo-path]_600.jpg"

    },

    "caption": "Photo caption here",

    "type": "InstagramPhoto",

    "uploaded_at": "2024-12-05T10:30:00Z",

    "created_at": "2024-12-05T10:30:00Z",

    "location": Âlat, lng]

  }

]

 

Actual Response I'm Getting:

json

Apply

t

  {

    "unique_id": "abc123...",

    "urls": {

      "0": "https://d3nn82uaxijpm6.cloudfront.net/assets/media/placeholder-photo@4x-6c5d2aaeadca1292be72943c04ea6defe7dcd610da7dc87a1ccaad30e134b2d6.png",

      "100": "https://d3nn82uaxijpm6.cloudfront.net/assets/media/placeholder-photo@4x-6c5d2aaeadca1292be72943c04ea6defe7dcd610da7dc87a1ccaad30e134b2d6.png",

      "600": "https://d3nn82uaxijpm6.cloudfront.net/assets/media/placeholder-photo@4x-6c5d2aaeadca1292be72943c04ea6defe7dcd610da7dc87a1ccaad30e134b2d6.png"

    },

    "caption": "Photo caption here", 

    "type": "InstagramPhoto",

    "uploaded_at": "2024-12-05T10:30:00Z",

    "created_at": "2024-12-05T10:30:00Z",

    "location": mlat, lng]

  }

]

 

Key Observations:
  1. Photo metadata is correct - captions, timestamps, location data all appear accurate
  1. Only the URLs are affected - all photo URLs point to the same placeholder image
  1. Affects all photo sizes - 0, 100, 600px versions all return placeholder
  1. Different CDN domain - Placeholder uses d3nn82uaxijpm6.cloudfront.net vs expected dgtzuqphqg23d.cloudfront.net
  1. Server-to-server requests only - This appears to affect API requests, not web browser access
Testing Details:
  • Scope: Read permissions only (read,activity:read)
  • Request frequency: Well within rate limits (< 50 requests/15min)
  • Geographic spread: Testing from multiple server locations
  • Time range: Issue persisted across 2+ weeks of testing
  • Activity types: Affects photos on runs, rides, and other activity types
Hypotheses:
  1. CDN Migration Issue: Strava may be migrating photo storage and the API is pointing to outdated/placeholder URLs during the transition
  1. Server-vs-Browser Treatment: CDN might be configured to serve placeholders to server requests while allowing browser access
  1. Rate Limiting Side Effect: Could be a soft rate limiting mechanism that serves placeholders instead of blocking requests
  1. Photo Processing Pipeline: Photos might be temporarily replaced with placeholders during processing/optimization
  1. Regional CDN Issues: Specific CloudFront edge locations may be misconfigured
Questions for the Community:
  1. Is anyone else experiencing this? Particularly developers making server-to-server API calls?
  1. Timeline: When did this start? I first noticed it around hDATE]
  1. Workarounds: Has anyone found alternative approaches to access activity photos?
  1. Strava Response: Any official communication about this issue?
Impact:
This is affecting applications that rely on activity photos for features like photo-based challenges, activity verification, or social sharing functionality.
Any insights, similar experiences, or workarounds would be greatly appreciated!
@Strava Team - Is this a known issue with an expected resolution timeframe?

Hello ​@Elliott ,

I see your participation on a previous API issue.  Is this an active issue?  I submitted a more detailed reply but am still waiting for it to be approved.  I appreciate any feedback on this topic.  Thank you!


Confirming this issue is affecting production applications. The /api/v3/activities/{id}/photos endpoint consistently returns placeholder URLs instead of actual photo CloudFront URLs.
Sample API Response:

json

Apply

{

  "urls": {

    "1800": "https://d3nn82uaxijpm6.cloudfront.net/assets/media/placeholder-photo@4x-lhash].png"

  }

}

 

Workaround implemented: Modified code to detect placeholder URLs and fall back to primary photo from /api/v3/activities/{id} endpoint. Built automatic retry logic to recover photos when this issue is resolved.
Impact: Photo features degraded until fixed. Applications should implement placeholder detection and recovery mechanisms.

Is anyone here able to confirm this same issue occurs or is this an issue only I am experiencing?  I appreciate any confirmation or feedback at all!

 


The query parameter was the issue.  Found in this thread.  Thanks ​@Swaz !
 

 


Reply