How to get Player Headshot URL

In the past, Roblox had a way to do this using this URL.

"https://www.roblox.com/headshot-thumbnail/image?userId="..player.UserId.."&width=420&height=420&format=png"

This was commonly used for Webhooks.

Recently, this has been removed and no longer works.
Using GetUserThumbnailAsync does not work as the link it returns is not a URL. (rbxthumb://)

Is there any new way to do this or not anymore?
Thanks.

1 Like

You’d use the thumbnails endpoint but I’m not sure whether or not you can do it without a web request.

Specifically:
/v1/users/avatar for fullbody,
/v1/users/avatar-headshot for headshot, and
/v1/users/avatar-bust for bust.

https://thumbnails.roblox.com/docs/index.html

1 Like

I’ve gone and figured out how this works as I’m not familiar with this kind of stuff and using :GetAsync I tried to run it I get this error:
HttpService is not allowed to access ROBLOX resources
Is there something I did wrong or is this intentional? Is there another way to get the headshot thumbnail?

It’s intentional, you need to use a proxy to access Roblox APIs. I’m not too sure whether or not there’s a standard URL that you can input that returns the proper image.

The URL I posted at first used to work as I said and you only had to put in the User ID so it’s unfortunate that’s gone.
I’ve heard of Proxies before but again this is stuff I’ve never touched before. How do I use it?

A proxy is basically like a middleman server. You make a request to the proxy, then the proxy makes a request to Roblox’s API, then returns it back to the game server.

RoProxy is a valid public proxy but I’ve heard it caused people to get banned so it might be better to host your own. There are a few tutorials that teach you how to set up a proxy, personally I use proxy service personally but there are more than just that one available. I think heroku is disallowing proxy servers as well so not 100% sure but this tutorial tells you everything: