Skip to content

Catalog v1

Reference for the Catalog v1 endpoints on Roblox.

Base URL: https://catalog.roblox.com

Method Path Name
GET /v1/asset-to-category getAssetToCategory
GET /v1/asset-to-subcategory getAssetToSubcategory
GET /v1/assets/:assetId/bundles getAssetsAssetidBundles
GET /v1/bundles/:bundleId/details getBundlesBundleidDetails
GET /v1/bundles/:bundleId/recommendations getBundlesBundleidRecommendations
GET /v1/bundles/details getBundlesDetails
POST /v1/catalog/items/details postCatalogItemsDetails
GET /v1/categories getCategories
GET /v1/favorites/assets/:assetId/count getFavoritesAssetsAssetidCount
GET /v1/favorites/bundles/:bundleId/count getFavoritesBundlesBundleidCount
GET /v1/favorites/users/:userId/assets/:assetId/favorite getFavoritesUsersUseridAssetsAssetidFavorite
POST /v1/favorites/users/:userId/assets/:assetId/favorite postFavoritesUsersUseridAssetsAssetidFavorite
DELETE /v1/favorites/users/:userId/assets/:assetId/favorite deleteFavoritesUsersUseridAssetsAssetidFavorite
GET /v1/favorites/users/:userId/bundles/:bundleId/favorite getFavoritesUsersUseridBundlesBundleidFavorite
POST /v1/favorites/users/:userId/bundles/:bundleId/favorite postFavoritesUsersUseridBundlesBundleidFavorite
DELETE /v1/favorites/users/:userId/bundles/:bundleId/favorite deleteFavoritesUsersUseridBundlesBundleidFavorite
GET /v1/favorites/users/:userId/favorites/:assetTypeId/assets getFavoritesUsersUseridFavoritesAssettypeidAssets
GET /v1/favorites/users/:userId/favorites/:subtypeId/bundles getFavoritesUsersUseridFavoritesSubtypeidBundles
GET /v1/subcategories getSubcategories
POST /v1/topic/get-topics postTopicGetTopics
GET /v1/users/:userId/bundles getUsersUseridBundles
GET /v1/users/:userId/bundles/:bundleType getUsersUseridBundlesBundletype

GET /v1/asset-to-category

Lists a mapping for assets to category IDs to convert from inventory ID to catalog ID. Creates a mapping to link ‘Get More’ button in inventory page to the relevant catalog page.

Usage
import { fetchApi } from 'rozod';
import { getAssetToCategory } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getAssetToCategory, undefined);

Type: integer


GET /v1/asset-to-subcategory

Lists a mapping for assets to subcategory IDs to convert from inventory ID to catalog ID. Creates a mapping to link ‘Get More’ button in inventory page to the relevant catalog page.

Usage
import { fetchApi } from 'rozod';
import { getAssetToSubcategory } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getAssetToSubcategory, undefined);

Type: integer


GET /v1/assets/:assetId/bundles

Lists the bundles a particular asset belongs to. Use the Id of the last bundle in the response to get the next page.

Usage
import { fetchApi } from 'rozod';
import { getAssetsAssetidBundles } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getAssetsAssetidBundles, {
assetId: /* integer */,
cursor: /* string? */,
sortOrder: /* enum */
});
Name Type Required Description
assetId integer Yes
cursor string? No The paging cursor for the previous or next page.
sortOrder enum Yes The order the results are sorted in.
Field Type Description
previousPageCursor string
nextPageCursor string
data object[] See below

data[] item fields:

