Catalog v1
Reference for the Catalog v1 endpoints on Roblox.
Base URL: https://catalog.roblox.com
Endpoints
Section titled “Endpoints”| 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 |
getAssetToCategory
Section titled “getAssetToCategory”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);Response
Section titled “Response”Type: integer
getAssetToSubcategory
Section titled “getAssetToSubcategory”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);Response
Section titled “Response”Type: integer
getAssetsAssetidBundles
Section titled “getAssetsAssetidBundles”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 */});Parameters
Section titled “Parameters”| 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. |
Response
Section titled “Response”| 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 |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid assetId 4: Invalid Cursor. |
getBundlesBundleidDetails
Section titled “getBundlesBundleidDetails”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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
bundleId |
integer |
Yes |
Response
Section titled “Response”| 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 |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid bundle |
getBundlesBundleidRecommendations
Section titled “getBundlesBundleidRecommendations”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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
bundleId |
integer |
Yes | |
numItems |
integer? = 20 |
No | The number of recommended items to return. |
Response
Section titled “Response”| 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 |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid bundle 2: Error retrieving bundles 3: Error getting bundle recommendations 4: NumItems exceed maximum |
getBundlesDetails
Section titled “getBundlesDetails”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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
bundleIds |
number |
Yes |
Response
Section titled “Response”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 |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 3: Cannot request so many bundles at once. |
postCatalogItemsDetails
Section titled “postCatalogItemsDetails”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: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
items |
object[] |
See below |
items[] item fields:
| Field | Type | Description |
|---|---|---|
itemType |
`“Asset” | “Bundle”` |
id |
number |
Response
Section titled “Response”| 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 |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 2: Invalid count |
| 403 | 0: Token Validation Failed 7: User is unauthorized. |
| 429 | 8: The flood limit has been exceeded. |
getCategories
Section titled “getCategories”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);Response
Section titled “Response”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 |
getFavoritesAssetsAssetidCount
Section titled “getFavoritesAssetsAssetidCount”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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
assetId |
integer |
Yes |
Response
Section titled “Response”Type: integer
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 2: Invalid asset Id. |
getFavoritesBundlesBundleidCount
Section titled “getFavoritesBundlesBundleidCount”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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
bundleId |
integer |
Yes |
Response
Section titled “Response”Type: integer
Errors
Section titled “Errors”| 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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | |
assetId |
integer |
Yes |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
assetId |
number |
|
userId |
number |
|
created |
string |
Errors
Section titled “Errors”| 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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | |
assetId |
integer |
Yes |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| 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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | |
assetId |
integer |
Yes |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| 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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | |
bundleId |
integer |
Yes |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
bundleId |
number |
|
userId |
number |
|
created |
string |
Errors
Section titled “Errors”| 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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | |
bundleId |
integer |
Yes |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| 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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | |
bundleId |
integer |
Yes |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| 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 */});Parameters
Section titled “Parameters”| 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. |
Response
Section titled “Response”| 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 |
Errors
Section titled “Errors”| 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? */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | |
subtypeId |
integer |
Yes | |
itemsPerPage |
integer? = 24 |
No | |
cursor |
string? |
No | |
isPrevious |
boolean? |
No |
Response
Section titled “Response”| 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 |
Errors
Section titled “Errors”| 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 |
getSubcategories
Section titled “getSubcategories”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);Response
Section titled “Response”Type: integer
postTopicGetTopics
Section titled “postTopicGetTopics”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: { /* ... */ }});Request Body
Section titled “Request 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” |
Response
Section titled “Response”| 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 |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 403 | 0: Token Validation Failed |
getUsersUseridBundles
Section titled “getUsersUseridBundles”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 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | |
cursor |
string? |
No | |
limit |
integer? = 10 |
No |
Response
Section titled “Response”| 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 |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid bundle |
getUsersUseridBundlesBundletype
Section titled “getUsersUseridBundlesBundletype”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 */});Parameters
Section titled “Parameters”| 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 |
Response
Section titled “Response”| 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 |