[ Change ] New profile photo URLs

Summary

We are migrating profile photo hosting to our Content Delivery Network (CDN) for improved performance and security. This change does not affect any API endpoints or behaviors — only the format of the profile photo URLs returned by endpoints such as GET /users/{user_gid}.

The images themselves, including formats and available resolutions, remain unchanged.

Current URL example

https://s3.us-east-1.amazonaws.com/asana-user-private-us-east-1/assets/1234567890123456/profile_photos/9876543210123456/1234567890abcdef1234567890abcdef1_128x128.png

New URL example

https://asanausercontent.com/us1/1234567890123456/profile_photos/9876543210123456/1234567890abcdef1234567890abcdef1_128x128.png?e=1748357483&v=0&t=cXNKUkpEN2ZDQ1ZUSEliMHk5RnNtZG5WYVhKbXktaWU2ZzFZYUVLWWJRU3g2Y3l3MVg0NTNwNHZmd3kx

Key changes:

  • The domain is now asanausercontent.com
  • URLs are signed with an expiration timestamp and query parameters

We plan to begin a gradual rollout of the new URLs starting July 14, 2025.

Note: In the future, we will also serve attachments from this domain. That change will be less disruptive, as attachment URLs are already signed and time-limited. Additionally, we do not recommend relying on the exact format or domain name of profile photo URLs, as these details may change again in the future. Always retrieve the latest URL dynamically via the API to ensure compatibility.

Who is affected

This change affects API consumers who persist and reuse the profile photo URLs returned by the API. Existing, previously resolved URLs will stop working after the transition.

Clients that fetch the profile photo URL from the API on-demand when displaying the photo are not affected.

Timeline

Timeline

  • August 5, 2025: Gradual rollout of new URLs begins
  • September 1, 2025: Old URLs will stop working and return HTTP 403 Forbidden

Migration steps

No API changes are required. However, if your application persists or caches profile photo URLs, you must update your implementation to always fetch the current URL from the API before displaying a profile photo. We recommend against persisting these URLs, as they are now signed and expire after a set period.

You might also need to add the new domain, asanausercontent.com, to your DNS filtering or firewall domain allowlist if you have such measures in place. This is the first time we serve content from this domain.

Why we’re making this change

  • Improved performance: CDN delivery reduces latency for faster image loading.
  • Enhanced security and privacy compliance: Signed URLs align with our security standards.
  • Domain consolidation: Simplifies and standardizes the domains serving Asana content.

The tradeoff of this change is that signed URLs cannot be cached indefinitely.

Support

We believe this update will deliver meaningful performance and security improvements. Thank you for your understanding as we roll it out.

If you encounter any issues or have questions, please reach out—we value your feedback. You can also subscribe to our changelog updates for the latest information.

1 Like

@Andrew-asana,

I appreciate the change.

But I’d like to test it for my app, yet:

  1. I can’t tell from your post when the “gradual” rollout would allow me to do so, and
  2. You’re not giving much warning or much time for this, as you have in the past.

Is there any way to make this easier?

Thanks,

Larry

Hey @lpb, thanks for the feedback! We’ve discussed this with our eng team, and the timelines have since been updated to accommodate the migration. I’ve added the new dates to the original post.

2 Likes

That’s great, thanks so much for the quick response, @Andrew-asana.

I’ll check a few days after Aug 5 when the gradual rollout begins, or whenever you post again here should you know when I could expect to to see it.