Most inventory api’s Inventory Docs say:
This endpoint has been superseded by these recommended alternative endpoints:
https://apis.roblox.com/cloud/v2/users/{user_id}/inventory-items
However, this api is outdated and not accurate. This shows inaccurate inventory items (particularly faces). Here is what I mean:
This api is correct (im 100% sure of it), https://trades.roblox.com/v2/users/3095250/tradableItems?limit=100. This api shows the user does NOT own Super Super Happy Face.
However, this api:
https://apis.roblox.com/cloud/v2/users/3095250/inventory-items?maxPageSize=100&filter=onlyCollectibles=true;inventoryItemAssetTypes=* shows the user DOES own Super Super Happy Face (which is inaccurate). Here is what that response shows:
{
"path": "users/3095250/inventory-items/VVNFUl9BU1NFVF9JRD01NDMyMDU4NjU5",
"assetDetails": {
"assetId": "494291269",
"inventoryItemAssetType": "FACE",
"instanceId": "5432058659",
"collectibleDetails": {
"itemId": "5cd2e1f8-8919-4e64-97d3-0f26093ab9a6",
"instanceId": "65bf5d13-7875-4d14-8c40-68942075772e",
"instanceState": "AVAILABLE",
"serialNumber": 10906
}
},
"addTime": "2025-12-13T03:53:33.967Z"
},
This API also does not display any dynamic faces, so it was not properly migrated to allow dynamic collectible faces.
I would generally use a different API, however the other API’s dont show addTime, and that is crucial for my application. Many API’s that DO show addTime say that the api is not recommended, and suppressed by the cloud API. Some examples are:
- https://inventory.roblox.com/v2/users/{userId}/inventory/{assetTypeId}
- https://inventory.roblox.com/v2/users/{userId}/inventory
And another problem with legacy API’s which wont work for me is that it doesnt only show collectibles, it shows entire inventory with no filtering option for only collectibles.
It is quite annoying not having an API that is not efficient and that isnt working as intended.
Expected behavior
I expect the cloud api (https://apis.roblox.com/cloud/v2/users/3095250/inventory-items?maxPageSize=100&filter=onlyCollectibles=true;inventoryItemAssetTypes=*) to show dynamic heads, and remove non-owned items, like the user does not own Super Super Happy Face, yet this api shows the user does.