Field Type Description
id number
name string
description string
bundleType string
isRecolorable boolean
items object[] See below
creator object See below
product object See below
itemRestrictions `1 2
collectibleItemDetail object See below
discountInformation object See below

items[] item fields:

Field Type Description
owned boolean
id number
name string
type string
supportsHeadShapes boolean
assetType number

creator fields:

Field Type Description
id number
name string
type string
hasVerifiedBadge boolean

product fields:

Field Type Description
id number
type string
isPublicDomain boolean
isForSale boolean
priceInRobux number
isFree boolean
noPriceText string
premiumPricing object See below

premiumPricing fields:

Field Type Description
premiumDiscountPercentage number
premiumPriceInRobux number

collectibleItemDetail fields:

Field Type Description
collectibleItemId string
collectibleProductId string
price number
lowestPrice number
lowestResalePrice number
totalQuantity number
unitsAvailable number
saleLocation object See below
hasResellers boolean
saleStatus `“Invalid” “Draft”
quantityLimitPerUser number
offSaleDeadline string
collectibleItemType `“Invalid” “Limited”
lowestAvailableResaleProductId string
lowestAvailableResaleItemInstanceId string
resaleRestriction `“Invalid” “None”

saleLocation fields:

Field Type Description
saleLocationType `“NotApplicable” “ShopOnly”
saleLocationTypeId number
universeIds number[]
enabledUniverseIds number[]

discountInformation fields:

Field Type Description
originalPrice number
totalDiscountPercentage number
totalDiscountAmount number
discounts object[] See below

discounts[] item fields:

Field Type Description
robuxDiscountAmount number
robuxDiscountPercentage number
discountCampaign string
localizedDiscountAttribution string
Status Description
400 1: Invalid assetId
4: Invalid Cursor.

GET /v1/bundles/:bundleId/details

Returns details about the given bundleId.

Usage
import { fetchApi } from 'rozod';
import { getBundlesBundleidDetails } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getBundlesBundleidDetails, {
bundleId: /* integer */
});
Name Type Required Description
bundleId integer Yes
Field Type Description
id number
name string
description string
bundleType string
isRecolorable boolean
items object[] See below
creator object See below
product object See below
itemRestrictions `1 2
collectibleItemDetail object See below
discountInformation object See below

items[] item fields:

Field Type Description
owned boolean
id number
name string
type string
supportsHeadShapes boolean
assetType number

creator fields:

Field Type Description
id number
name string
type string
hasVerifiedBadge boolean

product fields:

Field Type Description
id number
type string
isPublicDomain boolean
isForSale boolean
priceInRobux number
isFree boolean
noPriceText string
premiumPricing object See below

premiumPricing fields:

Field Type Description
premiumDiscountPercentage number
premiumPriceInRobux number

collectibleItemDetail fields:

Field Type Description
collectibleItemId string
collectibleProductId string
price number
lowestPrice number
lowestResalePrice number
totalQuantity number
unitsAvailable number
saleLocation object See below
hasResellers boolean
saleStatus `“Invalid” “Draft”
quantityLimitPerUser number
offSaleDeadline string
collectibleItemType `“Invalid” “Limited”
lowestAvailableResaleProductId string
lowestAvailableResaleItemInstanceId string
resaleRestriction `“Invalid” “None”

saleLocation fields:

Field Type Description
saleLocationType `“NotApplicable” “ShopOnly”
saleLocationTypeId number
universeIds number[]
enabledUniverseIds number[]

discountInformation fields:

Field Type Description
originalPrice number
totalDiscountPercentage number
totalDiscountAmount number
discounts object[] See below

discounts[] item fields:

Field Type Description
robuxDiscountAmount number
robuxDiscountPercentage number
discountCampaign string
localizedDiscountAttribution string
Status Description
400 1: Invalid bundle

GET /v1/bundles/:bundleId/recommendations

Gets recommendations for a given bundle, bundleId of 0 returns randomized bundles

Usage
import { fetchApi } from 'rozod';
import { getBundlesBundleidRecommendations } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getBundlesBundleidRecommendations, {
bundleId: /* integer */,
numItems: /* integer? = 20 */
});
Name Type Required Description
bundleId integer Yes
numItems integer? = 20 No The number of recommended items to return.
Field Type Description
data object[] See below

data[] item fields:

