Acquiring Limited Info About UGC Limited

I’m working on a game that pulls resale data (rap and such) from limiteds, however the resale data endpoint only works for limiteds created by ROBLOX, which is a huge issue. Are there any workarounds to this?

Response given after inputting asset id of ROBLOX Madness Face (Roblox Created Limited):

Response given after inputting asset id of Rate Limit Exceeded Sign (UGC Limited Item):

1 Like

For some reason it’s way more complicated than limiteds created by Roblox. You have to make multiple requests to get a single piece of information. Here’s how you do it:

First, make a request to https://catalog.roblox.com/v1/catalog/items/{ASSETID}/details?itemType=Asset. It will return something like this:

{
    "expectedSellerId": 0,
    "owned": false,
    "isPurchasable": false,
    "id": 12345,
    "itemType": "Asset",
    "assetType": 8,
    "name": "Example",
    "description": "example.",
    "genres": [
        "All"
    ],
    "itemRestrictions": [
        "Collectible"
    ],
    "creatorHasVerifiedBadge": false,
    "creatorType": "Group",
    "creatorTargetId": 12345,
    "creatorName": "group name",
    "price": 0,
    "lowestPrice": 30,
    "lowestResalePrice": 30,
    "unitsAvailableForConsumption": 0,
    "favoriteCount": 12345,
    "offSaleDeadline": null,
    "collectibleItemId": "173a9e38-e594",
    "totalQuantity": 12345,
    "saleLocationType": "ExperiencesDevApiOnly",
    "hasResellers": true,
    "quantityLimitPerUser": 1
}

There’s some information you might use directly from this endpoint. However, to get information such as the RAP and reseller data, you’ll need the collectibleItemId which can be retrieved with the endpoint above. To be honest, I don’t know what the difference between this and the asset ID is, but that’s how it works.

To get the RAP and previous sale data, you need to use https://apis.roblox.com/marketplace-sales/v1/item/{collectibleItemId}/resale-data and it will return something like this:

{
    "priceDataPoints": [
        {
            "value": 25,
            "date": "2023-09-03T00:00:00Z"
        },
        {
            "value": 25,
            "date": "2023-09-02T00:00:00Z"
        },
        {
            "value": 0,
            "date": "2023-08-04T00:00:00Z"
        },
        {
            "value": 0,
            "date": "2023-08-03T00:00:00Z"
        }
    ],
    "volumeDataPoints": [
        {
            "value": 117,
            "date": "2023-09-03T00:00:00Z"
        },
        {
            "value": 23,
            "date": "2023-09-02T00:00:00Z"
        },
        {
            "value": 3365,
            "date": "2023-08-04T00:00:00Z"
        },
        {
            "value": 21635,
            "date": "2023-08-03T00:00:00Z"
        }
    ],
    "recentAveragePrice": 123.4
}

which includes the data needed to plot the price graph on the website, as well as the recent average price.

To get the resellers, you need to use https://apis.roblox.com/marketplace-sales/v1/item/{collectibleItemId}/resellers which accepts the standard parameters such as limit and cursor (see the docs here). It will return a list of resellers based on the limit you specified:

{
    "data": [
        {
            "collectibleProductId": "abc123",
            "collectibleItemInstanceId": "cba321",
            "seller": {
                "hasVerifiedBadge": false,
                "sellerId": 12345,
                "sellerType": "User",
                "name": "Username"
            },
            "price": 100,
            "serialNumber": 123,
            "errorMessage": null
        }
    ],
    "previousPageCursor": "id_abc12345",
    "nextPageCursor": "id_cba54321"
}

which includes details about each copy (resale price, seller, unique id, etc.)

2 Likes

Wow, that’s incredibly annoying, would make a better API a feature request but am unable to do so. For now I guess I’ll be forced to send 2x the API requests causing entirely unnecessary strain.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.