it only returns userId, lastLocation and userPresenceType.
Code snippet:
local data = HttpService:JSONEncode({
["userIds"] = {userId}
})
local success, response = pcall(function()
return HttpService:PostAsync("https://presence.roproxy.com/v1/presence/users", data)
end)
if success then
response = HTTP:JSONDecode(response)
print(response)
end
you should fork one of the available roblox proxies and host it yourself because roproxy will probably rate limit if you have a few players doing it as the same time
im pretty sure roproxy just returns whatever roblox returns with no filtering
edit: i checked from outside roblox and i got the same thing, so maybe the documentation is wrong or you have to add something to the request
It might be only doing this because the other values it should be returning are just null and those are the only values that actually have data associated with them. Pretty sure this is intended by Roblox because if you were able to view what a user was currently playing (assuming they have their visibility settings to friends only) with the API, it would be a very big privacy concern.
If you go to the API documentation on Swagger and put a random user id you are not friended with and execute it, it would return the values you have said and everything else would be null.
The only thing I could think of is that the server (PostAsync only works on the server I believe) has no cookie to send over to Roblox so it just provides the bare bones information it can give you.
Testing this with the Swagger API, I used it logged into this account and another on an incognito window with no Roblox account logged in. When I executed the API call with an account logged in with visibility set to everyone, it provided me with all the information. Though with the incognito window, it came back with the bare bones information. Looking into this with the chrome developer tools, I found out the key difference when sending in an API call is the cookie information being sent with it.