How can I identify the owner of a particular serial number of an item?

Not exactly scripting, but there’s no section for this on any website since forums are now divided between the Devforums and various websites full of people who know nothing of the technicalities of Roblox.

I got my account raided, and hopefully the account all my items were traded to will get banned and all the items returned, but the account all my items were traded to was obviously not the main account (despite being an '08 account) since it didn’t actually keep those items.
Fortunately, one of those items was notable for having a serial number of 1, so I want to track it.

10 Likes

You can try use the following service to figure out who owns your limited:
https://inventory.roblox.com/docs/#!/Assets/get_v1_assets_assetId_owners

As an example, https://inventory.roblox.com/v1/assets/1560601706/owners?sortOrder=Asc&limit=10 gives data about the Counterfeit Domino Crown - Roblox asset, and includes information such as who owns the asset and the serial number.

7 Likes

Thanks, I now have the username of someone who has one of my items, and holy-moly that account is worth millions.
Now to find the rest, since a few others have serials.
I’m not sure how to use the API to find a specific serial that isn’t one of the first few.

2 Likes

Unfortunately, as far as I understand from the concept of using a cursor, you need to browse the first pages in order to obtain a cursor for the next page.

The returned text (JSON) contains a field, nextPageCursor, which you can supply as a parameter to load the next page and get another value in the nextPageCursor field.

From the example before, setting the assetId field to 1560601706 and leaving out the cursor gives me a next cursor of 20031802802_1_e0fbc38441c25e1d6f11170bdde42056.
Using the asset id field, but supplying the above value for the cursor field ( https://inventory.roblox.com/v1/assets/1560601706/owners?sortOrder=Asc&limit=10&cursor=20031802802_1_e0fbc38441c25e1d6f11170bdde42056 ) then gives me serial numbers 10-19 instead of 1-9.

Visuals to show the next cursor field

2 Likes

Hmm, this isn’t looking very practical.
Unfortunately, I’m not a moderator so I can’t do anything, and by the time moderators respond all my items will have been lost in fair trades which means I can’t just be given them back without causing problems.

2 Likes

Sorry to hear what happened. Roblox Plus has a neat owners list that I use all the time!

2 Likes

Have you asked for a RoBack? Every account gets 1 I believe.

1 Like

RoBack is apparently a Roblox group.

2 Likes

What he is saying is that if you email info@roblox.com and ask for an inventory recovery. If you havent used one before, the staff will try there best to recover it…

2 Likes

Yes, you can use a 1 time recovery @complexo. Use it wisely though, because you only have one.

2 Likes

There’s a serial tracker on Rbx.Rocks. All you need to do is select the item and place a number of whatever you own. You can also check the owners list of the items you owned if that helps.

1 Like

Alright, I now have a list of almost all the users my items ended up with. Lag in indexing means two still show as being with me, so they’re not listed.
Sorted in approximate order of value:

[redacted]: Royal Faerie Wings
[redacted]: Blue Starface
[redacted]: Fawkes Face
[redacted]: Golden Bling Braces
[redacted]: Red Goof
[redacted]: Green Goof
[redacted]: Blue Goof

There are two noteworthy things here:

One is that all of them have PMs disabled, and it’s not to limit quantity of messages. Despite having a higher player average than all those users combined, I only get one PM a week.
It seems suspiciously like avoiding lashback for buying stolen items, most users with old accounts (some of the ones listed are 2018 though) only disable PMs when they get famous.

The other is that the two best items (which are also a matching pair) ended up with the same person.
There’s a lot of explanations for how this happened, and almost all of them involve a ToS violation; which is a pretty big deal, since they’re a bajillionaire.

2 Likes

I figured that in any case (whether intentionally buying stolen items or not), [redacted] must have friended the user who traded them the items since they have that restriction, so if they didn’t unfriend them there would be an ultra-suspicious account in their friends list, and I think I’ve found it: [redacted link]
First red flag: Two-month-old account continuing from terminated account, which is in their friends list. This is definitely a user who has made some severe rule violations.
Second red flag: They boast about reaching 150K+ RAP within a day of making their account. This is impossible unless they stash items in other accounts, knowing they have a high ban risk.
Third red flag: Their collections show a variety of very high value items, but their inventory is totally empty. They once had these items, then either moved them to other accounts knowing they’re going to get banned sooner or later, or traded them to other users without getting items in return (which would indicate either Robux hoarding which makes no sense, or off-site sales for real money which would make sense.).

I really wish I had the investigative tools of a moderator at my disposal, because someone has a lot of illegitimate trading going through this one account and investigating its trade history would reveal a huge amount.

1 Like

Just in relation to you specifying the limiteds, [redacted] was very quick to acquire two botted limiteds from the recent federation necklace. I watched it happen and was very surprised that he chose to trade two serials from the one account that botted 4. He looks very sketchy right now.

1 Like

Most of these people are related to Rbx.Place. They’re of course not the actual accounts but they sell the items through a website which you are able to sell limiteds for in real money (yes it’s against the ToS). If you’re able to find them through there then you can easily report their main account, however it’s probably too late to find the items now. You can roll back your account once like other people have said, but once you have I suggest adding 2-step, changing password, changing cookies, changing email and putting all the items you get on a different account so that you can get another roll back if this happens again.

3 Likes

No, I’ve got the list still and the people on it haven’t been touched.
However, one user I mentioned as being used to facilitate illegitimate trades did get terminated, which is very convenient for all the users who have a tainted trading history from it.

1 Like

Just a note, any accounts that get terminated won’t affect them since they bought the accounts for cheap as 2008 accounts are always sold to make people look legitimate. It’s just a cover up for them to steal and sell the items.

2 Likes

All but one of the accounts I listed was a main account, a couple are worth millions of Robux.
Terminating them if they were found to use third-party services to buy items would certainly affect them.

2 Likes

I added the cursor ID, but as I go to the json text it just displays the users are null

1 Like
local http = game:GetService"HttpService"
local get = http.GetAsync
local jsonDecode = http.JSONDecode

local cookie = "" --Put your account's cookie here.
cookie = string.gsub(cookie, "_|WARNING:%-DO%-NOT%-SHARE%-THIS\.%-%-Sharing%-this%-will%-allow%-someone%-to%-log%-in%-as%-you%-and%-to%-steal%-your%-ROBUX%-and%-items\.|_", "")
local headers = {["cookie"] = cookie}
local proxyUrl = "roproxy.com" --Put your proxy's domain here.
local baseUrl = "https://inventory."..proxyUrl.."/v2/assets/%s/owners?sortOrder=Asc&limit=100&cursor="

local function getOwnerOfCollectibleBySerial(collectibleId, serialNumber, cursor, pageNumber)
	cursor = cursor or ""
	pageNumber = pageNumber or 1
	local requestUrl = string.format(baseUrl, collectibleId, cursor)
	local success, result = pcall(get, http, requestUrl, false, headers)
	if success then
		if result then
			local success2, result2 = pcall(jsonDecode, http, result)
			if success2 then
				if result2 then
					if serialNumber > (pageNumber * 100) then
						cursor = result.nextPageCursor
						if cursor then
							return getOwnerOfCollectibleBySerial(collectibleId, serialNumber, cursor, pageNumber)
						else
							return
						end
					else
						for _, collectibleItem in ipairs(result2.data) do
							if collectibleItem.serialNumber == serialNumber then
								return collectibleItem
							end
						end
						return
					end
				end
			else
				warn(result2)
			end
		end
	else
		warn(result)
	end
	task.wait(1)
	return getOwnerOfCollectibleBySerial(collectibleId, serialNumber, cursor, pageNumber)
end

local collectibleInfo = getOwnerOfCollectibleBySerial(562478132, 1)
for collectibleProperty, collectibleValue in pairs(collectibleInfo) do
	print(collectibleProperty, collectibleValue)
end

The following collectible was used for testing purposes.

Here is the result.

{
      "id": 6685169877,
      "serialNumber": 1,
      "owner": {
        "id": 87353706,
        "type": "User"
      },
      "created": "2016-12-03T19:47:54.777Z",
      "updated": "2019-02-12T01:35:17.43Z"
}
2 Likes