Field Type Description
id number
name string
description string
bundleType string
isRecolorable boolean
items object[] See below
creator object See below
product object See below
itemRestrictions `1 2
collectibleItemDetail object See below
discountInformation object See below

items[] item fields:

Field Type Description
owned boolean
id number
name string
type string
supportsHeadShapes boolean
assetType number

creator fields:

Field Type Description
id number
name string
type string
hasVerifiedBadge boolean

product fields:

Field Type Description
id number
type string
isPublicDomain boolean
isForSale boolean
priceInRobux number
isFree boolean
noPriceText string
premiumPricing object See below

premiumPricing fields:

Field Type Description
premiumDiscountPercentage number
premiumPriceInRobux number

collectibleItemDetail fields:

Field Type Description
collectibleItemId string
collectibleProductId string
price number
lowestPrice number
lowestResalePrice number
totalQuantity number
unitsAvailable number
saleLocation object See below
hasResellers boolean
saleStatus `“Invalid” “Draft”
quantityLimitPerUser number
offSaleDeadline string
collectibleItemType `“Invalid” “Limited”
lowestAvailableResaleProductId string
lowestAvailableResaleItemInstanceId string
resaleRestriction `“Invalid” “None”

saleLocation fields:

Field Type Description
saleLocationType `“NotApplicable” “ShopOnly”
saleLocationTypeId number
universeIds number[]
enabledUniverseIds number[]

discountInformation fields:

Field Type Description
originalPrice number
totalDiscountPercentage number
totalDiscountAmount number
discounts object[] See below

discounts[] item fields:

Field Type Description
robuxDiscountAmount number
robuxDiscountPercentage number
discountCampaign string
localizedDiscountAttribution string
Status Description
400 1: Invalid bundle
2: Error retrieving bundles
3: Error getting bundle recommendations
4: NumItems exceed maximum

GET /v1/bundles/details

Returns details about the given bundleIds.

Usage
import { fetchApi } from 'rozod';
import { getBundlesDetails } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getBundlesDetails, {
bundleIds: /* number */
});
Name Type Required Description
bundleIds number Yes

Array of objects:

Field Type Description
id number
name string
description string
bundleType string
isRecolorable boolean
items object[] See below
creator object See below
product object See below
itemRestrictions `1 2
collectibleItemDetail object See below
discountInformation object See below

items[] item fields:

Field Type Description
owned boolean
id number
name string
type string
supportsHeadShapes boolean
assetType number

creator fields:

Field Type Description
id number
name string
type string
hasVerifiedBadge boolean

product fields:

Field Type Description
id number
type string
isPublicDomain boolean
isForSale boolean
priceInRobux number
isFree boolean
noPriceText string
premiumPricing object See below

premiumPricing fields:

Field Type Description
premiumDiscountPercentage number
premiumPriceInRobux number

collectibleItemDetail fields:

Field Type Description
collectibleItemId string
collectibleProductId string
price number
lowestPrice number
lowestResalePrice number
totalQuantity number
unitsAvailable number
saleLocation object See below
hasResellers boolean
saleStatus `“Invalid” “Draft”
quantityLimitPerUser number
offSaleDeadline string
collectibleItemType `“Invalid” “Limited”
lowestAvailableResaleProductId string
lowestAvailableResaleItemInstanceId string
resaleRestriction `“Invalid” “None”

saleLocation fields:

Field Type Description
saleLocationType `“NotApplicable” “ShopOnly”
saleLocationTypeId number
universeIds number[]
enabledUniverseIds number[]

discountInformation fields:

Field Type Description
originalPrice number
totalDiscountPercentage number
totalDiscountAmount number
discounts object[] See below

discounts[] item fields:

Field Type Description
robuxDiscountAmount number
robuxDiscountPercentage number
discountCampaign string
localizedDiscountAttribution string
Status Description
400 3: Cannot request so many bundles at once.

POST /v1/catalog/items/details

Returns details for one or more catalog items.

Usage
import { fetchApi } from 'rozod';
import { postCatalogItemsDetails } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(postCatalogItemsDetails, {
body: { /* ... */ }
});
Field Type Description
items object[] See below

items[] item fields:

