I was trying to see if i can get all the gamepasses a user owns by using the inventory API but it didn’t seem to work. Anyone know how i can get a list of all the gamepasses a user owns using roblox apis?
To send a request to roblox’s api, you will have to use a proxy. Either you can host your own proxy or use a free proxy that is specifically for roblox. (forgot the name).
The inventory proxy has a limit of 100 items each and you need to specify what assets types you would like. (Doesn’t allow badges and gamepasses as BenMactavsin mentioned.)
What would be the use case for this? (There are probably better methods for what you are trying to achieve.)

The web API endpoint you sent doesn’t support gamepasses though.
Oh I didn’t notice that, I’m blind.
You can’t use api.roblox.com’s inventory endpoint to send get requests and get gamepasses and badges that the user owns.
You can get the gamepasses owned by the player in your game using MarketPlaceService though.
No, I think there has to be a way. Trade hangout is capable of getting hats from a player’s inventory, so it should be accessible in other ways too. They can also get gears, and some games are able to get players clothing.

Check this screenshot out mentioned by @BenMactavsin
Assets you mentioned can be fetched using the api but not gamepasses and badges.
Oh, wonder why they don’t add that in that’s super weird.
Did some research, turns out, you cannot get all the gamepasses owned by a player but you can get specific gamepasses by user ID and gamepassID
https://inventory.roblox.com/docs#!/Inventory/get_v1_users_userId_items_itemType_itemTargetId
Would just be better to use MarketplaceService haha. (Unless you want to go overkill)
Yeah that would work as well, roblox earlier used to support this. But now it has been deprecated. We were able to check all the assets a player had including even gampasses and badges
here you go!
https://www.roblox.com/users/inventory/list-json?assetTypeId=34&cursor=&itemsPerPage=100&pageNumber=1&userId={userId}
How am I seeing this on top of the stack unsolved if it’s 4 years old..
https://games.roblox.com/v1/games/universeId/game-passes?limit=100&sortOrder=Asc Use your universeId is the game.GameId and the game has to be published.
I’m so sorry, it was me thinking this was another post I was talking in ![]()
Oh, I was a bit shocked there was no post up to date.
Anyways that is how you do it. ![]()
(IAM REALLY NOT SURE BUT…) It looks like Roblox has restricted or changed the inventory endpoints! HttpService requests to those URLs will fail because of Authentication! These endpoints often require special headers or authentication which HttpService cannot provide…
Roblox has been locking down inventory endpoints to prevent scraping. Gamepasses arent considered “collectibles” like UGC items or badges so those endpoints wont reliably return gamepass data!
Because of this the only officially supported way to check if a player owns a gamepass is using MarketplaceService:UserOwnsGamePassAsync…
You cannot fetch a full list of all gamepasses a user owns dynamically… What you could do is
- a table of all gamepass IDs used in your game
- loop through the table and check ownership for each gamepass with
UserOwnsGamePassAsync
(3. store or use the results in a table if you need a list of owned gamepasses)
Roblox blocks HTTP requests to their API when made directly from Roblox, but you can use another domain like roproxy, which simply redirects the request to Roblox (similar to how a VPN or proxy works).
In my post, someone mentioned that you can get the game passes a user owns with this URL:
https://apis.roblox.com/game-passes/v1/users/USERID/game-passes?count=101 You can then check the creator of each game pass.
Yeah thats right Roblox blocks direct HttpService requests to their own APIs from within a game so you cant just call them directly. Using a proxy service like RoProxy works because it forwards the request for you essentially bypassing Robloxs restrictions!
Keep in mind that using RoProxy or similar services are unofficial so it might stop working at any time.
Also you should be careful not to abuse it since repeated requests could run into rate limits!!! For official supported functionality the safest method is still MarketplaceService:UserOwnsGamePassAsync looping through your known gamepass IDs (which is so stupid). But if you need to dynamically get all the gamepasses a user owns a proxy like RoProxy is the practical workaround. But im also not sure if its Scriptable in Studio or if you can only use this in your Browser, this is also the first time i heard of RoProxy ill deffently look into that!!
You can use this to get passes for the game you made.
MarketplaceService:UserOwnsGamePassAsync(player.UserId, passId) Why you would care to know anything else is a mystery..
Works but deprecated I’m not sure if it will stop fully working soon

