RoProxy URL not updated from Roblox Url


Hello!

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": "https://www.roblox.com/game-pass/32527975/Anime",
          "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": "https://www.roblox.com/users/1378041346/profile/"
        },
        "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": "https://tr.rbxcdn.com/0ca81f58e0ea7b411ca05ed5a1dc88e9/110/110/Image/Png",
          "RetryUrl": "",
          "IsApproved": false
        },
        "UserItem": null
      }
    ]
  }
}

Any help is appreciated.

Thanks!

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 roblox.com/<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 = "https://www.roproxy.com/users/inventory/list-json?assetTypeId=34&cursor=&itemsPerPage=100&pageNumber=%s&userId=%s"

	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)
	end)

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

			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})
						end
					end

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

	return gamepasses
end

ans this is how i call it

spawn(function()
						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 = r.game.osTime.Value.DonateSign.SurfaceGui.Frame
							end
							
							local duplicated = {}
							
							for i, v in pairs(r.game.osTime.Value.DonateSign.SurfaceGui.Frame:GetChildren()) do
								if table.find(duplicated, v.Name) then
									v:Destroy()
								else
									table.insert(duplicated, v.Name)
								end
							end

							r.game.osTime.Value.DonateSign.SurfaceGui.Frame.error.Visible = false
						end
					end)

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:

https://www.roblox.com/users/1378041346/profile

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.