Field Type Description
itemType `“Asset” “Bundle”`
id number
Field Type Description
data object[] See below

data[] item fields:

Field Type Description
bundledItems object[] See below
taxonomy object[] See below
itemCreatedUtc string
discountInformation object See below
license object See below
id number
itemType `“Asset” “Bundle”`
assetType `1 2
bundleType `1 2
isRecolorable boolean
name string
description string
productId number
itemStatus `1 2
itemRestrictions `1 2
creatorHasVerifiedBadge boolean
creatorType string
creatorTargetId number
creatorName string
price number
lowestPrice number
lowestResalePrice number
priceStatus string
unitsAvailableForConsumption number
favoriteCount number
offSaleDeadline string
collectibleItemId string
totalQuantity number
saleLocationType `“NotApplicable” “ShopOnly”
hasResellers boolean
isOffSale boolean
quantityLimitPerUser number
supportsHeadShapes boolean
timedOptions object[] See below

bundledItems[] item fields:

Field Type Description
owned boolean
id number
name string
type string
supportsHeadShapes boolean
assetType number

taxonomy[] item fields:

Field Type Description
taxonomyId string
taxonomyName string

discountInformation fields:

Field Type Description
originalPrice number
totalDiscountPercentage number
totalDiscountAmount number
discounts object[] See below

discounts[] item fields:

Field Type Description
robuxDiscountAmount number
robuxDiscountPercentage number
discountCampaign string
localizedDiscountAttribution string

license fields:

Field Type Description
id string
licenseType `“Invalid” “ThirdParty”

timedOptions[] item fields:

Field Type Description
days number
price number
discountInformation object See below
selected boolean

discountInformation fields:

Field Type Description
originalPrice number
totalDiscountPercentage number
totalDiscountAmount number
discounts object[] See below

discounts[] item fields:

Field Type Description
robuxDiscountAmount object
robuxDiscountPercentage object
discountCampaign object
localizedDiscountAttribution object
Status Description
400 2: Invalid count
403 0: Token Validation Failed
7: User is unauthorized.
429 8: The flood limit has been exceeded.

GET /v1/categories

Lists Category Names and their Ids.

Usage
import { fetchApi } from 'rozod';
import { getCategories } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getCategories, undefined);

Array of objects:

Field Type Description
category string
taxonomy string
assetTypeIds number[]
bundleTypeIds number[]
categoryId number
name string
orderIndex number
subcategories object[] See below
isSearchable boolean

subcategories[] item fields:

Field Type Description
subcategory string
taxonomy string
assetTypeIds number[]
bundleTypeIds number[]
subcategoryId number
name string
shortName string

GET /v1/favorites/assets/:assetId/count

Gets the favorite count for the given asset Id.

Usage
import { fetchApi } from 'rozod';
import { getFavoritesAssetsAssetidCount } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getFavoritesAssetsAssetidCount, {
assetId: /* integer */
});
Name Type Required Description
assetId integer Yes

Type: integer

Status Description
400 2: Invalid asset Id.

GET /v1/favorites/bundles/:bundleId/count

Gets the favorite count for the given bundle Id.

Usage
import { fetchApi } from 'rozod';
import { getFavoritesBundlesBundleidCount } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getFavoritesBundlesBundleidCount, {
bundleId: /* integer */
});
Name Type Required Description
bundleId integer Yes

Type: integer

Status Description
400 2: Invalid bundle Id.

getFavoritesUsersUseridAssetsAssetidFavorite

Section titled “getFavoritesUsersUseridAssetsAssetidFavorite”

GET /v1/favorites/users/:userId/assets/:assetId/favorite

Gets the favorite model for the asset and user.

Usage
import { fetchApi } from 'rozod';
import { getFavoritesUsersUseridAssetsAssetidFavorite } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getFavoritesUsersUseridAssetsAssetidFavorite, {
userId: /* integer */,
assetId: /* integer */
});
Name Type Required Description
userId integer Yes
assetId integer Yes
Field Type Description
assetId number
userId number
created string
Status Description
400 1: Invalid user Id.
2: Invalid asset Id.
401 0: Authorization has been denied for this request.

