Is it possible to check all clothing a player is selling?

I need to find out all clothing a player is selling (Like if they’re selling a t-shirt or pants it’ll return id for it)
Is this even possible? It’s for a commission

Couldn’t find anything on the devforum or the wiki

I think it is possible because, In roblox there is a game called DONATE ME, I think, and somehow it knows the gamepasses and all the T-shirts and pants that you sell.

theres a lot of source you can use to fetch all the player’s clothing and might also return if its for sale

or if it doesnt

you use GetProductInfo() from MarketService it returns the product sale status

1 Like
local HttpService = game:GetService("HttpService")

local URL = "https://robloxdevforumproxy.glitch.me/users/inventory/list-json?assetTypeId=%s&cursor=&itemsPerPage=100&pageNumbersortOrder=Desc&userId=%s"

local data = HttpService:GetAsync(URL:format(assetType, userId), true)

print(data["Items"]) --// All items of the player with the assettype, to check if they are selling u can just do data["Items"][itemIndex]["Product"]["IsForSale"]

There has been a high demand for scripts like this recently. If you need to check all clothing (not just t-shirts) you’d just remove the &SubCategory=13 query parameter from the URL being scraped in the script from the linked post.

1 Like
local marketplace = game:GetService("MarketplaceService")
local http = game:GetService("HttpService")
local getProductInfo = marketplace.GetProductInfo
local getAsync = http.GetAsync
local jsonDecode = http.JSONDecode

local clothingUrl = "https://catalog.roproxy.com/v1/search/items/details?Category=3&CreatorType=1&CreatorTargetId=%s&Cursor=%s"

local function getClothingRecursive(userId, cursor, clothing, maxTries)
	cursor = cursor or ""
	clothing = clothing or {}
	maxTries = maxTries or 10
	if maxTries == 0 then return end
	maxTries -= 1
	
	local requestUrl = clothingUrl:format(userId, cursor)
	local success, result = pcall(getAsync, http, requestUrl)
	if success then
		if result then
			local success2, result2 = pcall(jsonDecode, http, result)
			if success2 then
				if result2 then
					for _, clothingItem in ipairs(result2.data) do
						table.insert(clothing, clothingItem.id)
					end
					
					cursor = result2.nextPageCursor
					if cursor then
						return getClothingRecursive(userId, cursor, clothing, maxTries)
					else
						return clothing
					end
				end
			else
				warn(result2)
				task.wait()
				return getClothingRecursive(userId, cursor, clothing, maxTries)
			end
		end
	else
		warn(result)
		task.wait()
		return getClothingRecursive(userId, cursor, clothing, maxTries)
	end
end

local function getAssetPrice(assetId)
	local success, result = pcall(getProductInfo, marketplace, assetId)
	
	if success then
		if result then
			return result.PriceInRobux
		end
	else
		warn(result)
	end
end

local userClothing = getClothingRecursive(1)
for _, clothingId in ipairs(userClothing) do
	local clothingPrice = getAssetPrice(clothingId)
	if clothingPrice then
		print(clothingId.." "..clothingPrice)
	end
end

Output format is asset ID followed by asset price:
image
I queried Roblox’s clothing to test (user ID 1).

1 Like