RoProxy URL not updated from Roblox Url


I'm LuaAlbi. How are you? Take a cookie! 🍪

I’m currently using RoProxy to fetch all the gamepasses the user created/haves. And I found out that the RoProxy Url is not synced with Roblox url.

Why does this happen?
I currently have this roproxy url, and this roblox url.

and they return me this:

RoProxy Return
  "IsValid": true,
  "Data": {
    "TotalItems": null,
    "Start": 0,
    "End": -1,
    "Page": 1,
    "nextPageCursor": null,
    "previousPageCursor": null,
    "ItemsPerPage": 100,
    "PageType": "inventory",
    "Items": []
Roblox Return
  "IsValid": true,
  "Data": {
    "TotalItems": null,
    "Start": 0,
    "End": 0,
    "Page": 1,
    "nextPageCursor": null,
    "previousPageCursor": "32527975",
    "ItemsPerPage": 100,
    "PageType": "inventory",
    "Items": [
        "AssetRestrictionIcon": null,
        "Item": {
          "AssetId": 32527975,
          "UniverseId": null,
          "Name": "Anime",
          "AbsoluteUrl": "",
          "AssetType": 34,
          "AssetTypeDisplayName": null,
          "AssetTypeFriendlyLabel": null,
          "Description": null,
          "Genres": null,
          "GearAttributes": null,
          "AssetCategory": 0,
          "CurrentVersionId": 0,
          "IsApproved": false,
          "LastUpdated": "/Date(-62135575200000)/",
          "LastUpdatedBy": null,
          "AudioUrl": null
        "Creator": {
          "Id": 1378041346,
          "Name": "@carmencitaa12",
          "Type": 1,
          "CreatorProfileLink": ""
        "Product": {
          "Id": 0,
          "PriceInRobux": 15,
          "PremiumDiscountPercentage": null,
          "PremiumPriceInRobux": null,
          "IsForSale": true,
          "IsPublicDomain": false,
          "IsResellable": false,
          "IsLimited": false,
          "IsLimitedUnique": false,
          "SerialNumber": null,
          "IsRental": false,
          "RentalDurationInHours": 0,
          "BcRequirement": 0,
          "TotalPrivateSales": 0,
          "SellerId": 0,
          "SellerName": null,
          "LowestPrivateSaleUserAssetId": null,
          "IsXboxExclusiveItem": false,
          "OffsaleDeadline": null,
          "NoPriceText": null,
          "IsFree": false
        "PrivateServer": null,
        "Thumbnail": {
          "Final": true,
          "Url": "",
          "RetryUrl": "",
          "IsApproved": false
        "UserItem": null

Any help is appreciated.


I think it’s because the inventory is not public.

Inventory is public.
If it was private, why roblox url returns all?
RoProxy just does a GET request to<path> (i think)

Can you please share your code and the api endpoint you are using?

I’m using this function I found on DevForum.
It’s working for some players but some of other players don’t work.

I edited it aswell

local function getUserCreatedGamepassesRecursive(userId, gamepasses, pageNumber, lastLength)
	local baseUrl = ""

	gamepasses = gamepasses or {}
	pageNumber = pageNumber or 1
	lastLength = lastLength or math.huge

	local requestUrl = baseUrl:format(pageNumber, userId)
	local success, result = pcall(function()
		return http:GetAsync(requestUrl)

	if success then
		if result then
			local success2, result2 = pcall(function()
				return http:JSONDecode(result)

			if success2 then
				if result2 then
					for _, gamepass in ipairs(result2.Data.Items) do
						if gamepass.Creator.Id == userId and gamepass.Product.IsForSale then
							table.insert(gamepasses, {gamepass.Item.AssetId, gamepass.Product.PriceInRobux})

					if result:len() ~= lastLength then
						lastLength = result:len()
						pageNumber += 1
						getUserCreatedGamepassesRecursive(userId, gamepasses, pageNumber, lastLength)
				getUserCreatedGamepassesRecursive(userId, gamepasses, pageNumber, lastLength)
		getUserCreatedGamepassesRecursive(userId, gamepasses, pageNumber, lastLength)

	return gamepasses

ans this is how i call it

						local Gamepasses = getUserCreatedGamepassesRecursive(r.UserId)

						if typeof(Gamepasses) == "table" then

							for i,v in pairs(Gamepasses) do
								local Clone = script.buttonDonation:Clone()
								Clone.Name = changeToLetter(v[2]) .. v[1]
								Clone.Text = v[2]

								Clone.Owner.Value = r
								Clone.isGamepass.Value = false
								Clone.IDDDD.Value = v[1]

								Clone.Parent =
							local duplicated = {}
							for i, v in pairs( do
								if table.find(duplicated, v.Name) then
									table.insert(duplicated, v.Name)
							end = false

You are not passing all the parameters when you call the function

all the other parameters are auto

btw when you open it on the browser happens the same

I can’t see the value being set anywhere

Both of those links are returning nothing (for me), that means the queried user:

Has their inventory hidden, the reason you’re able to see their inventory is because you are friends with that user. When issuing requests directly to Roblox’s API (not through a proxy), your cookie is passed as a header with the other request headers which means that fetched results are from the perspective of your account, not from a guest-user.

Yes, right. It’s an empty value.

So, she haves to open her inventory?

For you to be able to scrape her inventory using the Roblox API through a proxy, yes.