postFavoritesUsersUseridAssetsAssetidFavorite

Section titled “postFavoritesUsersUseridAssetsAssetidFavorite”

POST /v1/favorites/users/:userId/assets/:assetId/favorite

Create a favorite for an asset by the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { postFavoritesUsersUseridAssetsAssetidFavorite } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(postFavoritesUsersUseridAssetsAssetidFavorite, {
userId: /* integer */,
assetId: /* integer */
});
Name Type Required Description
userId integer Yes
assetId integer Yes

Type: unknown

Status Description
400 1: Invalid user Id.
2: Invalid asset Id.
401 0: Authorization has been denied for this request.
403 0: Token Validation Failed
6: You are not authorized to perform this action.
409 3: Asset is already favorited.
429 5: This action was floodchecked. Please try again later.

deleteFavoritesUsersUseridAssetsAssetidFavorite

Section titled “deleteFavoritesUsersUseridAssetsAssetidFavorite”

DELETE /v1/favorites/users/:userId/assets/:assetId/favorite

Delete a favorite for an asset by the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { deleteFavoritesUsersUseridAssetsAssetidFavorite } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(deleteFavoritesUsersUseridAssetsAssetidFavorite, {
userId: /* integer */,
assetId: /* integer */
});
Name Type Required Description
userId integer Yes
assetId integer Yes

Type: unknown

Status Description
400 1: Invalid user Id.
2: Invalid asset Id.
401 0: Authorization has been denied for this request.
403 0: Token Validation Failed
6: You are not authorized to perform this action.
409 4: Asset is already not favorited.
429 5: This action was floodchecked. Please try again later.

getFavoritesUsersUseridBundlesBundleidFavorite

Section titled “getFavoritesUsersUseridBundlesBundleidFavorite”

GET /v1/favorites/users/:userId/bundles/:bundleId/favorite

Gets the favorite model for the bundle and user.

Usage
import { fetchApi } from 'rozod';
import { getFavoritesUsersUseridBundlesBundleidFavorite } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getFavoritesUsersUseridBundlesBundleidFavorite, {
userId: /* integer */,
bundleId: /* integer */
});
Name Type Required Description
userId integer Yes
bundleId integer Yes
Field Type Description
bundleId number
userId number
created string
Status Description
400 1: Invalid user Id.
2: Invalid bundle Id.
401 0: Authorization has been denied for this request.

postFavoritesUsersUseridBundlesBundleidFavorite

Section titled “postFavoritesUsersUseridBundlesBundleidFavorite”

POST /v1/favorites/users/:userId/bundles/:bundleId/favorite

Create a favorite for the bundle by the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { postFavoritesUsersUseridBundlesBundleidFavorite } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(postFavoritesUsersUseridBundlesBundleidFavorite, {
userId: /* integer */,
bundleId: /* integer */
});
Name Type Required Description
userId integer Yes
bundleId integer Yes

Type: unknown

Status Description
400 1: Invalid user Id.
2: Invalid bundle Id.
401 0: Authorization has been denied for this request.
403 0: Token Validation Failed
6: You are not authorized to perform this action.
409 3: Bundle is already favorited.
429 5: This action was floodchecked. Please try again later.

deleteFavoritesUsersUseridBundlesBundleidFavorite

Section titled “deleteFavoritesUsersUseridBundlesBundleidFavorite”

DELETE /v1/favorites/users/:userId/bundles/:bundleId/favorite

Delete favorite for the bundle by the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { deleteFavoritesUsersUseridBundlesBundleidFavorite } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(deleteFavoritesUsersUseridBundlesBundleidFavorite, {
userId: /* integer */,
bundleId: /* integer */
});
Name Type Required Description
userId integer Yes
bundleId integer Yes

Type: unknown

Status Description
400 1: Invalid user Id.
2: Invalid bundle Id.
401 0: Authorization has been denied for this request.
403 0: Token Validation Failed
6: You are not authorized to perform this action.
409 4: Bundle is already not favorited.
429 5: This action was floodchecked. Please try again later.

getFavoritesUsersUseridFavoritesAssettypeidAssets

Section titled “getFavoritesUsersUseridFavoritesAssettypeidAssets”

GET /v1/favorites/users/:userId/favorites/:assetTypeId/assets

Lists the marketplace assets favorited by a given user with the given assetTypeId.

Usage
import { fetchApi } from 'rozod';
import { getFavoritesUsersUseridFavoritesAssettypeidAssets } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getFavoritesUsersUseridFavoritesAssettypeidAssets, {
userId: /* integer */,
assetTypeId: /* integer */,
cursor: /* string? */,
sortOrder: /* enum */
});
Name Type Required Description
userId integer Yes
assetTypeId integer Yes
cursor string? No The paging cursor for the previous or next page.
sortOrder enum Yes The order the results are sorted in.
Field Type Description
previousPageCursor string
nextPageCursor string
data object[] See below

data[] item fields:

Field Type Description
id number
itemType `“Asset” “Bundle”`
assetType `1 2
bundleType `1 2
isRecolorable boolean
name string
description string
productId number
bundledItems object[] See below
itemStatus `1 2
itemRestrictions `1 2
creatorHasVerifiedBadge boolean
creatorType string
creatorTargetId number
creatorName string
price number
lowestPrice number
lowestResalePrice number
priceStatus string
unitsAvailableForConsumption number
favoriteCount number
offSaleDeadline string
collectibleItemId string
totalQuantity number
saleLocationType `“NotApplicable” “ShopOnly”
hasResellers boolean
isOffSale boolean
quantityLimitPerUser number
supportsHeadShapes boolean
timedOptions object[] See below

bundledItems[] item fields:

Field Type Description
owned boolean
id number
name string
type string
supportsHeadShapes boolean
assetType number

timedOptions[] item fields:

Field Type Description
days number
price number
discountInformation object See below
selected boolean

discountInformation fields:

Field Type Description
originalPrice number
totalDiscountPercentage number
totalDiscountAmount number
discounts object[] See below

discounts[] item fields:

Field Type Description
robuxDiscountAmount object
robuxDiscountPercentage object
discountCampaign object
localizedDiscountAttribution object
Status Description
400 1: Invalid user Id.
8: Ascending order is not allowed.
11: Invalid asset type id.
500 99: Internal server error.

getFavoritesUsersUseridFavoritesSubtypeidBundles

Section titled “getFavoritesUsersUseridFavoritesSubtypeidBundles”

GET /v1/favorites/users/:userId/favorites/:subtypeId/bundles

Lists the bundles favorited by a given user with the given bundle subtypeId.Switched to EAAS style pagination cursors since July 2024.

Usage
import { fetchApi } from 'rozod';
import { getFavoritesUsersUseridFavoritesSubtypeidBundles } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getFavoritesUsersUseridFavoritesSubtypeidBundles, {
userId: /* integer */,
subtypeId: /* integer */,
itemsPerPage: /* integer? = 24 */,
cursor: /* string? */,
isPrevious: /* boolean? */
});
Name Type Required Description
userId integer Yes
subtypeId integer Yes
itemsPerPage integer? = 24 No
cursor string? No
isPrevious boolean? No
Field Type Description
favorites object[] See below
moreFavorites boolean
nextCursor string
previousCursor string

favorites[] item fields:

Field Type Description
id number
name string
description string
bundleType string
isRecolorable boolean
items object[] See below
creator object See below
product object See below
itemRestrictions `1 2
collectibleItemDetail object See below
discountInformation object See below

items[] item fields:

Field Type Description
owned boolean
id number
name string
type string
supportsHeadShapes boolean
assetType number

creator fields:

Field Type Description
id number
name string
type string
hasVerifiedBadge boolean

product fields:

Field Type Description
id number
type string
isPublicDomain boolean
isForSale boolean
priceInRobux number
isFree boolean
noPriceText string
premiumPricing object See below

premiumPricing fields:

Field Type Description
premiumDiscountPercentage number
premiumPriceInRobux number

collectibleItemDetail fields:

Field Type Description
collectibleItemId string
collectibleProductId string
price number
lowestPrice number
lowestResalePrice number
totalQuantity number
unitsAvailable number
saleLocation object See below
hasResellers boolean
saleStatus `“Invalid” “Draft”
quantityLimitPerUser number
offSaleDeadline string
collectibleItemType `“Invalid” “Limited”
lowestAvailableResaleProductId string
lowestAvailableResaleItemInstanceId string
resaleRestriction `“Invalid” “None”

saleLocation fields:

Field Type Description
saleLocationType `“NotApplicable” “ShopOnly”
saleLocationTypeId number
universeIds number[]
enabledUniverseIds number[]

discountInformation fields:

Field Type Description
originalPrice number
totalDiscountPercentage number
totalDiscountAmount number
discounts object[] See below

discounts[] item fields:

Field Type Description
robuxDiscountAmount number
robuxDiscountPercentage number
discountCampaign string
localizedDiscountAttribution string
Status Description
400 1: Invalid user Id.
3: Cannot request so many bundles at once.
10: Invalid previous pagination request. Please provide a cursor when isPrevious is true
401 0: Authorization has been denied for this request.
403 6: You are not authorized to perform this action.
500 11: Internal server error. Please check if you have provided correct pagination cursor

GET /v1/subcategories

Lists Subcategory Names and their Ids.

Usage
import { fetchApi } from 'rozod';
import { getSubcategories } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getSubcategories, undefined);

Type: integer


POST /v1/topic/get-topics

Gets topics for a populated request, or trending queries when the request has no topic inputs.

Usage
import { fetchApi } from 'rozod';
import { postTopicGetTopics } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(postTopicGetTopics, {
body: { /* ... */ }
});
Field Type Description
items object[] See below
selectTopics string[]
inputQuery string
maxResult number
genderType `“Unknown” “Male”

items[] item fields:

Field Type Description
TargetId number
ItemType `“Invalid” “Asset”
Field Type Description
topics object[] See below
queries string[]
error object See below

topics[] item fields:

Field Type Description
displayName string
originalTopicName string

error fields:

Field Type Description
Message string
Code number
Status Description
403 0: Token Validation Failed

GET /v1/users/:userId/bundles

Lists the bundles owned by a given user.

Usage
import { fetchApi } from 'rozod';
import { getUsersUseridBundles } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getUsersUseridBundles, {
userId: /* integer */,
cursor: /* string? */,
limit: /* integer? = 10 */
});
Name Type Required Description
userId integer Yes
cursor string? No
limit integer? = 10 No
Field Type Description
previousPageCursor string
nextPageCursor string
data object[] See below

data[] item fields:

Field Type Description
id number
name string
bundleType string
creator object See below

creator fields:

Field Type Description
id number
name string
type string
hasVerifiedBadge boolean
Status Description
400 1: Invalid bundle

GET /v1/users/:userId/bundles/:bundleType

Usage
import { fetchApi } from 'rozod';
import { getUsersUseridBundlesBundletype } from 'rozod/endpoints/catalogv1';
const data = await fetchApi(getUsersUseridBundlesBundletype, {
userId: /* integer */,
bundleType: /* unknown */,
cursor: /* string */,
limit: /* integer? = 10 */
});
Name Type Required Description
userId integer Yes
bundleType unknown Yes [‘BodyParts’ = 1, ‘AvatarAnimations’ = 2, ‘Shoes’ = 3, ‘DynamicHead’ = 4]
cursor string Yes
limit integer? = 10 No
Field Type Description
previousPageCursor string
nextPageCursor string
data object[] See below

data[] item fields:

Field Type Description
id number
name string
bundleType string
creator object See below

creator fields:

Field Type Description
id number
name string
type string
hasVerifiedBadge boolean